ഗ്രാഫിക്കൽ യൂസർ ഇന്റർഫേസുകൾ സൃഷ്ടിക്കുന്നതിനുള്ള ശുപാർശകൾ. കോർ. ജാലകങ്ങളുള്ള വിജറ്റ് ക്ലാസുകളുടെ മരത്തിന്റെ റൂട്ട്. വിജറ്റിന്റെ വലുപ്പം, സ്‌ക്രീനിലെ സ്ഥാനം എന്നിവ പോലെ എല്ലാ ഒബ്‌ജക്‌റ്റുകൾക്കും പൊതുവായുള്ള സവിശേഷതകൾ ഈ ക്ലാസ് നിർവ്വചിക്കുന്നു. ഉപഘടകം അടങ്ങിയിരിക്കുന്നു.

റൂൾ 2: ഉപയോക്തൃ ഭാരം കുറയ്ക്കുക

റൂൾ 3: ഇന്റർഫേസ് അനുയോജ്യമാക്കുക

മാർഗ്ഗനിർദ്ദേശങ്ങൾ

വൃത്തിയുള്ള ആരംഭ മെനു പ്രോഗ്രാം

ഉപസംഹാരം

സാഹിത്യം

ആമുഖം

“രൂപകൽപ്പനയുടെ സുവർണ്ണ നിയമം ഇതാണ്: “മറ്റുള്ളവർ നിങ്ങളോട് ചെയ്തത് ഒരിക്കലും ചെയ്യരുത്.” നിങ്ങൾ ഉപയോഗിക്കുന്ന സോഫ്റ്റ്‌വെയറിൽ നിങ്ങൾക്ക് ഇഷ്ടപ്പെടാത്തത് ഓർക്കുക. നിങ്ങൾ പ്രവർത്തിക്കുന്ന പ്രോഗ്രാമിൽ അതേ കാര്യം ചെയ്യരുത്. ”

ട്രേസി ലിയോനാർഡ്

എന്തുകൊണ്ടാണ് നിങ്ങൾ ഉപയോക്തൃ ഇന്റർഫേസ് ഡിസൈനിന്റെ തത്വങ്ങൾ പാലിക്കേണ്ടത്?

സോഫ്റ്റ്വെയർഉപയോക്താവിന്റെ ആവശ്യങ്ങളും ആഗ്രഹങ്ങളും കണക്കിലെടുത്ത് വികസിപ്പിക്കണം - സിസ്റ്റം ഉപയോക്താവുമായി പൊരുത്തപ്പെടണം. അതുകൊണ്ടാണ് ഡിസൈൻ തത്വങ്ങൾ വളരെ പ്രധാനമായിരിക്കുന്നത്.

കമ്പ്യൂട്ടർ ഉപയോക്താക്കൾക്ക് അവരുടെ കഴിവുകളിൽ ആത്മവിശ്വാസം പകരുകയും ഒരു കമ്പ്യൂട്ടറുമായി പ്രവർത്തിക്കുമ്പോൾ ഉയർന്ന ആത്മാഭിമാനം വളർത്തുകയും ചെയ്യുന്ന വിജയകരമായ അനുഭവങ്ങൾ നേടാനാകും. കമ്പ്യൂട്ടറുമായുള്ള അവരുടെ പ്രവർത്തനങ്ങളെ "വിജയം വിജയിപ്പിക്കുന്നു" എന്ന് വിശേഷിപ്പിക്കാം. പ്രോഗ്രാമിലെ ഓരോ നല്ല അനുഭവവും ഉപയോക്താവിനെ സോഫ്‌റ്റ്‌വെയറുമായുള്ള പരിചയം വിപുലീകരിക്കാനും അവരുടെ കഴിവ് വർദ്ധിപ്പിക്കാനും അനുവദിക്കുന്നു. ഒരു നല്ല അധ്യാപകനും പാഠപുസ്തകങ്ങളും പോലെ നന്നായി രൂപകൽപ്പന ചെയ്ത ഇന്റർഫേസ്, ഉപയോക്താവും കമ്പ്യൂട്ടറും തമ്മിലുള്ള ഫലപ്രദമായ ഇടപെടൽ ഉറപ്പാക്കുന്നു. വിജയകരമായ ഇന്റർഫേസുകൾ ഒരു വ്യക്തിയെ അവൻ ഉപയോഗിക്കുന്ന പ്രോഗ്രാമുകളുടെ സാധാരണ സർക്കിളിൽ നിന്ന് പുറത്തുകടക്കാനും പുതിയവ കണ്ടെത്താനും സഹായിക്കുകയും ഇന്റർഫേസുകളും കമ്പ്യൂട്ടറുകളും എങ്ങനെ പ്രവർത്തിക്കുന്നു എന്നതിനെക്കുറിച്ചുള്ള അവന്റെ ഗ്രാഹ്യം വർദ്ധിപ്പിക്കുകയും ചെയ്യും.

ഇന്റർഫേസ് ഡിസൈൻ തത്വങ്ങൾ സോഫ്റ്റ്‌വെയർ ഡിസൈനിൽ ഉപയോഗിക്കാവുന്ന ഉയർന്ന തലത്തിലുള്ള ആശയങ്ങളും കാഴ്ചകളുമാണ്. നിങ്ങളുടെ സിസ്റ്റത്തിന് ഏറ്റവും പ്രധാനപ്പെട്ടതും സ്വീകാര്യവുമായ തത്വം ഏതെന്ന് നിങ്ങൾ നിർണ്ണയിക്കേണ്ടതുണ്ട്.

ഡിസൈൻ ആരംഭിക്കുമ്പോൾ, അത് ഹൈലൈറ്റ് ചെയ്യേണ്ടത് ആവശ്യമാണ് ഏറ്റവും പ്രധാനപ്പെട്ട തത്വം, വിട്ടുവീഴ്ചകൾക്കായി തിരയുമ്പോൾ അത് നിർണായകമാകും. എല്ലാ ഡിസൈൻ തത്വങ്ങളും പിന്തുടരാൻ ശ്രമിക്കുന്നത് ചില സാഹചര്യങ്ങളിൽ അത് പ്രതിഫലം നൽകാതിരിക്കുകയും അന്തിമ ഫലത്തെ പ്രതികൂലമായി ബാധിക്കുകയും ചെയ്യും. തത്ത്വങ്ങൾ പ്രവർത്തനത്തിലേക്കുള്ള വഴികാട്ടിയാണ്.

ഉപയോക്തൃ ഇന്റർഫേസ് രൂപകൽപ്പനയുടെ മൂന്ന് തത്വങ്ങൾ ഇനിപ്പറയുന്ന രീതിയിൽ രൂപപ്പെടുത്തിയിരിക്കുന്നു:

1) ഇന്റർഫേസിന്റെ ഉപയോക്തൃ നിയന്ത്രണം;

2) ഉപയോക്തൃ മെമ്മറി ലോഡ് കുറയ്ക്കുന്നു;

3) ഉപയോക്തൃ ഇന്റർഫേസിന്റെ സ്ഥിരത.

ഉപയോക്തൃ ഇന്റർഫേസ് ഡിസൈൻ തത്വങ്ങൾ എവിടെ കണ്ടെത്താം

ഹാൻസെൻ ഡിസൈൻ തത്വങ്ങളുടെ ആദ്യ പട്ടിക അവതരിപ്പിച്ചു. തത്വങ്ങൾ ഇവയാണ്:

1) ഉപയോക്താവിനെ അറിയുക;

2) ഓർമ്മപ്പെടുത്തൽ കുറയ്ക്കുക;

3) പ്രവർത്തനങ്ങൾ ഒപ്റ്റിമൈസ് ചെയ്യുക;

4) പിശകുകൾ ഇല്ലാതാക്കുക.

പല പ്രമുഖ ഓപ്പറേറ്റിംഗ് സിസ്റ്റം നിർമ്മാതാക്കളും തങ്ങളുടെ പുതിയ ഉൽപ്പന്നങ്ങൾ വിപണിയിൽ പുറത്തിറക്കുമ്പോൾ പ്രസക്തമായ മാനുവലുകളും നിർദ്ദേശങ്ങളും പ്രസിദ്ധീകരിക്കുന്നു. ഈ പ്രസിദ്ധീകരണങ്ങൾ ഇന്റർഫേസ് ഡിസൈനിനുള്ള സമീപനത്തിന്റെ തത്വങ്ങൾ വെളിപ്പെടുത്തുന്നു. മാനുവലുകൾ നിർമ്മിച്ചത് Apple Computer, Inc. (1992), IBM കോർപ്പറേഷൻ (1992), മൈക്രോസോഫ്റ്റ് കോർപ്പറേഷൻ (1995), UNIX OSF/Motif (1993).

വായനക്കാർക്ക് ഈ പ്രസിദ്ധീകരണങ്ങൾ ഒരു അധ്യാപന സഹായമായി ഉപയോഗിക്കാം. മാനുവലുകൾക്കിടയിൽ ഇന്റർഫേസ് ടെർമിനോളജി വ്യത്യാസപ്പെട്ടിരിക്കാം, എന്നാൽ മെറ്റീരിയലിന്റെ ഫോക്കസ്, സങ്കീർണ്ണതയുടെ നിലവാരം, വിവരിച്ചിരിക്കുന്ന ഉപയോക്തൃ ഇന്റർഫേസ് തത്വങ്ങൾ എന്നിവ എല്ലാ പുസ്തകങ്ങൾക്കും സമാനമാണ്.

ഇനിപ്പറയുന്ന തത്വങ്ങളുടെ പ്രാധാന്യം

"ഇന്റർഫേസ് പൊരുത്തക്കേട് ഒരു വലിയ കമ്പനിക്ക് ദശലക്ഷക്കണക്കിന് ഡോളർ നഷ്ടമായ ഉൽപ്പാദനക്ഷമതയും വർദ്ധിച്ച ചെലവും നൽകും. സാങ്കേതിക സഹായം"- ജെസ്സി ബ്രെസ്റ്റ്.

ഈ തത്വങ്ങൾ എല്ലാ സോഫ്‌റ്റ്‌വെയറുകളിലും ഹാർഡ്‌വെയറുകളിലും എല്ലാ തരത്തിലും ഇന്റർഫേസുകളുടെ ശൈലികളിലും ബാധകമാണ്. അവ വളരെക്കാലമായി വികസിപ്പിച്ചെടുത്തു: സോഫ്റ്റ്വെയർ ഇന്റർഫേസ് മേഖലയിൽ ഗവേഷണം നടത്തി, വികസനം നടത്തി, മാക്കിന്റോഷ്, പിസി എന്നിവയുൾപ്പെടെ നിരവധി കമ്പ്യൂട്ടർ പ്ലാറ്റ്ഫോമുകളുടെ ഉപയോക്താക്കളെ സർവേ നടത്തി.

ഈ തത്ത്വങ്ങൾ കാലത്തിന്റെയും പുതിയ കമ്പ്യൂട്ടർ സാങ്കേതികവിദ്യകളുടെ ആവിർഭാവത്തിന്റെയും പരീക്ഷണമായി നിലകൊള്ളുന്നു. ജേക്കബ് നീൽസൻ അഭിപ്രായപ്പെട്ടു: “ഇൻപുട്ട്, മോഷൻ റെക്കഗ്നിഷൻ, ലൈവ് വീഡിയോ ഇമേജുകൾ എന്നിവയ്‌ക്കായി ഒരു ഫ്യൂച്ചറിസ്റ്റിക് 3D ഡിസൈൻ പ്രോഗ്രാമിന് ഉണ്ടെങ്കിലും തത്ത്വങ്ങൾ അടിസ്ഥാനപരമായി നിലനിൽക്കും. മെഷീനുമായി സംഭാഷണം നടത്തുന്നതിനുള്ള അടിസ്ഥാന ആശയം അവ പ്രകടിപ്പിക്കുന്നതിനാൽ അവ പ്രസക്തമാകും. കമാൻഡുകൾ."

ഈ തത്വങ്ങളുടെ വ്യാഖ്യാനം ആശ്രയിച്ചിരിക്കും ഹാർഡ്വെയർ, ഓപ്പറേറ്റിംഗ് സിസ്റ്റം, ഉപയോക്തൃ ഇന്റർഫേസിന്റെ ഘടകങ്ങളും അതിന്റെ ചുമതലകളും. പലപ്പോഴും ബിസിനസ്സ് തീരുമാനങ്ങൾ ഡിസൈനർമാരുടെ തത്വങ്ങളുടെ ഉപയോഗത്തെ മറികടക്കുന്നു. ഉപയോക്തൃ, ഡിസൈനർ മോഡലുകളും വ്യത്യസ്തമാണ്, തത്ത്വങ്ങൾ എങ്ങനെ പ്രയോഗിക്കുമെന്ന് സ്വാധീനിക്കുന്നു. ചിലതിൽ പ്രധാന ഘട്ടങ്ങൾഒരു പ്രോജക്റ്റിന്റെ വികസന സമയത്ത്, ചോദ്യം ഉയർന്നേക്കാം: "അടുത്തതായി എന്ത് സംഭവിക്കും?" ഉത്തരം ഇതായിരിക്കണം: "ഉപയോക്താവ് ആഗ്രഹിക്കുന്നതെന്തും!"

ഒരു ഇന്റർഫേസ് നിർമ്മിക്കുന്നതിനുള്ള ഒപ്റ്റിമൽ തത്വങ്ങൾ തിരഞ്ഞെടുക്കുന്നതിനുള്ള തീരുമാനം ഡിസൈൻ ടീമിലെ എല്ലാ അംഗങ്ങളും സംയുക്തമായി വികസിപ്പിക്കണം. ഈ പരിഹാരങ്ങൾ സോഫ്റ്റ്‌വെയർ ഉൽപ്പന്നങ്ങളുടെ വാങ്ങലും വികസനവും മെച്ചപ്പെടുത്താൻ സഹായിക്കും.

ഉപയോക്തൃ ഇന്റർഫേസ് ഡിസൈൻ നിയമങ്ങൾ

"ഇത് ലളിതമാക്കുക, എന്നാൽ കൂടുതൽ പ്രാകൃതമല്ല."

ആൽബർട്ട് ഐൻസ്റ്റീൻ

റൂൾ 1: ഉപയോക്താവിന് നിയന്ത്രണം നൽകുക

പരിചയസമ്പന്നരായ ഡിസൈനർമാർ അവരുടെ സ്വന്തം വിവേചനാധികാരത്തിൽ ചില പ്രശ്നങ്ങൾ പരിഹരിക്കാൻ ഉപയോക്താക്കളെ അനുവദിക്കുന്നു. വാസ്തുശില്പികൾ, കെട്ടിടങ്ങളുടെ സങ്കീർണ്ണമായ ഒരു സമുച്ചയം പൂർത്തിയാകുമ്പോൾ, കാൽനടയാത്രക്കാർക്ക് അവയ്ക്കിടയിൽ പാതകൾ സ്ഥാപിക്കണം. ആളുകൾ എവിടെയാണ് സൈറ്റുകൾ കടക്കുന്നത് എന്ന് അവർക്ക് ഇതുവരെ കൃത്യമായി അറിയില്ല. അതിനാൽ, കെട്ടിടങ്ങളുടെ നിർമ്മാണത്തിന് ഒരേ സമയം പാതകൾ സ്ഥാപിക്കില്ല. വീടുകൾക്കിടയിലുള്ള സ്ഥലങ്ങളിൽ "ദയവായി പുല്ലിൽ നടക്കുക" എന്നെഴുതിയ അടയാളങ്ങൾ സ്ഥാപിച്ചിട്ടുണ്ട്. കുറച്ച് സമയത്തിന് ശേഷം, നിർമ്മാതാക്കൾ മടങ്ങുന്നു, ഇപ്പോൾ മാത്രം, ജനസംഖ്യയുടെ "ഇച്ഛ" അനുസരിച്ച്, ചവിട്ടിയ പാതകൾ അസ്ഫാൽറ്റ് കൊണ്ട് നിറയ്ക്കുന്നു.

സിസ്റ്റത്തിൽ ഉപയോക്താവിന് നിയന്ത്രണം നൽകുന്ന തത്വങ്ങൾ:

1) മോഡുകൾ വിവേകത്തോടെ ഉപയോഗിക്കുക;

2) തിരഞ്ഞെടുക്കാനുള്ള അവസരം ഉപയോക്താവിന് നൽകുക: ഒരു മൗസ്, അല്ലെങ്കിൽ കീബോർഡ്, അല്ലെങ്കിൽ ഇവ രണ്ടും കൂടിച്ചേർന്ന് പ്രവർത്തിക്കുക;

3) ശ്രദ്ധ കേന്ദ്രീകരിക്കാൻ ഉപയോക്താവിനെ അനുവദിക്കുക;

4) അവന്റെ ജോലിയിൽ അവനെ സഹായിക്കുന്ന സന്ദേശങ്ങൾ കാണിക്കുക;

5) ഉടനടി റിവേഴ്‌സിബിൾ പ്രവർത്തനങ്ങൾക്ക് വ്യവസ്ഥകൾ സൃഷ്ടിക്കുക, അതുപോലെ തന്നെ ഫീഡ്‌ബാക്ക്;

6) ഉചിതമായ പാതകളും എക്സിറ്റുകളും നൽകുക;

7) വ്യത്യസ്ത തലത്തിലുള്ള പരിശീലനമുള്ള ഉപയോക്താക്കൾക്ക് സിസ്റ്റം പൊരുത്തപ്പെടുത്തുക;

8) ഉപയോക്തൃ ഇന്റർഫേസ് കൂടുതൽ മനസ്സിലാക്കാവുന്നതാക്കുക;

9) ഉപയോക്താവിന് അവരുടെ ഇഷ്ടത്തിനനുസരിച്ച് ഇന്റർഫേസ് ഇച്ഛാനുസൃതമാക്കാനുള്ള അവസരം നൽകുക;

10) ഇന്റർഫേസ് ഒബ്‌ജക്‌റ്റുകൾ നേരിട്ട് കൈകാര്യം ചെയ്യാൻ ഉപയോക്താവിനെ അനുവദിക്കുക;

മോഡുകൾ വിവേകത്തോടെ ഉപയോഗിക്കുക

മോഡുകൾ എല്ലായ്പ്പോഴും മോശമല്ല. ഒരു വ്യക്തിക്ക് ആവശ്യമായ മോഡുകൾ തിരഞ്ഞെടുക്കാൻ അനുവദിക്കേണ്ടത് ആവശ്യമാണ്. ഇന്റർഫേസ് വളരെ സ്വാഭാവികമായിരിക്കണം, ഉപയോക്താവിന് അവരോടൊപ്പം പ്രവർത്തിക്കാൻ സുഖം തോന്നുന്നു. ഒരു വേഡ് പ്രോസസറിൽ പ്രവർത്തിക്കുമ്പോൾ ഇൻസേർട്ട് അല്ലെങ്കിൽ റീറൈറ്റ് മോഡിലേക്ക് മാറുന്നതിനെക്കുറിച്ച് ഉപയോക്താവ് ചിന്തിക്കുന്നില്ല - ഇത് തികച്ചും യുക്തിസഹവും സ്വാഭാവികവുമാണ്.

ഒരു വ്യക്തിയെ മൗസും കീബോർഡും ഉപയോഗിക്കാൻ അനുവദിക്കുക

മൗസിന് പകരം കീബോർഡ് ഉപയോഗിച്ച് കീബോർഡ് ഉപയോഗിച്ച് പ്രവർത്തിക്കാനുള്ള കഴിവ്. ഇതിനർത്ഥം ഉപയോക്താവിന് പ്രവർത്തിക്കുന്നത് എളുപ്പമാകുമെന്നാണ്, അയാൾക്ക് ഇത് ഉപയോഗിക്കാൻ കഴിയില്ല അല്ലെങ്കിൽ ഇല്ല. ഒരു മൗസ് ഉപയോഗിക്കുമ്പോൾ നിങ്ങളുടെ ജോലി വേഗത്തിലാക്കാനാണ് ടൂൾബാറുകൾ രൂപകൽപ്പന ചെയ്തിരിക്കുന്നത്. എന്നിരുന്നാലും, കീബോർഡിൽ പ്രവർത്തിക്കുമ്പോൾ, അവയിൽ എത്തിച്ചേരാൻ കഴിയില്ല - അത്തരം സന്ദർഭങ്ങളിൽ, "ഡ്രോപ്പ്-ഡൗൺ" മെനുകൾ നൽകിയിരിക്കുന്നു.

ശ്രദ്ധ മാറാൻ ഉപയോക്താവിനെ അനുവദിക്കുക

ആരംഭിച്ച പ്രവർത്തനങ്ങളുടെ ക്രമങ്ങൾ പൂർത്തിയാക്കാൻ ഉപയോക്താക്കളെ നിർബന്ധിക്കരുത്. അവർക്ക് ഒരു ചോയ്‌സ് നൽകുക - ഡാറ്റ റദ്ദാക്കുകയോ സംരക്ഷിക്കുകയോ ചെയ്‌ത് അവർ നിർത്തിയിടത്തേക്ക് മടങ്ങുക. പ്രോഗ്രാമിൽ ജോലി ചെയ്യുന്ന പ്രക്രിയ നിയന്ത്രിക്കാൻ ഉപയോക്താക്കളെ അനുവദിക്കുക.

വിശദീകരണ സന്ദേശങ്ങളും വാചകങ്ങളും കാണിക്കുക

ഇന്റർഫേസിലുടനീളം ഉപയോക്തൃ-സൗഹൃദ പദങ്ങൾ ഉപയോഗിക്കുക. ബിറ്റുകളും ബൈറ്റുകളും അവർക്കറിയണമെന്നില്ല!

സന്ദേശങ്ങളിലും ക്ഷണങ്ങളിലും നിങ്ങൾ ശരിയായ ടോൺ തിരഞ്ഞെടുക്കണം. പ്രശ്‌നങ്ങൾക്കും പിശകുകൾക്കും എതിരെ സ്വയം ഇൻഷ്വർ ചെയ്യേണ്ടത് ഒരുപോലെ പ്രധാനമാണ്. മോശം പദാവലിയും തെറ്റായ ടോണും സംഭവിക്കുന്ന പിശകുകൾക്ക് ഉപയോക്താക്കളെ സ്വയം കുറ്റപ്പെടുത്തുന്നതിലേക്ക് നയിക്കും.

ഉടനടി തിരിച്ചെടുക്കാവുന്ന പ്രവർത്തനവും ഫീഡ്‌ബാക്കും നൽകുക

ഓരോ സോഫ്റ്റ്‌വെയർ ഉൽപ്പന്നത്തിലും UNDO, REDO ഫംഗ്‌ഷനുകൾ ഉണ്ടായിരിക്കണം. അത് ഉപയോക്താവിനെ അറിയിക്കണം ഈ പ്രവർത്തനംറദ്ദാക്കാൻ കഴിയില്ല, സാധ്യമെങ്കിൽ ഒരു ബദൽ നടപടി സ്വീകരിക്കാൻ അവനെ അനുവദിക്കുക. ഈ നിമിഷത്തിൽ എന്താണ് സംഭവിക്കുന്നതെന്ന് ഒരു വ്യക്തിയെ നിരന്തരം അറിയിക്കുക.

വ്യക്തമായ പാതകളും എക്സിറ്റുകളും നൽകുക

ഏതൊരു സോഫ്റ്റ്‌വെയർ ഉൽപ്പന്നത്തിന്റെയും ഇന്റർഫേസ് ഉപയോഗിച്ച് പ്രവർത്തിക്കുന്നത് ഉപയോക്താക്കൾ ആസ്വദിക്കണം. വ്യവസായത്തിൽ ഉപയോഗിക്കുന്ന ഇന്റർഫേസുകൾ പോലും ഉപയോക്താവിനെ ഭയപ്പെടുത്തരുത്; ബട്ടണുകൾ അമർത്താനോ മറ്റൊരു സ്ക്രീനിലേക്ക് പോകാനോ അവൻ ഭയപ്പെടരുത്. ഇന്റർനെറ്റിലെ പ്രധാന സംവേദനാത്മക സാങ്കേതികത നാവിഗേഷനാണെന്ന് ഇന്റർനെറ്റ് അധിനിവേശം കാണിച്ചു. WWW-ൽ ആവശ്യമുള്ള പേജ് എങ്ങനെ ആക്സസ് ചെയ്യാമെന്ന് ഉപയോക്താവിന് മനസ്സിലായാൽ, ഇന്റർഫേസ് അയാൾക്ക് മനസ്സിലാകാനുള്ള 80 ശതമാനം സാധ്യതയുണ്ട്. ആളുകൾ ബ്രൗസർ ടെക്നിക്കുകൾ വളരെ വേഗത്തിൽ പഠിക്കുന്നു.

വ്യത്യസ്ത നൈപുണ്യ തലങ്ങളുള്ള ഉപയോക്താക്കളെ ഉൾക്കൊള്ളുക

സാധാരണ ഉപയോക്താക്കളുടെ പ്രയോജനത്തിനായി പരിചയസമ്പന്നരായ ഉപയോക്താക്കളെ "ത്യാഗം" ചെയ്യരുത്. പ്രോഗ്രാം ഫംഗ്ഷനുകളിലേക്ക് അവർക്ക് പെട്ടെന്ന് പ്രവേശനം നൽകേണ്ടത് ആവശ്യമാണ്. അവർ ഒരു മാക്രോ കമാൻഡ് ഉപയോഗിക്കുന്നത് പതിവാണെങ്കിൽ ഒരു പ്രവർത്തനം നടത്താൻ ഒന്നിലധികം ഘട്ടങ്ങളിലൂടെ അവരെ ബോറടിപ്പിക്കരുത്.

ഉപയോക്തൃ ഇന്റർഫേസ് "സുതാര്യമാക്കുക"

ഉപയോക്തൃ ഇന്റർഫേസ് സോഫ്റ്റ്വെയർ ഉൽപ്പന്നത്തിന്റെ "പുരാണ" ഭാഗമാണ്. ചെയ്തത് നല്ല പദ്ധതിഉപയോക്താക്കൾക്ക് അതിന്റെ "സാന്നിധ്യം" പോലും അനുഭവപ്പെടുന്നില്ല. ഇത് മോശമായി രൂപകൽപ്പന ചെയ്തിട്ടുണ്ടെങ്കിൽ, ഉപയോക്താക്കൾക്ക് വളരെയധികം പരിശ്രമിക്കേണ്ടിവരും ഫലപ്രദമായ ഉപയോഗംസോഫ്റ്റ്വെയർ ഉൽപ്പന്നം. കമ്പ്യൂട്ടറിനുള്ളിൽ തങ്ങൾ ഉണ്ടെന്ന് തോന്നാനും, സ്വതന്ത്രമായി കൈകാര്യം ചെയ്യാനും വസ്തുക്കളുമായി പ്രവർത്തിക്കാനും ആളുകളെ സഹായിക്കുക എന്നതാണ് ഇന്റർഫേസിന്റെ ലക്ഷ്യം. ഇതിനെ "സുതാര്യമായ" ഇന്റർഫേസ് എന്ന് വിളിക്കുന്നു!

വ്യാഖ്യാനം: ഞങ്ങൾ വിജറ്റുകൾ പഠിക്കുന്നു - ഗ്രാഫിക്കൽ യൂസർ ഇന്റർഫേസ്, അവയുടെ ലേഔട്ട്, സൈസ് പോളിസി, സിഗ്നൽ-സ്ലോട്ട് കണക്ഷനുകൾ, ഗ്രാഫിക്കൽ ഇന്റർഫേസ് ഘടകങ്ങൾ, അവയുടെ ഉപയോഗം എന്നിവ ഉൾക്കൊള്ളുന്ന ദൃശ്യ ഘടകങ്ങൾ.

13.1 വിഡ്ജറ്റുകൾ

ഗ്രാഫിക്കൽ യൂസർ ഇന്റർഫേസ് നിർമ്മിക്കുന്ന വിഷ്വൽ ഘടകങ്ങളാണ് വിജറ്റുകൾ.

വിജറ്റുകളുടെ ഉദാഹരണങ്ങൾ:

  • ബട്ടൺ (ക്ലാസ് QPushButton);
  • ലേബൽ(ക്ലാസ് ക്യുലേബൽ);
  • ഇൻപുട്ട് ഫീൽഡ് (ക്ലാസ് QLineEdit);
  • സംഖ്യാ കൌണ്ടർ ഫീൽഡ് (QSpinBox ക്ലാസ്);
  • സ്ക്രോൾ ബാർ (ക്ലാസ് QScrollBar ).

50-ഓളം റെഡിമെയ്ഡ് ക്ലാസുകളിലെ ഗ്രാഫിക് ഘടകങ്ങളുടെ ഉപയോഗത്തിന് Qt ലഭ്യമാണ്. എല്ലാ വിജറ്റുകൾക്കുമുള്ള പാരന്റ് ക്ലാസ് ക്യുവിഡ്ജറ്റ് ക്ലാസാണ്. വിഷ്വൽ ഘടകങ്ങളുടെ എല്ലാ പ്രധാന ഗുണങ്ങളും അതിൽ നിന്ന് പാരമ്പര്യമായി ലഭിക്കുന്നു, അത് ഞങ്ങൾ ശ്രദ്ധാപൂർവ്വം പരിഗണിക്കും. ഒരു ഉദാഹരണം ഉപയോഗിച്ച് ഗ്രാഫിക്കൽ ഇന്റർഫേസ് ഉപയോഗിച്ച് പ്രോഗ്രാമുകൾ വികസിപ്പിക്കുന്നതിനുള്ള വഴികൾ പര്യവേക്ഷണം ചെയ്യാൻ നമുക്ക് ആരംഭിക്കാം.

നമുക്ക് ഒരു ശൂന്യമായ പ്രോജക്റ്റ് ഫയൽ സൃഷ്ടിക്കാം. പ്രോജക്റ്റ് വിസാർഡ് സമാരംഭിച്ച് പ്രോജക്റ്റ് വിഭാഗത്തിലെ ഇനം തിരഞ്ഞെടുക്കുക മറ്റ് പദ്ധതി. അടുത്തതായി, പ്രോജക്റ്റ് തരം തിരഞ്ഞെടുക്കുക ശൂന്യമായ Qt പ്രോജക്റ്റ്. പ്രോജക്റ്റ് ഫയലിലേക്ക് ഉള്ളടക്കങ്ങൾ ചേർക്കാം:

TEMPLATE = ആപ്പ് #Qt മൊഡ്യൂളുകൾ ഞങ്ങൾ QT += വിജറ്റുകൾ ഉപയോഗിക്കും #വിജറ്റുകൾക്കൊപ്പം പ്രവർത്തിക്കാൻ വിഡ്ജറ്റ് മൊഡ്യൂൾ ചേർക്കുക (Qt5-ന് ആവശ്യമാണ്). TARGET = വിജറ്റ്#എക്സിക്യൂട്ടബിൾ ഫയലിന്റെ പേര് SOURCES += \ main.cpp

ഇനി നമുക്ക് സൃഷ്ടിക്കാം ഒരു ലളിതമായ പ്രോഗ്രാംഒരു ജാലകം ഉപയോഗിച്ച് ഞങ്ങൾ ലിഖിതം പ്രദർശിപ്പിക്കും. വിൻഡോയുടെ വലുപ്പവും അതിന്റെ ശീർഷകത്തിന്റെ വാചകവും സജ്ജീകരിക്കാം, കൂടാതെ ലിഖിതത്തിനായുള്ള ഫോണ്ടും സജ്ജമാക്കുക. ഇത് ചെയ്യുന്നതിന്, ഇനിപ്പറയുന്ന ഉള്ളടക്കമുള്ള ഒരു ഫയൽ main.cpp സൃഷ്ടിക്കുക:

#ഉൾപ്പെടുന്നു #ഉൾപ്പെടുന്നു int main (int lArgc, char * lArgv ) ( //വിൻഡോ പ്രോഗ്രാം ആരംഭിക്കുകയും കോൺഫിഗർ ചെയ്യുകയും ചെയ്യുന്ന ഒരു QApplication ഒബ്‌ജക്റ്റ് സൃഷ്‌ടിക്കുക, // QApplication ഇവന്റ് ലൂപ്പ് lApplication (lArgc, lArgv) ഉപയോഗിച്ച് അതിന്റെ നിർവ്വഹണം നിയന്ത്രിക്കുന്നു (lArgc, lArgv); // QLabel lLabel; വിജറ്റ് - ലേബൽ lLabel.setText ("ഞാൻ വിജറ്റ്!"); //lLabel.setGeometry (200, 200, 300, 150) എന്ന ലേബലിനായി വാചകം സജ്ജമാക്കുക; //മാനങ്ങൾ സജ്ജമാക്കുക - സ്ഥാനം (x, y), വീതി ഒപ്പം ഉയരവും.അലൈൻമെന്റ് ടെക്സ്റ്റ് ക്രമീകരിക്കുക lLabel.setAlignment (Qt::AlignHCenter | Qt::AlignVCenter); //ഫോണ്ട് പാരാമീറ്ററുകൾ സജ്ജമാക്കാൻ QFont ക്ലാസ് ഉപയോഗിക്കുന്നു. //Arial Black ഫോണ്ട് ഫാമിലിയും വലുപ്പവും തിരഞ്ഞെടുക്കുക 12. QFont lBlackFont (" ഏരിയൽ ബ്ലാക്ക്", 12); lLabel. setFont (lBlackFont); //ലേബൽ lLabel.show (); //സ്‌ക്രീനിൽ ലേബൽ കാണിക്കാൻ ഷോ() രീതിയിലേക്ക് വിളിക്കുക. lApplication.exec () തിരികെ നൽകുക ; //എക്‌സിക്() എക്സിക്യൂട്ട് ചെയ്യുന്നതിനായി പ്രോഗ്രാം പ്രവർത്തിപ്പിക്കുക //ഒരു ലൂപ്പ് ഇവന്റ് പ്രോസസ്സിംഗ്. പ്രോഗ്രാം ഉപയോക്തൃ പ്രവർത്തനങ്ങൾക്കായി കാത്തിരിക്കുകയും അവ പ്രോസസ്സ് ചെയ്യുകയും ചെയ്യുന്നു.)

നമുക്ക് കാണാനാകുന്നതുപോലെ, ക്യുടിയിലെ ഇന്റർഫേസുകൾ നിർമ്മിക്കുന്ന ഘടകങ്ങൾക്ക് അതിന്റേതായ സ്ഥാനവും വലുപ്പവും ഉണ്ട് - "ജ്യാമിതി" എന്ന് വിളിക്കപ്പെടുന്നവ - അങ്ങനെ സ്ക്രീനിൽ ഒരു ചതുരാകൃതിയിലുള്ള പ്രദേശം ഉൾക്കൊള്ളുന്നു (ചിത്രം 13.1 കാണുക). കൂടാതെ, ഓരോ ഘടകത്തിനും അതിന്റെ സ്വഭാവവും രൂപവും നിർണ്ണയിക്കുന്ന ക്രമീകരണങ്ങളുണ്ട്.


അരി. 13.1

ഒരു ഘടന സൃഷ്ടിക്കുന്നതിന്, "ഭാഗം - മുഴുവൻ" തത്വമനുസരിച്ച് വിജറ്റുകൾ ഒരു ശ്രേണിയിലേക്ക് ക്രമീകരിച്ചിരിക്കുന്നു. ഓരോ വിജറ്റിലും മറ്റ് വിജറ്റുകൾ അടങ്ങിയിരിക്കാം. ഈ ദൃശ്യ ഘടകം അതിൽ അടങ്ങിയിരിക്കുന്ന ഘടകങ്ങളുടെ "പാരന്റ്" (പാരന്റ് വിജറ്റ്) ആയി മാറുന്നു. ഒരു പ്രോഗ്രാമിലെ ക്ലാസുകൾക്കിടയിലുള്ള ബന്ധങ്ങൾ - അത്തരം ബന്ധങ്ങളെ C++ ലെ അനന്തരാവകാശവുമായി ആശയക്കുഴപ്പത്തിലാക്കരുത് എന്നത് ശ്രദ്ധിക്കുക. വിജറ്റുകൾ തമ്മിലുള്ള ബന്ധങ്ങൾ വസ്തുക്കൾ തമ്മിലുള്ള ബന്ധമാണ്. അത്തരം ബന്ധങ്ങൾ നിരവധി അനന്തരഫലങ്ങൾക്ക് കാരണമാകുന്നു:

  • ചൈൽഡ് എലമെന്റ് ഇല്ലാതാക്കുന്നതിന് പാരന്റ് എലമെന്റ് ഉത്തരവാദിയായിരിക്കും: പാരന്റ് വിജറ്റ് ഇല്ലാതാക്കിയാൽ, അത് എല്ലാ ചൈൽഡ് ഘടകങ്ങളും സ്വയമേവ ഇല്ലാതാക്കും;
  • പാരന്റ് വിജറ്റ് ചൈൽഡ് വിജറ്റുകൾ ഉള്ളിൽ സ്ഥാപിക്കുന്നു, രക്ഷിതാവിനപ്പുറത്തേക്ക് വ്യാപിക്കുന്ന ചൈൽഡ് വിജറ്റുകളുടെ ഭാഗങ്ങൾ അദൃശ്യമായിരിക്കും;
  • പാരന്റ് വിജറ്റിന്റെ അവസ്ഥയുടെ ഒരു ഭാഗം അതിന്റെ കുട്ടികൾക്ക് കൈമാറുന്നു - ഇത് ചില ഗുണങ്ങൾക്കും (ദൃശ്യത, പ്രവർത്തനം) വിഷ്വൽ എലമെന്റിൽ പ്രയോഗിക്കുന്ന ശൈലികൾക്കും ബാധകമാണ്.

രക്ഷിതാവ് ഇല്ലാത്ത വിജറ്റുകൾ (വിജറ്റുകൾ ഉയർന്ന തലം), പ്രോഗ്രാമിലെ പ്രത്യേക വിൻഡോകൾ പോലെ കാണപ്പെടുന്നു. നമുക്ക് ഒരു ഉദാഹരണം നോക്കാം. വിളിക്കാം പുതിയ പദ്ധതിപാരന്റ് ഉദാഹരണം. പ്രോജക്റ്റ് ഫയലിൽ ഒരു GUI പ്രോജക്റ്റിനായുള്ള സാധാരണ ക്രമീകരണങ്ങൾ അടങ്ങിയിരിക്കും:

ടെംപ്ലേറ്റ് = ആപ്പ് ടാർഗറ്റ് = പേരന്റ് ഉദാഹരണം QT += വിജറ്റുകൾ

പ്രധാന വിൻഡോയായി ഞങ്ങൾ ഉപയോഗിക്കുന്ന വിജറ്റിനായി, ഞങ്ങൾ ഒരു പുതിയ ക്ലാസ് സൃഷ്ടിക്കും. വിഭാഗത്തിൽ ഇതിനായി ഫയലുകളും ക്ലാസുകളുംനമുക്ക് C++ വിഭാഗം തിരഞ്ഞെടുത്ത് C++ ക്ലാസ് തിരഞ്ഞെടുക്കുക (ചിത്രം 13.2 കാണുക).

അടുത്ത ഘട്ടം വിൻഡോയിൽ നിരവധി ഘടകങ്ങൾ സൃഷ്ടിക്കുക എന്നതാണ്. ഇത് ചെയ്യുന്നതിന്, parentwidget.cpp ഫയൽ തുറന്ന് ക്ലാസ് കൺസ്ട്രക്റ്റർ കോഡ് മാറ്റുക. ഘടകങ്ങൾ പ്രദർശിപ്പിക്കുന്നതിന്, അവ ക്ലാസ് കൺസ്ട്രക്‌ടറിൽ സൃഷ്‌ടിച്ച് അവയ്‌ക്ക് പാരന്റ് വിജറ്റായി സജ്ജീകരിക്കുക. parentwidget.cpp കോഡ് ഇതുപോലെ കാണപ്പെടുന്നു:

#ഉൾപ്പെടുത്തുക "parentwidget.h" #ഉൾപ്പെടുത്തുക #ഉൾപ്പെടുന്നു #ഉൾപ്പെടുന്നു ParentWidget::ParentWidget (QWidget * parent) : QWidget (മാതാവ്) ( //പാരന്റ് വിജറ്റിനെ സൂചിപ്പിക്കുന്ന ഒരു ലേബൽ സൃഷ്ടിക്കുക - ഇത്, അതായത്, ParentWidget ക്ലാസിന്റെ ഒരു ഉദാഹരണം. QLabel * lLabel=പുതിയ QLabel (ഇത്); // സ്ഥാനം പാരന്റ് വിജറ്റിന്റെ മുകളിൽ ഇടത് കോണുമായി ബന്ധപ്പെട്ടതാണ്. "പാരന്റ്", ജ്യാമിതി, ടെക്സ്റ്റ് QPushButton * lPushButton = പുതിയ QPushButton (ഇത്); lPushButton->setGeometry (50, 50, 100, 30); lPushButton->setText ("PushButton "); //ഒരു ഇൻപുട്ട് ഫീൽഡ് സൃഷ്ടിക്കുക "പാരന്റ്", ജ്യാമിതി, ടെക്സ്റ്റ് QLineEdit * lLineEdit = പുതിയ QLineEdit (ഇത്); lLineEdit ->setGeometry (50, 100, 100, 30); lLineEdit ->setText (" LineEdit "); LineEdit (>selectAllit); ഇൻപുട്ട് ഫീൽഡിൽ ടെക്സ്റ്റ് തിരഞ്ഞെടുക്കുക (ഉദാഹരണത്തിന്) // അവസാനമായി പാരന്റ് വിജറ്റ് സെറ്റിന്റെ വലുപ്പം മാറ്റുക ജ്യാമിതി (x (), y (), 300, 150); // കൂടാതെ വിൻഡോ ടൈറ്റിൽ ടെക്സ്റ്റ് സെറ്റ് വിൻഡോ ടൈറ്റിൽ ("പാരന്റ് വിജറ്റ് ഉദാഹരണം" );)

പാരന്റ് വിഡ്ജറ്റ് ആയതിനാൽ, ലേബൽ (QLabel), ബട്ടൺ (QPushButton), ടെക്സ്റ്റ് ഫീൽഡ് (QLineEdit) എന്നിവ അതിനുള്ളിലാണ്. ചൈൽഡ് വിജറ്റുകളുടെ സ്ഥാനം പിതാവിന്റെ മുകളിൽ ഇടത് കോണുമായി ബന്ധപ്പെട്ടിരിക്കുന്നു. ഞങ്ങളുടെ പ്രോഗ്രാം വിൻഡോയുടെ വലുപ്പവും സ്ഥാനവും മാറ്റുന്നതിലൂടെ നിങ്ങൾക്ക് ഇത് എളുപ്പത്തിൽ പരിശോധിക്കാനാകും. പുതിയ ഓപ്പറേറ്റർ ഉപയോഗിച്ച് ഞങ്ങൾ എങ്ങനെയാണ് UI ഘടകങ്ങൾ ഹീപ്പിൽ സൃഷ്ടിച്ചതെന്ന് ശ്രദ്ധിക്കുക. ParentWidget കൺസ്ട്രക്റ്റർ പൂർത്തിയായതിന് ശേഷം ഘടകങ്ങൾ നീക്കം ചെയ്യപ്പെടുന്നില്ലെന്ന് ഇത് ഉറപ്പാക്കുന്നു.

ഉപയോക്തൃ ഇന്റർഫേസിലേക്കുള്ള പരമ്പരാഗത ഗ്രാഫിക്കൽ സമീപനം സതർലാൻഡ്, ന്യൂമാൻ, മറ്റുള്ളവരുടെ പ്രവർത്തനവുമായി ബന്ധപ്പെട്ടിരിക്കുന്നു, അതിൽ പുനരുജ്ജീവനവും ലൈറ്റ് പേനയും ഉള്ള ഒരു ഗ്രാഫിക്കൽ ഡിസ്പ്ലേയുടെ ഉപയോഗത്തെ അടിസ്ഥാനമാക്കിയാണ് ഇടപെടൽ. ഗ്രാഫിക് ഡയലോഗിന്റെ കൂടുതൽ വികസനം ഇന്ററാക്ടീവ് കമ്പ്യൂട്ടർ ഗ്രാഫിക്സ് സിസ്റ്റങ്ങളുടെ മേഖലയിലെ പുരോഗതിയുമായി ബന്ധപ്പെട്ടിരിക്കുന്നു, ഇത് അന്താരാഷ്ട്ര മാനദണ്ഡങ്ങളുടെ രൂപത്തിൽ നിയന്ത്രണത്തിലേക്ക് നയിച്ചു.
GKS ആണ് ആദ്യത്തെ അന്താരാഷ്ട്ര ഗ്രാഫിക്സ് നിലവാരം. ഇത് ആദ്യം "വർക്ക്സ്റ്റേഷനുകൾ" എന്ന ആശയങ്ങൾ രേഖപ്പെടുത്തി ലോജിക്കൽ ഉപകരണങ്ങൾഇൻപുട്ട് (കീബോർഡ്, സെലക്ഷൻ, ലൊക്കേറ്റർ, വാലുവേറ്റർ, പോയിന്റർ, കോർഡിനേറ്റ് സീക്വൻസ് ഇൻപുട്ട്). നിർഭാഗ്യവശാൽ മാതൃകാപരമായ മേധാവിത്വത്തിന്റെ കാലത്ത് ഗർഭം ധരിച്ചു വെക്റ്റർ ഡ്രോയിംഗ്. അതിനാൽ ഡയലോഗ് പിന്തുണയുടെ ദൗർബല്യം: ആപ്ലിക്കേഷൻ പ്രോഗ്രാമിൽ നിന്ന് (ഉപയോക്താവ്) പോലും പുതിയ ഉപകരണങ്ങൾ നൽകാനോ സ്ക്രീനിൽ ഉപകരണ ഇമേജ് പരിഷ്ക്കരിക്കാനോ ഉള്ള കഴിവില്ലായ്മ ഗ്രാഫിക്സ് പാക്കേജ്), ഇത് ഒരു സംഭാഷണം സംഘടിപ്പിക്കുമ്പോൾ പ്രധാനമായും പ്രതീകാത്മക ഇൻപുട്ട് ഉപയോഗിക്കേണ്ടതിന്റെ ആവശ്യകതയിലേക്ക് നയിക്കുന്നു. GKS-ൽ ഡയലോഗ് നടപ്പിലാക്കുന്നത് ആപ്ലിക്കേഷൻ പ്രോഗ്രാമിന്റെ പ്രത്യേകാവകാശമാണ്; പ്രത്യേക രൂപകൽപ്പനയുടെ സാധ്യത ഊഹിക്കപ്പെടുന്നില്ല.
ഗ്രാഫിക്സിന്റെ രണ്ടാമത്തെ ദിശ - ഇന്ററാക്ടീവ് സിസ്റ്റങ്ങളുടെ തുടർന്നുള്ള എല്ലാ വികസനത്തിലും റാസ്റ്റർ ഗ്രാഫിക്സ് വളരെ വലിയ സ്വാധീനം ചെലുത്തി. ആധുനിക വർക്ക്സ്റ്റേഷനുകളിലെ ഉപയോക്തൃ ഇന്റർഫേസിന്റെ എല്ലാ പ്രധാന സവിശേഷതകളും Xerox PARC-ന്റെ പ്രവർത്തനത്തിൽ നിന്ന് ഉരുത്തിരിഞ്ഞതാണ്: വിൻഡോ മാനേജ്മെന്റ്

  • വസ്തുക്കളെ പ്രതിനിധീകരിക്കുന്നതിന് ഗ്രാഫിക് ചിഹ്നങ്ങളുടെ ("ഐക്കണുകൾ") ഉപയോഗം
  • നേരിട്ടുള്ള കൃത്രിമത്വം എന്ന് വിളിക്കപ്പെടുന്ന ഒരു ഇടപെടലിന്റെ ശൈലി
  • സ്‌ക്രീൻ പൊസിഷനിംഗ് ഉപകരണമെന്ന നിലയിൽ മൗസിന്റെ ജനപ്രീതി
  • ഒബ്ജക്റ്റ് ഓറിയന്റഡ് പ്രോഗ്രാമിംഗ് ശൈലി.
അതിനുശേഷം, ഉപയോക്തൃ ഇന്റർഫേസുകൾ സൃഷ്ടിക്കുന്നതിനും കൈകാര്യം ചെയ്യുന്നതിനുമുള്ള ടൂളുകൾക്കായുള്ള വർഗ്ഗീകരണ സംവിധാനം മൂന്ന് തലങ്ങളിൽ പരിഗണിക്കപ്പെടുന്നു:
  1. വിൻഡോ മാനേജ്മെന്റ് സിസ്റ്റങ്ങൾ (WMS - വിൻഡോ മാനേജർ സിസ്റ്റം);
  2. പ്രത്യേക ഉപകരണങ്ങൾ;
    • സാധാരണ (മാകിന്റോഷ്, സൺവ്യൂ...)
    • ഒബ്ജക്റ്റ് ഓറിയന്റഡ് (സ്മോൾടോക്ക്-80, ആൻഡ്രൂ, ഇന്റർവ്യൂ)
  3. ഉപയോക്തൃ ഇന്റർഫേസ് മാനേജ്മെന്റ് സിസ്റ്റങ്ങൾ.
ഇനിപ്പറയുന്ന വിഭാഗങ്ങൾ നൽകും ഹ്രസ്വ സവിശേഷതകൾ, ഈ ഓരോ ലെവലിന്റെയും നിലയും പ്രവർത്തന വിവരണവും.

വിൻഡോ മാനേജ്മെന്റ് സിസ്റ്റംസ് (WMS)

ഒരു സ്‌ക്രീനിൽ സാധ്യമാകുന്നതിലും കൂടുതൽ വിവരങ്ങളിലേക്കുള്ള ആക്‌സസ് ഉപയോക്താവിന് മൾട്ടി-വിൻഡോ സാങ്കേതികവിദ്യ നൽകുന്നു. വിൻഡോസ് ഒന്നിലധികം വിവര സ്രോതസ്സുകളിലേക്ക് ആക്സസ് നൽകുന്നു. ഉപയോക്താവിന് നിരവധി ഉറവിടങ്ങളിൽ നിന്നുള്ള വിവരങ്ങൾ സംയോജിപ്പിക്കാനും വിവിധ തലങ്ങളിൽ വിവരങ്ങൾ പര്യവേക്ഷണം ചെയ്യാനും കഴിയും. മൾട്ടിപ്രോഗ്രാം മോഡിൽ പലതും നിയന്ത്രിക്കാൻ സാധിക്കും സമാന്തര ജോലികൾ. ഓരോ ടാസ്ക്കിന്റെയും ഇൻപുട്ടും ഔട്ട്പുട്ടും വ്യത്യസ്‌ത വിൻഡോകളിൽ പ്രദർശിപ്പിച്ചിരിക്കുന്നു, ആവശ്യാനുസരണം ഓരോ ജോലിയിലും ശ്രദ്ധ കേന്ദ്രീകരിക്കാൻ ഉപയോക്താവിനെ അനുവദിക്കുന്നു.
വിൻഡോ അധിഷ്‌ഠിത മാനേജ്‌മെന്റ് ഉറവിടങ്ങൾക്കായുള്ള പ്രവർത്തന അന്തരീക്ഷമായ WMS, പിന്തുണയ്ക്കുന്നു:

  • ഓവർലാപ്പിംഗ് വിൻഡോകൾ (സ്ക്രീനിന്റെ ചതുരാകൃതിയിലുള്ള പ്രദേശങ്ങൾ);
  • വിവിധ ഇൻപുട്ട് ഉപകരണങ്ങൾ (ഡിജിറ്റലും അനലോഗും);
  • കഴ്സറുകൾ;
  • ഫോണ്ടുകൾ.
ഓപ്പറേറ്ററുടെയും ആപ്ലിക്കേഷൻ പ്രോഗ്രാമിന്റെയും ഭാഗത്തുള്ള ഇന്റർഫേസിൽ വിൻഡോകൾ സൃഷ്‌ടിക്കുന്നതിനും നശിപ്പിക്കുന്നതിനും അവയുടെ വലുപ്പവും സ്ഥാനവും മാറ്റുന്നതിനും അവയെ മുകളിലേക്ക് ഉയർത്തുന്നതിനും വിൻഡോ ഒരു ഐക്കണിലേക്ക് കംപ്രസ് ചെയ്യുന്നതിനും പുനഃസ്ഥാപിക്കുന്നതിനുമുള്ള കമാൻഡുകൾ അടങ്ങിയിരിക്കുന്നു. ഒരു ഗ്രാഫിക്കൽ ഔട്ട്‌പുട്ട് ലൈബ്രറിയും (അടിസ്ഥാന പ്രാകൃതങ്ങൾ മാത്രം) ഒരു ഇവന്റ് ഹാൻഡ്‌ലറും അടങ്ങിയിരിക്കുന്നു. അതിനാൽ, യൂസർ ഇന്റർഫേസ് നടപ്പിലാക്കുന്നതിന് ചില സംവിധാനങ്ങളുണ്ട്.
രണ്ട് തരത്തിലുള്ള WMS നടപ്പിലാക്കലുകൾ സാധ്യമാണ്: അടിസ്ഥാന സംവിധാനം(കേർണൽ സിസ്റ്റം), ഒരു മെഷീനിൽ പ്രവർത്തിക്കുന്ന, നെറ്റ്‌വർക്ക് (നെറ്റ്‌വർക്ക് ഓറിയന്റഡ്), ക്ലയന്റ്-സെർവർ മോഡലിനെ അടിസ്ഥാനമാക്കി നടപ്പിലാക്കുന്നു.

യൂസർ ഇന്റർഫേസ് ക്രിയേഷൻ ടൂൾകിറ്റ്

വിജ്ഞാന അടിത്തറയിൽ നിങ്ങളുടെ നല്ല സൃഷ്ടികൾ അയയ്ക്കുക ലളിതമാണ്. ചുവടെയുള്ള ഫോം ഉപയോഗിക്കുക

വിദ്യാർത്ഥികൾ, ബിരുദ വിദ്യാർത്ഥികൾ, അവരുടെ പഠനത്തിലും ജോലിയിലും വിജ്ഞാന അടിത്തറ ഉപയോഗിക്കുന്ന യുവ ശാസ്ത്രജ്ഞർ നിങ്ങളോട് വളരെ നന്ദിയുള്ളവരായിരിക്കും.

പോസ്റ്റ് ചെയ്തത് http://www.allbest.ru/

പോസ്റ്റ് ചെയ്തത് http://www.allbest.ru/

RF-ന്റെ ഫെഡറൽ എഡ്യൂക്കേഷൻ ഏജൻസി

സംസ്ഥാന വിദ്യാഭ്യാസ സ്ഥാപനം

ഉയർന്ന പ്രൊഫഷണൽ വിദ്യാഭ്യാസം

റഷ്യൻ സ്റ്റേറ്റ് ഹ്യൂമാനിറ്റേറിയൻയൂണിവേഴ്സിറ്റി

ഇൻസ്റ്റിറ്റ്യൂട്ട് ഓഫ് ഇൻഫർമേഷൻ സയൻസസ് ആൻഡ് സെക്യൂരിറ്റി ടെക്നോളജീസ്

ജനറൽ ഇൻഫോർമാറ്റിക്സ് വകുപ്പ്

ടെസ്റ്റ്

ഇൻഫർമേഷൻ ടെക്നോളജിയിൽ

ഗ്രാഫിക് ഇന്റർഫേസുകളും അവയുടെ വികസന ഉപകരണങ്ങളും

ലിസിചെനോക്ക് കോൺസ്റ്റാന്റിൻ വിക്ടോറോവിച്ച്

എക്സ്റ്റേൺഷിപ്പ് 3 വർഷത്തെ പഠനം

(4 വർഷത്തെ പഠന കാലയളവ്)

ഗ്രൂപ്പ് ബി (വിവര മണ്ഡലം)

ശാസ്ത്ര ഉപദേഷ്ടാവ്,

പിഎച്ച്ഡി, അധ്യാപകൻ: മഷിന്റ്സോവ് ഇ.എ.

മോസ്കോ 2005

പ്ലാൻ ചെയ്യുക

ആമുഖം

X വിൻഡോ സിസ്റ്റം

പൊതുവായ സിസ്റ്റം ഘടന X വിൻഡോ

X ടൂൾകിറ്റ് ഇൻട്രിൻസിക് (Xt) ലൈബ്രറി ഉപയോഗിച്ചുള്ള പ്രോഗ്രാമിംഗ്

Xt വസ്തുക്കൾ, അവയുടെ വർഗ്ഗീകരണം

വിവര ഉറവിടങ്ങൾ

ആമുഖം

1959-ൽ ആദ്യമായി, വിവര സംസ്കരണത്തെക്കുറിച്ചുള്ള യുനെസ്കോ കോൺഫറൻസിൽ, കമ്പ്യൂട്ടറുകളിലെ പ്രശ്നങ്ങൾ പരിഹരിക്കുന്നതിനുള്ള ഒരു ടൈം-ഷെയറിംഗ് മോഡ് സ്ട്രെസി നിർദ്ദേശിച്ചപ്പോൾ, ആ നിമിഷം മുതൽ ഇന്ററാക്ടീവ് കമ്പ്യൂട്ടിംഗിന്റെ ആരംഭം കണക്കാക്കുന്നത് പതിവായിരുന്നു, തൽഫലമായി, പഠനം. മനുഷ്യ-യന്ത്ര ഇന്റർഫേസ്. കംപ്യൂട്ടറിന്റെ ശക്തി വർധിച്ചതോടെ സോഫ്‌റ്റ്‌വെയറിന്റെ സംഭാഷണ ഘടകത്തിന്റെ വിലയും വർദ്ധിച്ചു. ഗ്രാഫിക്സുമായി സംവേദനാത്മകത സംയോജിപ്പിക്കുന്ന വർക്ക്സ്റ്റേഷനുകളുടെ വിപണിയിലേക്കുള്ള അതിവേഗ പ്രവേശനത്തോടെ മെഷീൻ കാര്യക്ഷമതയുടെ പ്രശ്നം കൂടുതൽ രൂക്ഷമായി. കാര്യക്ഷമത എന്ന പദത്തിന് അതിന്റെ അർത്ഥം മാറിയിട്ടുണ്ട് - മുമ്പ് ഇത് പ്രോസസ്സർ സമയവും മെമ്മറിയുടെ അളവും പോലുള്ള സ്വഭാവസവിശേഷതകളെ പ്രതിഫലിപ്പിച്ചിരുന്നുവെങ്കിൽ, ഇപ്പോൾ അത് വികസനത്തിന്റെ എളുപ്പവും അറ്റകുറ്റപ്പണിയുടെ എളുപ്പവും പ്രോഗ്രാമിനൊപ്പം പ്രവർത്തിക്കാനുള്ള എളുപ്പവുമാണ്. അതിനാൽ, ഉപയോക്തൃ ഇന്റർഫേസ് ഗവേഷണം ചെയ്യുന്നതിനും വികസിപ്പിക്കുന്നതിനുമുള്ള ചെലവ് ന്യായമാണ്.

ഏതൊരു ആപ്ലിക്കേഷൻ സോഫ്റ്റ്വെയറിന്റെയും വികസനം സാധാരണയായി ഒരു ഉപയോക്തൃ ഇന്റർഫേസ് സൃഷ്ടിക്കുന്നത് ഉൾപ്പെടുന്നു. ഏറ്റവും ആധുനികമായത് മുതൽ ഉപയോക്തൃ ഇന്റർഫേസുകൾസമാന ആശയങ്ങളെ അടിസ്ഥാനമാക്കിയുള്ളതാണ് ( സജീവ ഉപയോഗം"എലികൾ", ഒബ്ജക്റ്റ് ഓറിയന്റേഷൻ, ഗ്രാഫിക്സ് മുതലായവ. - പ്രക്രിയകളുടെയും പ്രതിഭാസങ്ങളുടെയും അനുകരണം, ഓരോ വ്യക്തിക്കും അവന്റെ ദൈനംദിന ജീവിതത്തിൽ നിന്ന് പരിചിതമായ അൽഗോരിതങ്ങൾ ഉപയോഗിക്കാനുള്ള സാധ്യത), അത്തരം "സ്റ്റാൻഡേർഡ്" ഇന്റർഫേസുകൾ അല്ലെങ്കിൽ അവയുടെ അടിസ്ഥാനങ്ങൾ സൃഷ്ടിക്കാൻ രൂപകൽപ്പന ചെയ്ത സഹായ സോഫ്റ്റ്വെയർ വികസിപ്പിക്കാനുള്ള സാധ്യതയും ആവശ്യവും ഉണ്ട്.

മറുവശത്ത്, ഈ സോഫ്റ്റ്‌വെയർ പ്രവർത്തിപ്പിക്കേണ്ട ഹാർഡ്‌വെയറുകളുടെയും സിസ്റ്റം പ്ലാറ്റ്‌ഫോമുകളുടെയും ബഹുത്വത്തിനും വൈവിധ്യത്തിനും അതിന്റെ പോർട്ടബിലിറ്റി തലത്തിൽ ആവശ്യമാണ്. സോഴ്സ് കോഡ്. ഉപയോക്തൃ ഇന്റർഫേസുകൾ സൃഷ്ടിക്കുന്നതിനുള്ള ഒരു പോർട്ടബിൾ ഏകീകൃത സോഫ്‌റ്റ്‌വെയർ ഉപകരണത്തിന്റെ ആശയത്തിലേക്ക് യുക്തിപരമായി നയിക്കുന്നു, അല്ലെങ്കിൽ അന്തിമ ആപ്ലിക്കേഷൻ സോഫ്റ്റ്‌വെയർ ഉൽപ്പന്നം ഞങ്ങൾ പരിഗണിക്കുകയാണെങ്കിൽ, നിയന്ത്രിക്കുന്ന (മാനേജുചെയ്യുന്നു, നിയന്ത്രിക്കുന്നു, പരിപാലിക്കുന്നു, നിയന്ത്രിക്കുന്നു) ഒരു സിസ്റ്റം (മൊഡ്യൂൾ, ബ്ലോക്ക്) ഉപയോക്താവുമായുള്ള ഇന്റർഫേസ്.

ഇനിപ്പറയുന്ന സ്കീം അനുസരിച്ച് നിങ്ങൾക്ക് അത്തരം ഉപകരണങ്ങളെ (യൂസർ ഇന്റർഫേസ് ടൂളുകൾ) തരംതിരിക്കാം:

* ടെക്‌സ്‌റ്റ് സ്‌ക്രീൻ സംവിധാനങ്ങൾ (ശാപം, നാശം, മുതലായവ).

* ഗ്രാഫിക് സ്‌ക്രീൻ സംവിധാനങ്ങൾ.

* മൾട്ടി വിൻഡോ സിസ്റ്റങ്ങൾ (WMS):

* പ്രതീക-അധിഷ്ഠിത (ടെക്സ്റ്റ്);

* ഗ്രാഫിക്;

*UI ടൂൾകിറ്റുകൾ

* പരമ്പരാഗത;

* ഒബ്ജക്റ്റ് ഓറിയന്റഡ്;

* UIDS - ഉപയോക്തൃ ഇന്റർഫേസ് വികസന സംവിധാനം - ഉപയോക്തൃ ഇന്റർഫേസ് വികസന സംവിധാനം (ടൂൾകിറ്റ്);

* UIMS - യൂസർ ഇന്റർഫേസ് മാനേജ്മെന്റ് സിസ്റ്റം - ഉപയോക്തൃ ഇന്റർഫേസ് (മാനേജ്മെന്റ്) സിസ്റ്റം (സോഫ്റ്റ്‌വെയർ മൊഡ്യൂൾ - അനുബന്ധ യുഐഡിഎസുമായി ചേർന്ന് അന്തിമ ഉൽപ്പന്നത്തിന്റെ അവിഭാജ്യ ഭാഗം);

* UIDE - ഉപയോക്തൃ ഇന്റർഫേസ് വികസന പരിസ്ഥിതി - ഉപയോക്തൃ ഇന്റർഫേസ് വികസന പരിസ്ഥിതി.

ഈ സ്കീം ഒരു ചിട്ടയായ വർഗ്ഗീകരണമായി നടിക്കുന്നില്ല; പകരം, ഇത് ഒരു കണക്കെടുപ്പ് മാത്രമാണ്.

നിലവിൽ, യുഐഎംഎസ് - യൂസർ ഇന്റർഫേസ് മാനേജ്‌മെന്റ് സിസ്റ്റം എന്ന് വിളിക്കുന്ന സിസ്റ്റങ്ങളിൽ രീതികൾ വികസിപ്പിക്കുന്നതിനും ടൂളുകൾ സൃഷ്‌ടിക്കുന്നതിനും വലിയ ശ്രമങ്ങൾ നടക്കുന്നുണ്ട്.

സിസ്റ്റംX വിൻഡോ

X വിൻഡോഅല്ലെങ്കിൽ ലളിതമായി എക്സ്ഒരു ഗ്രാഫിക്കൽ യൂസർ ഇന്റർഫേസ് സൃഷ്ടിക്കുന്നതിനുള്ള ഒരു സംവിധാനമാണ്, തുടക്കത്തിൽ UNIX പ്രവർത്തിക്കുന്ന കമ്പ്യൂട്ടറുകളിൽ. എംഐടിയിൽ (മസാച്ചുസെറ്റ്സ് ഇൻസ്റ്റിറ്റ്യൂട്ട് ഓഫ് ടെക്നോളജി) X സൃഷ്ടിച്ചു. നിലവിൽ, പതിപ്പ് 11.6 (X11R6) ഇതിനകം പുറത്തിറങ്ങി, പതിപ്പ് 7 ന്റെ റിലീസിനായി ഒരുക്കങ്ങൾ സജീവമായി നടക്കുന്നു.

എക്സ് വിൻഡോയുടെ ഒരു പ്രത്യേക സവിശേഷത അതിന്റെ വാസ്തുവിദ്യയാണ് - ഇത് ക്ലയന്റ്-സെർവർ സ്കീം അനുസരിച്ചാണ് നിർമ്മിച്ചിരിക്കുന്നത്. എക്സ് ക്ലയന്റും എക്സ് സെർവറും തമ്മിലുള്ള പ്രതിപ്രവർത്തനം അനുബന്ധ ആപ്ലിക്കേഷൻ ലെയർ പ്രോട്ടോക്കോളിന്റെ ചട്ടക്കൂടിനുള്ളിൽ സംഭവിക്കുന്നു - എക്സ് പ്രോട്ടോക്കോൾ. X വിൻഡോ ഉപയോഗിക്കുന്ന ഗതാഗതത്തിൽ നിസ്സംഗത പുലർത്തുന്നു, അത് ഒരു പ്രാദേശിക UNIX-സോക്കറ്റ് അല്ലെങ്കിൽ ഏതെങ്കിലും നെറ്റ്‌വർക്ക് ആകാം, ഉദാഹരണത്തിന്, TCP. ഇതിനർത്ഥം X ക്ലയന്റിനും X സെർവറിനും വ്യത്യസ്ത കമ്പ്യൂട്ടറുകളിൽ "ജീവിക്കാൻ" കഴിയും, അതായത്. പ്രോഗ്രാമിന് മറ്റൊരു കമ്പ്യൂട്ടറിന്റെ സ്ക്രീനിൽ ഗ്രാഫിക്കൽ വിവരങ്ങളുടെ ഇൻപുട്ട്/ഔട്ട്പുട്ട് നടത്താൻ കഴിയും, കൂടാതെ X ക്ലയന്റിന്റെയും X സെർവറിന്റെയും ആർക്കിടെക്ചറിലെ വ്യത്യാസങ്ങൾ ഒരു പങ്കും വഹിക്കുന്നില്ല - ഇത് X പ്രോട്ടോക്കോൾ സ്റ്റാൻഡേർഡ് ഉറപ്പാക്കുന്നു. സിസ്റ്റം മെഷീൻ സ്‌ക്രീനിലേക്ക് ഗ്രാഫിക്കൽ ഔട്ട്‌പുട്ട് നൽകുന്നു, കീബോർഡ്, മൗസ് തുടങ്ങിയ ഇൻപുട്ട് ഉപകരണങ്ങളിൽ നിന്ന് സിഗ്നലുകൾ സ്വീകരിക്കുകയും അവ പ്രോഗ്രാമുകളിലേക്ക് കൈമാറുകയും ചെയ്യുന്നു. ഔട്ട്‌പുട്ട് ഉപകരണത്തിന് ഒന്നിലധികം സ്‌ക്രീൻ ഉണ്ടായിരിക്കാം എന്നത് ശ്രദ്ധിക്കേണ്ടതാണ്. എക്സ് അവയിലേതെങ്കിലും ഔട്ട്പുട്ട് നൽകുന്നു. ഇതെല്ലാം: സ്ക്രീൻ (സ്ക്രീനുകൾ), ഇൻപുട്ട് ഉപകരണങ്ങൾ (കീബോർഡ്, മൗസ്) എക്സ് വിൻഡോ പദങ്ങളിൽ വിളിക്കുന്നു - ഡിസ്പ്ലേ.

അതിന്റെ ആർക്കിടെക്ചറിന് നന്ദി, X വിൻഡോ ഡിസ്ട്രിബ്യൂട്ടഡ് കമ്പ്യൂട്ടിംഗ് സിസ്റ്റങ്ങളിൽ സ്വതന്ത്രമായി ഉപയോഗിക്കാം, ഉദാഹരണത്തിന്, TCP/IP നെറ്റ്‌വർക്കുകളിൽ (ഇന്റർനെറ്റ്).

എക്‌സ് ഉപയോക്താവിനെ (ഡിസ്‌പ്ലേയ്ക്ക് പിന്നിൽ) പല പ്രോഗ്രാമുകളുമായി ഒരേസമയം ആശയവിനിമയം നടത്താൻ അനുവദിക്കുന്നു. അവയിൽ നിന്നുള്ള ഔട്ട്പുട്ട് മിശ്രിതമാകുന്നത് തടയാൻ, ഡിസ്പ്ലേ സ്ക്രീനിൽ സിസ്റ്റം "വെർച്വൽ സബ്സ്ക്രീനുകൾ" - വിൻഡോകൾ - സൃഷ്ടിക്കുന്നു. ഓരോ ആപ്ലിക്കേഷനും (ഒരു ചട്ടം പോലെ) സ്വന്തം വിൻഡോയിൽ (അല്ലെങ്കിൽ വിൻഡോകൾ) മാത്രം വരയ്ക്കുന്നു. വിൻഡോകൾ സൃഷ്‌ടിക്കുന്നതിനും സ്‌ക്രീനിലൂടെ അവയെ ചലിപ്പിക്കുന്നതിനും വലുപ്പം മാറ്റുന്നതിനും പ്രദർശിപ്പിക്കുന്നതിനും മറ്റും വേണ്ടിയുള്ള ഒരു കൂട്ടം ടൂളുകൾ X നൽകുന്നു.

ചട്ടം പോലെ, പ്രോഗ്രാമുകൾക്ക് ഒരു സെറ്റ് ഉണ്ട് കോൺഫിഗറേഷൻ പരാമീറ്ററുകൾ- വിഭവങ്ങൾ. അത് ജാലകത്തിന്റെ നിറമായിരിക്കാം, വിവിധ പരാമീറ്ററുകൾടെക്സ്റ്റ് ഫോണ്ട് (ലിഗേച്ചർ, സൈസ്, മുതലായവ) കൂടാതെ മറ്റു പലതും. ആപ്ലിക്കേഷൻ ഉറവിടങ്ങൾ നിർവചിക്കുന്നതിനും അവ കൈകാര്യം ചെയ്യുന്നതിനുമുള്ള മാർഗ്ഗം സിസ്റ്റം സ്റ്റാൻഡേർഡ് ചെയ്യുന്നു, കൂടാതെ അവയ്‌ക്കൊപ്പം പ്രവർത്തിക്കുന്നതിനുള്ള നിരവധി നടപടിക്രമങ്ങൾ അടങ്ങിയിരിക്കുന്നു. ഈ പ്രവർത്തനങ്ങളുടെ കൂട്ടത്തെ "റിസോഴ്സ് മാനേജർ" (Xrm - X റിസോഴ്സ് മാനേജർ) എന്ന് വിളിക്കുന്നു. പ്രോഗ്രാം പാരാമീറ്ററുകളുടെ "സ്റ്റോറേജ്" റിസോഴ്സ് ഡാറ്റാബേസ് എന്ന് വിളിക്കുന്നു.

ഇവന്റ്-ഡ്രൈവ് ആർക്കിടെക്ചറിന്റെ പ്രത്യയശാസ്ത്രം അനുസരിച്ചാണ് എക്സ് പ്രവർത്തിക്കുന്നത് - ഇത് പ്രോഗ്രാമുകൾക്കിടയിലും പ്രോഗ്രാമുകൾക്കിടയിലും ബാഹ്യ പരിതസ്ഥിതികൾക്കിടയിലും ഇവന്റുകളിലൂടെ ആശയവിനിമയം സംഘടിപ്പിക്കുന്നു. ഒരു സിസ്റ്റത്തിൽ സംഭവിക്കുന്ന മാറ്റങ്ങളെയോ പ്രവർത്തനങ്ങളെയോ തിരിച്ചറിയുന്ന വിവരങ്ങളുടെ ഒരു യൂണിറ്റാണ് ഇവന്റ്. ഇവന്റ് ഐഡന്റിഫയർ ഉപയോഗിച്ച്, നിങ്ങൾക്ക് അതിനെക്കുറിച്ചുള്ള വിവരങ്ങൾ ലഭിക്കും - ഇവന്റിന്റെ തരം, അതിന്റെ സവിശേഷതകൾ, അത് എവിടെയാണ് സംഭവിച്ചത് മുതലായവ.

ജനറൽ X വിൻഡോ ഉപകരണം

സിസ്റ്റം X വിൻഡോപ്രോഗ്രാമുകളുടെയും ലൈബ്രറികളുടെയും ഒരു ശേഖരമാണ്. അതിന്റെ "ഹൃദയം" ഒരു പ്രത്യേക പ്രോഗ്രാമാണ് - എക്സ് സെർവർ. ഡിസ്പ്ലേ ഘടിപ്പിച്ചിരിക്കുന്ന കമ്പ്യൂട്ടറിൽ നടക്കുന്ന ഒരു പ്രത്യേക യുണിക്സ് പ്രക്രിയയാണിത്. നിർദ്ദിഷ്ട ഉപകരണങ്ങളുടെ സവിശേഷതകൾ അറിയുന്നതും ഏതെങ്കിലും ഗ്രാഫിക് ഒബ്ജക്റ്റ് പ്രദർശിപ്പിക്കുന്നതിന് എന്താണ് ചെയ്യേണ്ടതെന്ന് അറിയുന്നതും സെർവറാണ്, ഉദാഹരണത്തിന്, ഒരു പ്രാകൃതം, സ്ക്രീനിൽ. കീബോർഡിൽ നിന്നും മൗസിൽ നിന്നും വരുന്ന സിഗ്നലുകൾ മനസ്സിലാക്കാനും പ്രോസസ്സ് ചെയ്യാനും അദ്ദേഹത്തിന് കഴിയും.

ക്ലയന്റ് പ്രോഗ്രാമുകളിൽ നിന്ന് ഡാറ്റ പാക്കറ്റുകൾ അയച്ചോ സ്വീകരിച്ചോ സെർവർ ആശയവിനിമയം നടത്തുന്നു. സെർവറും ക്ലയന്റും ഓണാണെങ്കിൽ വ്യത്യസ്ത കാറുകൾ, തുടർന്ന് ഡാറ്റ നെറ്റ്‌വർക്കിലൂടെ അയയ്‌ക്കുന്നു, ഒന്നിലാണെങ്കിൽ, ആന്തരിക ചാനൽ ഉപയോഗിക്കുന്നു. ഉദാഹരണത്തിന്, ഉപയോക്താവ് മൗസ് ബട്ടൺ അമർത്തിയെന്ന് സെർവർ കണ്ടെത്തുകയാണെങ്കിൽ, അത് അനുബന്ധ പാക്കറ്റ് (ഇവന്റ്) തയ്യാറാക്കുകയും ബട്ടൺ അമർത്തുമ്പോൾ മൗസ് കഴ്‌സർ ഉണ്ടായിരുന്ന വിൻഡോയിൽ ക്ലയന്റിലേക്ക് അയയ്ക്കുകയും ചെയ്യുന്നു. നേരെമറിച്ച്, ഒരു പ്രോഗ്രാമിന് ഡിസ്പ്ലേ സ്ക്രീനിൽ എന്തെങ്കിലും പ്രദർശിപ്പിക്കണമെങ്കിൽ, അത് സൃഷ്ടിക്കുന്നു ആവശ്യമായ പാക്കേജ്ഡാറ്റ സെർവറിലേക്ക് അയയ്ക്കുന്നു. വ്യക്തമായും, ഈ ഇടപെടലിന്റെ ഒരു വിവരണം, പാക്കറ്റ് ഫോർമാറ്റുകൾ മുതലായവ. മുകളിൽ പറഞ്ഞ X പ്രോട്ടോക്കോളിനുള്ള സ്പെസിഫിക്കേഷൻ സമാഹരിക്കുന്നു.

എന്നിരുന്നാലും, X-നായി പ്രോഗ്രാം ചെയ്യുന്നതിന്, നിങ്ങൾ സെർവർ നടപ്പിലാക്കലിന്റെയും X പ്രോട്ടോക്കോളിന്റെയും വിശദാംശങ്ങൾ അറിയേണ്ടതില്ല. "ഉയർന്ന തലത്തിൽ" X സേവനങ്ങൾ പ്രോഗ്രാമുകൾ ആക്സസ് ചെയ്യുന്ന നടപടിക്രമങ്ങളുടെ ഒരു സാധാരണ ലൈബ്രറി സിസ്റ്റം നൽകുന്നു. അതിനാൽ, സ്ക്രീനിൽ ഒരു പോയിന്റ് പ്രദർശിപ്പിക്കുന്നതിന്, അനുബന്ധമായി വിളിച്ചാൽ മതി സ്റ്റാൻഡേർഡ് നടപടിക്രമം, അത് ആവശ്യമായ പാരാമീറ്ററുകൾ കൈമാറുന്നു. ഡാറ്റ പാക്കറ്റുകൾ സൃഷ്ടിക്കുന്നതിനും അവ സെർവറിലേക്ക് കൈമാറുന്നതിനുമുള്ള എല്ലാ ജോലികളും ഈ നടപടിക്രമം ചെയ്യും.

X വിൻഡോ

നേരത്തെ സൂചിപ്പിച്ചതുപോലെ, X-ലെ ഒരു അടിസ്ഥാന ആശയമാണ് വിൻഡോ. ഇത് സാധാരണയായി, ഒരു ക്ലയന്റ് പ്രോഗ്രാമിന് സിസ്റ്റം നൽകുന്ന സ്ക്രീനിലെ ചതുരാകൃതിയിലുള്ള പ്രദേശത്തെ പ്രതിനിധീകരിക്കുന്നു. രണ്ടാമത്തേത് ഗ്രാഫിക്കൽ വിവരങ്ങൾ പ്രദർശിപ്പിക്കുന്നതിന് ഒരു വിൻഡോ ഉപയോഗിക്കുന്നു.

ജാലകത്തിന് അകത്തും അരികും ഉണ്ട്. ഒരു ജാലകത്തിന്റെ പ്രധാന ആട്രിബ്യൂട്ടുകൾ ഇന്റീരിയറിന്റെ വീതിയും ഉയരവും, അതുപോലെ അരികിലെ വീതിയും (കനം) ആണ്. ഈ പരാമീറ്ററുകളെ വിൻഡോ ജ്യാമിതി എന്ന് വിളിക്കുന്നു.

ഓരോ വിൻഡോയും ഒരു കോർഡിനേറ്റ് സിസ്റ്റവുമായി ബന്ധപ്പെട്ടിരിക്കുന്നു, അതിന്റെ ഉത്ഭവം വിൻഡോയുടെ മുകളിൽ ഇടത് കോണിലാണ് (കൂടുതൽ കൃത്യമായി പറഞ്ഞാൽ, അതിന്റെ ഇന്റീരിയർ). x-അക്ഷം വലത്തോട്ടും y-അക്ഷം താഴേക്കും പോയിന്റ് ചെയ്യുന്നു. രണ്ട് അക്ഷങ്ങളിലും അളക്കാനുള്ള യൂണിറ്റ് പിക്സൽ ആണ്.

ഒരേ സമയം ഒന്നിലധികം വിൻഡോകൾ സൃഷ്ടിക്കാൻ X വിൻഡോ ഒരു പ്രോഗ്രാമിനെ അനുവദിക്കുന്നു. ചിലർ "മാതാപിതാക്കൾ", മറ്റുള്ളവർ "സന്തതികൾ" എന്നിങ്ങനെയുള്ള ഒരു ശ്രേണിയിലേക്ക് അവർ ബന്ധപ്പെട്ടിരിക്കുന്നു. സെർവർ തന്നെ ഓരോ സ്‌ക്രീനിലും ഒരു പ്രധാന വിൻഡോ സൃഷ്‌ടിക്കുന്നു, അത് മറ്റെല്ലാ ജാലകങ്ങളുടെയും ഏറ്റവും മുകളിലുള്ള "മാതാവ്" ആണ്. ഈ വിൻഡോയെ "റൂട്ട്" വിൻഡോ എന്ന് വിളിക്കുന്നു.

വിൻഡോ മാനേജ്മെന്റ്

വിൻഡോസ് സ്‌ക്രീനിൽ ഏകപക്ഷീയമായി സ്ഥാപിക്കാൻ കഴിയും, പരസ്പരം ഓവർലാപ്പ് ചെയ്യുന്നു. X വിൻഡോയിൽ ഒരു കൂട്ടം ടൂളുകൾ ഉണ്ട്, അത് ഉപയോഗിച്ച് ക്ലയന്റ് പ്രോഗ്രാമിന് വിൻഡോകളുടെ വലുപ്പവും സ്ക്രീനിൽ അവയുടെ സ്ഥാനവും മാറ്റാൻ കഴിയും. മൗസ് അല്ലെങ്കിൽ കീബോർഡ് ഉപയോഗിച്ച് വിൻഡോകൾ നിയന്ത്രിക്കുന്നതിനുള്ള ഒരു ബിൽറ്റ്-ഇൻ ശേഷി ഇല്ല എന്നതാണ് സിസ്റ്റത്തിന്റെ ഒരു പ്രത്യേക സവിശേഷത. ഇത് ചെയ്യുന്നതിന്, നിങ്ങൾക്ക് ഒരു പ്രത്യേക ക്ലയന്റ് ആവശ്യമാണ് - ഒരു വിൻഡോ മാനേജർ.

എന്നിരുന്നാലും, ഒരു മാനേജർക്ക് വിൻഡോകളെ കുറിച്ച് ഒന്നും അറിയാതെ അവയെ ശരിയായി കൈകാര്യം ചെയ്യാൻ കഴിയില്ല. വിൻഡോ മാനേജർ നൽകേണ്ട വിവിധ പ്രോപ്പർട്ടികൾ വിൻഡോസിന് ഉണ്ടായിരിക്കാം: ഉദാഹരണത്തിന്, പല സന്ദർഭങ്ങളിലും വിൻഡോ ശീർഷകങ്ങൾ ഉണ്ടായിരിക്കുന്നത് സൗകര്യപ്രദമാണ്, മറ്റുള്ളവയിൽ വിൻഡോ ചെറുതാക്കാൻ കഴിയില്ല, അല്ലെങ്കിൽ തിരിച്ചും - വലുത്, ഒരു നിശ്ചിത വലുപ്പത്തിൽ. വിൻഡോ ഒരു ഐക്കണിലേക്ക് ("ഐക്കൺ") "തകർച്ച" ചെയ്യാവുന്നതാണ് - ഈ സാഹചര്യത്തിൽ ഏത് ഐക്കൺ ഉപയോഗിക്കണമെന്നും അതിന് എന്ത് പേരിടണമെന്നും മാനേജർ അറിഞ്ഞിരിക്കണം. ഉപഭോക്താക്കൾക്ക് വിൻഡോകളെക്കുറിച്ചുള്ള അവരുടെ ആഗ്രഹങ്ങൾ മാനേജരോട് രണ്ട് തരത്തിൽ അറിയിക്കാം:

* ഒരു വിൻഡോ X സൃഷ്ടിക്കുമ്പോൾ, വിൻഡോയുടെ പ്രാരംഭ സ്ഥാനം, അതിന്റെ ജ്യാമിതി, ഏറ്റവും കുറഞ്ഞതും കൂടിയതുമായ വലുപ്പങ്ങൾ മുതലായവയെക്കുറിച്ച് "സൂചനകൾ" കൈമാറാൻ കഴിയും.

* X-ലെ പ്രോഗ്രാമുകൾ തമ്മിലുള്ള ആശയവിനിമയത്തിനുള്ള അന്തർനിർമ്മിത മാർഗം നിങ്ങൾക്ക് ഉപയോഗിക്കാം - "പ്രോപ്പർട്ടീസ്" മെക്കാനിസം.

X വിൻഡോ ഗ്രാഫിക്സ് സവിശേഷതകൾ

റാസ്റ്റർ ഡിസ്പ്ലേകളിൽ പ്രവർത്തിപ്പിക്കാനാണ് എക്സ് വിൻഡോ സിസ്റ്റം രൂപകൽപ്പന ചെയ്തിരിക്കുന്നത്. ഓരോ പിക്സലിലുമുള്ള ബിറ്റുകളുടെ എണ്ണത്തെ ഡിസ്പ്ലേയുടെ ആഴം അല്ലെങ്കിൽ കനം എന്ന് വിളിക്കുന്നു. എല്ലാ പിക്സലുകളിലും ഒരേ സംഖ്യകളുള്ള (ഒരേ ബൈനറി അക്കങ്ങൾ) ബിറ്റുകൾ സ്ക്രീനിന് സമാന്തരമായി ഒരു തരം തലം ഉണ്ടാക്കുന്നു. ഇതിനെ വർണ്ണ തലം എന്ന് വിളിക്കുന്നു. മറ്റുള്ളവയെ ബാധിക്കാതെ ഏത് വർണ്ണ തലത്തിലും (കളിൽ) പെയിന്റ് ചെയ്യാൻ X നിങ്ങളെ അനുവദിക്കുന്നു.

പിക്സൽ മൂല്യം സ്ക്രീനിൽ ഒരു പോയിന്റിന്റെ നിറം നേരിട്ട് സജ്ജീകരിക്കുന്നില്ല, എന്നാൽ കളർ മൂല്യം സംഭരിച്ചിരിക്കുന്ന ഒരു പ്രത്യേക അറേയിൽ സെല്ലിന്റെ എണ്ണം സജ്ജമാക്കുന്നു, അതായത്. പിക്സൽ മൂല്യം നിലവിലെ പാലറ്റിലെ വർണ്ണ നമ്പർ വ്യക്തമാക്കുന്നു.

ഗ്രാഫിക് പ്രിമിറ്റീവുകൾ വരയ്ക്കാൻ നിങ്ങളെ അനുവദിക്കുന്ന ഒരു വലിയ നടപടിക്രമങ്ങൾ X-ന് ഉണ്ട്: പോയിന്റുകൾ, ലൈനുകൾ, ആർക്കുകൾ, ടെക്സ്റ്റ്; സ്വതന്ത്ര-ഫോം ഏരിയകളുമായി പ്രവർത്തിക്കുക.

"ഗുണങ്ങളും" ആറ്റങ്ങളും

ക്ലയന്റ് പ്രോഗ്രാമുകൾക്കിടയിൽ വിവരങ്ങൾ നൽകുന്നതിനുള്ള ബിൽറ്റ്-ഇൻ സൗകര്യങ്ങൾ എക്സ് വിൻഡോയിൽ ഉണ്ട്. ഇത് ചെയ്യുന്നതിന്, "പ്രോപ്പർട്ടീസ്" സംവിധാനം ഉപയോഗിക്കുന്നു. "സ്വത്ത്" ആണ് വിവര ഘടന, ചില ഒബ്‌ജക്‌റ്റുമായി ബന്ധപ്പെട്ടിരിക്കുന്നു, ഉദാഹരണത്തിന്, ഒരു വിൻഡോ, എല്ലാ X ക്ലയന്റുകൾക്കും ലഭ്യമാണ്. ഓരോ പ്രോപ്പർട്ടിക്കും ഒരു പേരും അതുല്യ ഐഡന്റിഫയറും ഉണ്ട് - ഒരു ആറ്റം. സാധാരണഗതിയിൽ, വസ്തുവിന്റെ പേരുകൾ എഴുതിയിരിക്കുന്നു വലിയ അക്ഷരങ്ങളിൽ. ക്ലയന്റുകൾക്കും X സെർവറിനുമിടയിൽ അയയ്‌ക്കുന്ന വിവരങ്ങളുടെ അളവ് കുറയ്ക്കുന്നതിന് പ്രോപ്പർട്ടികളുടെ ഉള്ളടക്കങ്ങൾ ആക്‌സസ് ചെയ്യാൻ ആറ്റങ്ങൾ ഉപയോഗിക്കുന്നു.

ഒരു പ്രോപ്പർട്ടി നെയിം ഒരു അദ്വിതീയ ആറ്റത്തിലേക്ക് വിവർത്തനം ചെയ്യാൻ നിങ്ങളെ അനുവദിക്കുന്ന നിരവധി നടപടിക്രമങ്ങൾ X നൽകുന്നു, കൂടാതെ, ഒരു ആറ്റത്തിന് ആവശ്യമായ ഡാറ്റ നേടാനും.

ചില ഗുണങ്ങളും അവയുടെ അനുബന്ധ ആറ്റങ്ങളും മുൻകൂട്ടി നിർവചിക്കപ്പെട്ടവയാണ്, അവ സെർവർ ആരംഭിക്കുന്ന സമയത്ത് സൃഷ്ടിക്കപ്പെടുന്നു.

ലൈബ്രറി ഉപയോഗിച്ചുള്ള പ്രോഗ്രാമിംഗ്X ടൂൾകിറ്റ് ഇൻട്രിൻസിക് (Xt)

എക്സ് വിൻഡോ സിസ്റ്റത്തിൽ പ്രോഗ്രാമിംഗ് എളുപ്പമാക്കുന്നതിന്, നിരവധി പാക്കേജുകൾ സൃഷ്ടിച്ചു. സിസ്റ്റത്തിന്റെ സ്റ്റാൻഡേർഡ് ഡെലിവറിയിൽ ഉൾപ്പെടുത്തിയിട്ടുള്ള എക്‌സ് ടൂൾകിറ്റ് ഇൻട്രിൻസിക്‌സ് (എക്‌സ്ടി) ലൈബ്രറിയാണ് നിലവിൽ ഡിഫാക്ടോ സ്റ്റാൻഡേർഡ്. Xt പ്രോഗ്രാമുകൾ ആരംഭിക്കുന്നതും വിൻഡോകൾ സൃഷ്ടിക്കുന്നതും എളുപ്പമാക്കുന്നു. കൂടാതെ, ഉപയോക്താക്കളുമായി ആശയവിനിമയം നടത്തുമ്പോൾ പ്രോഗ്രാമുകൾ ഉപയോഗിക്കുന്ന ഒബ്ജക്റ്റുകൾ (നിയന്ത്രണ ഘടകങ്ങൾ) സൃഷ്ടിക്കുന്നതിനുള്ള ഉപകരണങ്ങൾ ലൈബ്രറിയിൽ അടങ്ങിയിരിക്കുന്നു. Xt പദങ്ങളിൽ, നിയന്ത്രണ ഘടകത്തെ വിജറ്റ് എന്ന് വിളിക്കുന്നു.

IN നിലവിൽപാക്കേജിനെ അടിസ്ഥാനമാക്കി, വിവിധ സെറ്റ് നിയന്ത്രണ ഘടകങ്ങൾ (വസ്തുക്കൾ) നടപ്പിലാക്കുന്നു, ഉദാഹരണത്തിന്, അഥീന, ഒഎസ്എഫ് / മോട്ടിഫ്, ഓപ്പൺ ലുക്ക്. ഈ കിറ്റുകൾ, Xt എന്നതിനൊപ്പം തന്നെ ഉപയോഗിക്കുന്നു സൗകര്യപ്രദമായ ഉപകരണംഇന്റർഫേസുകൾ സൃഷ്ടിക്കാൻ. X Window കോർ ലൈബ്രറി ദിനചര്യകൾ മാത്രം ഉപയോഗിച്ച് സ്വന്തം ആപ്ലിക്കേഷൻ എഴുതുകയാണെങ്കിൽ ഒരു പ്രോഗ്രാമർ സ്വമേധയാ ചെയ്യേണ്ട മടുപ്പിക്കുന്ന ജോലി അവർ ശ്രദ്ധിക്കുന്നു.

Xt അടിസ്ഥാനങ്ങൾ

പ്രോഗ്രാമിംഗ് ഉപയോക്തൃ ഗ്രാഫിക്കൽ ഇന്റർഫേസ്

Xt വസ്തുക്കൾ

നിയന്ത്രണ ഘടകങ്ങൾ സൃഷ്ടിക്കുന്നതിനുള്ള ഒരു അടിത്തറയാണ് Xt പാക്കേജ് - വിജറ്റുകൾ (ശൂന്യമായത്). Xt അർത്ഥത്തിൽ, ഒരു വിജറ്റ് എന്നത് കേവലം ഒരു ഡാറ്റാ ഘടനയാണ്, അതിന്റെ ഫീൽഡുകളിൽ എലമെന്റിന്റെ ഐഡി, അതിന്റെ വിൻഡോയുടെ ഐഡി, എന്തെങ്കിലും ഉണ്ടെങ്കിൽ, കൂടാതെ അതിലേറെയും ഉൾപ്പെടുന്നു. അത്തരം ഒരു വസ്തുവിന്റെ ആട്രിബ്യൂട്ടുകളെ വിഭവങ്ങൾ എന്ന് വിളിക്കുന്നു. വിജറ്റ് ഉറവിടങ്ങൾ, ഉദാഹരണത്തിന്, അതിന്റെ വിൻഡോയുടെ നിറം, വിൻഡോ ബോർഡറിന്റെ നിറം, പ്രദർശിപ്പിച്ച വാചകത്തിന്റെ ഫോണ്ട് മുതലായവ ആകാം.

ഓരോ ഒബ്ജക്‌റ്റും മുൻകൂട്ടി നിശ്ചയിച്ചിട്ടുള്ള ക്ലാസുകളിൽ ഒന്നിൽ (വിജറ്റ് ക്ലാസ്) പെടുന്നു. ഒബ്ജക്റ്റ്-ഓറിയന്റഡ് പ്രോഗ്രാമിംഗിന്റെ സാധാരണ അർത്ഥത്തിലാണ് ഒരു ക്ലാസ് മനസ്സിലാക്കുന്നത്, അതായത്: ഒരു ക്ലാസിനെ സമാന സ്വഭാവസവിശേഷതകളുള്ള ഒരു കൂട്ടം ഉദാഹരണങ്ങളായി (വസ്തുക്കൾ) കണക്കാക്കാം. Xt ക്ലാസുകൾ ഒരു ശ്രേണി രൂപീകരിക്കുന്നു.

ഓപ്പറേഷൻ സമയത്ത്, പ്രോഗ്രാം ഒബ്ജക്റ്റുകൾ സ്വയം സൃഷ്ടിക്കുന്നു (ക്ലാസുകളുടെ ഉദാഹരണങ്ങൾ - വിജറ്റ്). അവ അഗ്രഗേറ്റുകൾ ഉണ്ടാക്കുന്നു, അവ ഓരോന്നും ഒരു നിശ്ചിത ശ്രേണിയെ പ്രതിനിധീകരിക്കുന്നു. അത്തരം ഓരോ ശ്രേണിയെയും ഒബ്ജക്റ്റ് ട്രീ (വിജറ്റ് ട്രീ) എന്ന് വിളിക്കുന്നു. മരത്തിന്റെ റൂട്ട് നിർബന്ധമായും ഒരു വിജറ്റ് ആണ്, അത് പ്രത്യേക ക്ലാസിലെ ഉപവിഭാഗങ്ങളിലൊന്നാണ് - ഷെൽ. ഒബ്‌ജക്‌റ്റുകളുടെ ഒരു വൃക്ഷത്തിന്റെ A, B എന്നീ രണ്ട് വിജറ്റുകളിൽ, ആദ്യത്തേത് രണ്ടാമത്തേതിനേക്കാൾ റൂട്ടിനോട് അടുത്താണെങ്കിൽ, A ആണ് B യുടെ മാതൃവസ്തു ("രക്ഷാകർതൃ"), കൂടാതെ B എന്നത് ഉപവസ്തു (അല്ലെങ്കിൽ "കുട്ടി" വസ്തു (അല്ലെങ്കിൽ "കുട്ടി") ആണ്. കുട്ടി) A. അങ്ങനെ, ഒബ്‌ജക്‌റ്റുകളുടെ ട്രീയിലെ മറ്റെല്ലാ വിജറ്റുകളുടെയും പാരന്റ് വിജറ്റാണ് ഷെൽ ഒബ്‌ജക്റ്റ്. പ്രോഗ്രാമും വിൻഡോ മാനേജറും തമ്മിൽ സംവദിക്കുന്നത് അവനാണ്.

വിജറ്റുകളുടെ വിവരിച്ച ശ്രേണി അവരുടെ വിൻഡോകളുടെ ബന്ധവുമായി പൊരുത്തപ്പെടുന്നു, ഇത് എക്സ് വിൻഡോയുടെ ഒരു സ്വത്താണ്. കൂടാതെ, വസ്തുക്കളിൽ മറ്റൊരു ശ്രേണി ചുമത്തപ്പെടുന്നു. പ്രവർത്തന സമയത്ത്, ചില വസ്തുക്കൾക്ക് മറ്റുള്ളവരെ നിയന്ത്രിക്കാൻ കഴിയും എന്നതാണ് വസ്തുത. ഉദാഹരണത്തിന്, ഒരു വസ്തുവിന് ഉപവസ്തുക്കൾ ഉണ്ടെങ്കിൽ, ജ്യാമിതി മാറുമ്പോൾ, അതിന് അതിന്റെ പിൻഗാമികളുടെ ജ്യാമിതികൾ യാന്ത്രികമായി പുനർനിർമ്മിക്കാൻ കഴിയും. ഇത് സംഭവിക്കുന്നതിന്, വിജറ്റുകൾക്കിടയിൽ ഒരു കണക്ഷൻ സ്ഥാപിച്ചു - ഒരു "നിയന്ത്രണ" കണക്ഷൻ. ഓരോ ഒബ്‌ജക്‌റ്റിനും ഒന്നോ അതിലധികമോ ഉപവിഷയങ്ങൾ "നിയന്ത്രിക്കുന്നത്" ഉണ്ടായിരിക്കും.

Xt ഉം വിജറ്റും X ജാലകവും ഉപയോഗിച്ചുള്ള ഒരു പ്രോഗ്രാമുകൾ തമ്മിലുള്ള പ്രതിപ്രവർത്തനത്തിന് മൂന്ന് സംവിധാനങ്ങളുണ്ട്.

*തിരിച്ചുവിളിക്കുക

നടപടിക്രമങ്ങൾ ("കോൾബാക്ക് നടപടിക്രമങ്ങൾ"). ഏതൊരു ക്ലാസിനും, ഒരു കൂട്ടം പ്രവർത്തനങ്ങൾ നിർവ്വചിച്ചിരിക്കുന്നു, അതിൽ ഉൾപ്പെടുന്ന വസ്തുക്കൾ പ്രതികരിക്കണം. ഉദാഹരണത്തിന്, ഒരു വിജറ്റിന്റെ നാശത്തിന് ഏത് ക്ലാസിനും ഒരു പ്രതികരണമുണ്ട്. ഒരു പ്രവർത്തനം നടത്തുമ്പോൾ, ഒന്നിലേക്ക് ഒരു കോൾ ചെയ്യുന്നു സ്റ്റാൻഡേർഡ് ഫംഗ്ഷൻ Xt, അല്ലെങ്കിൽ പ്രോഗ്രാം നൽകുന്ന ഒന്നോ അതിലധികമോ നടപടിക്രമങ്ങൾ. അത്തരം പ്രവർത്തനങ്ങളെ കോൾബാക്ക് നടപടിക്രമങ്ങൾ അല്ലെങ്കിൽ കോൾബാക്ക് എന്ന് വിളിക്കുന്നു.

* പ്രവർത്തനം

- നടപടിക്രമങ്ങൾ. Xt-ൽ നിന്ന് വരുന്ന ഒരു പ്രത്യേക സങ്കീർണ്ണ ഇവന്റിനോട് (ഇവന്റുകളുടെ ഗ്രൂപ്പ്) പ്രതികരണം പ്രോഗ്രാമിന് ഓർഡർ ചെയ്യാൻ കഴിയും. ഒരു ഇവന്റ് സംഭവിക്കുകയാണെങ്കിൽ, Xt ഉചിതമായ ഫംഗ്‌ഷൻ തിരയുകയും വിളിക്കുകയും ചെയ്യുന്നു.

* ഇവന്റ് കൈകാര്യം ചെയ്യുന്നവർ

- ഇവന്റ് കൈകാര്യം ചെയ്യുന്നവർ. ഈ രീതി മുമ്പത്തേതിന് സമാനമാണ്, എന്നാൽ വേഗതയേറിയതും വഴക്കമില്ലാത്തതുമാണ്. ലളിതമായ (ഒറ്റ) ഇവന്റുകളോട് മാത്രം പ്രതികരിക്കാൻ ഇത് നിങ്ങളെ അനുവദിക്കുന്നു, എന്നാൽ അവയുടെ സീക്വൻസുകളോട് അല്ല.

പൊതു പ്രോഗ്രാമിംഗ് സ്കീം

X-ൽ പ്രവർത്തിക്കുന്ന പ്രോഗ്രാമുകൾ സെർവറിലേക്ക് ഒരു കണക്ഷൻ സ്ഥാപിക്കുക, വിൻഡോ മാനേജറിന് ആവശ്യമായ പ്രോപ്പർട്ടികൾ സജ്ജീകരിക്കുക, മറ്റ് നിരവധി ഘട്ടങ്ങൾ എന്നിങ്ങനെ നിരവധി സ്റ്റാൻഡേർഡ് ഘട്ടങ്ങൾ ചെയ്യണം. Xt ഉപയോഗിക്കുകയാണെങ്കിൽ, ഇതെല്ലാം ഒരു നടപടിക്രമം ഉപയോഗിച്ചാണ് ചെയ്യുന്നത് - XtInitialize(). ഇത് പാക്കേജ് തന്നെ, റിസോഴ്സ് മാനേജർ (\ടേം റിസോഴ്സ് മാനേജർ) X വിൻഡോ ആരംഭിക്കുകയും ആവശ്യമായ മറ്റ് പ്രവർത്തനങ്ങൾ നടത്തുകയും ചെയ്യുന്നു. XtInitialize() (അല്ലെങ്കിൽ XtAppInitialize()) എന്നതിലേക്കുള്ള ഒരു കോൾ Xt നടപടിക്രമങ്ങളിലേക്കുള്ള മറ്റെല്ലാ കോളുകൾക്കും മുമ്പായിരിക്കണം. XtInitialize() നൽകുന്നു ഷെൽ-വിജറ്റ് ഐഡന്റിഫയർ , ഇത് പ്രോഗ്രാം ഒബ്‌ജക്റ്റ് ട്രീയുടെ റൂട്ടായി ഉപയോഗിക്കാം.സാധാരണയായി, പ്രോഗ്രാം ക്ലാസിന്റെ പേര് പ്രോഗ്രാമിന്റെ പേരിന് തുല്യമാണ്, അത് ആരംഭിക്കുന്നത് വലിയ അക്ഷരം. റിസോഴ്സ് മാനേജർ പ്രോഗ്രാമിന്റെ പേരും ക്ലാസും ഉപയോഗിച്ച് റിസോഴ്സ് ഡാറ്റാബേസിൽ അതിന്റെ പാരാമീറ്ററുകൾ നോക്കുന്നു.

ഓരോ പ്രോഗ്രാമിനും കമാൻഡ് ലൈനിൽ ചില പാരാമീറ്ററുകൾ സജ്ജമാക്കാൻ കഴിയും. ഒരു പ്രോഗ്രാം പ്രവർത്തിപ്പിക്കുമ്പോൾ കൈമാറാൻ കഴിയുന്ന "സ്റ്റാൻഡേർഡ്" പാരാമീറ്ററുകൾ Xt നിർവചിക്കുന്നു. കൂടാതെ, കമാൻഡ് ലൈനിൽ ഈ ആപ്ലിക്കേഷന് മാത്രമുള്ള നിലവാരമില്ലാത്ത പാരാമീറ്ററുകൾ അടങ്ങിയിരിക്കാം. XtInitialize() സ്കാനുകൾ കമാൻഡ് ലൈൻഡാറ്റാബേസിൽ അനുബന്ധ ഡാറ്റ മൂല്യങ്ങൾ സ്ഥാപിക്കുകയും ചെയ്യുന്നു.

പ്രാരംഭ സമയത്ത്, ഒരു പ്രോഗ്രാം സന്ദർഭവും സൃഷ്ടിക്കപ്പെടുന്നു - ആപ്ലിക്കേഷനെക്കുറിച്ചുള്ള എല്ലാ വിവരങ്ങളും സംഭരിക്കുന്ന ഒരു ഘടന. ഓപ്പറേറ്റിംഗ് സിസ്റ്റത്തിലെ വിവിധ പരിഷ്കാരങ്ങളുടെ സ്വാധീനത്തിൽ നിന്ന് പ്രോഗ്രാമിനെ സംരക്ഷിക്കാൻ ഉദ്ദേശിച്ചുള്ളതാണ് സന്ദർഭം. XtInitialize() ചില സ്റ്റാൻഡേർഡ് സന്ദർഭം (സ്ഥിരസ്ഥിതി സന്ദർഭം) സൃഷ്ടിക്കുന്നു, എന്നിരുന്നാലും, X ന്റെ നാലാമത്തെ പതിപ്പ് മുതൽ, പ്രോഗ്രാമിന്റെ ഓരോ വ്യക്തിഗത സന്ദർഭത്തിനും ഒരു പ്രത്യേക "വ്യക്തിഗത" സന്ദർഭം സൃഷ്ടിക്കാൻ ശുപാർശ ചെയ്യുന്നു, ഇതിനായി Xt ന്റെ അടിസ്ഥാനത്തിൽ , നിങ്ങൾ XtAppInitialize() നടപടിക്രമത്തിലേക്ക് ഒരു കോൾ ഉപയോഗിക്കണം ( XtInitialize() എന്നതിന് പകരം). Xt-ലെ ഒരു ആപ്ലിക്കേഷന് പതിവുപോലെ ഒന്നല്ല, നിരവധി "ഉയർന്ന നിലയിലുള്ള" ഒബ്‌ജക്റ്റുകൾ ഉണ്ടാകാമെന്നത് ഇവിടെ ശ്രദ്ധിക്കുക.

സമാരംഭത്തിനു ശേഷമുള്ള അടുത്ത ഘട്ടം പ്രോഗ്രാം നിയന്ത്രണ ഘടകങ്ങൾ സൃഷ്ടിക്കുന്ന ഘട്ടമാണ്, അവ തമ്മിലുള്ള ബന്ധങ്ങൾ വിവരിക്കുക, വിവിധ ഇവന്റുകളിലേക്കുള്ള പ്രതികരണങ്ങൾ ക്രമീകരിക്കുക (ഇവന്റ് ഹാൻഡ്‌ലറുകളും മറ്റ് സമാന വസ്തുക്കളും രജിസ്റ്റർ ചെയ്യുന്നു). ഇത് ചെയ്യാൻ കഴിയും വ്യത്യസ്ത വഴികൾ, പരമ്പരാഗത ഉപയോഗം, ഉദാഹരണത്തിന്, XtCreateWidget() നടപടിക്രമത്തിന്റെ ഒരു ഒബ്ജക്റ്റ് സൃഷ്ടിക്കുക, ഒരു വസ്തുവിന്റെ നിയന്ത്രണം അതിന്റെ രക്ഷിതാവിന് കൈമാറുക - XtManageChild() നടപടിക്രമം, വിജറ്റിനായി ഇവന്റ് ഹാൻഡ്‌ലറുകൾ രജിസ്റ്റർ ചെയ്യുക - XtAddEventHandler() നടപടിക്രമം മുതലായവ. . ഇത്യാദി.

എല്ലാ പ്രോഗ്രാം ഒബ്ജക്റ്റുകളും വർക്കിനായി തയ്യാറാക്കിയ ശേഷം, അവയുടെ ഗ്രാഫിക്കൽ പ്രാതിനിധ്യങ്ങൾ (ഉദാഹരണത്തിന്, ഈ വിജറ്റുകൾക്ക് അനുയോജ്യമായ വിൻഡോകൾ) XtRealizeWidget() നടപടിക്രമം സ്ക്രീനിൽ കാണിക്കുന്നു.

അടുത്ത ഘട്ടം പ്രധാന ചക്രമാണ് - ഇവന്റുകൾ സ്വീകരിക്കുന്നതിനും അയയ്ക്കുന്നതിനുമുള്ള ചക്രം. XtMainLoop() നടപടിക്രമം (XtAppMainLoop()) വിളിച്ചാണ് ഇത് നടപ്പിലാക്കുന്നത്.

കോർ എക്‌സ് ലൈബ്രറി (എക്‌സ്‌ലിബ്) നടപടിക്രമങ്ങൾ മാത്രം ഉപയോഗിക്കുന്ന ഒരു പ്രോഗ്രാം ഓരോ ഇൻകമിംഗ് ഇവന്റും (എക്‌സ്‌നെക്സ്റ്റ് ഇവന്റ്() അല്ലെങ്കിൽ എക്‌സ്‌പീക്ക് ഇവന്റ്() പോലുള്ള വ്യക്തമായ കോൾ ഉപയോഗിച്ച് ഇവന്റ് ക്യൂവിൽ നിന്ന് സ്വീകരിക്കുകയും അതിനനുസരിച്ച് പ്രതികരിക്കുകയും വേണം. ഒരു ടാസ്‌ക്കിന് നിരവധി വിൻഡോകൾ ഉണ്ടെങ്കിൽ, എന്തെങ്കിലും പ്രവർത്തനങ്ങൾ നടത്തുന്നതിന് മുമ്പ്, ഏത് വിൻഡോയിലാണ് ഇവന്റ് സംഭവിച്ചതെന്ന് നിർണ്ണയിക്കേണ്ടത് ആവശ്യമാണ്, ഏത് ശ്രേണിയുടെ തലത്തിലാണ് ഈ ഇവന്റ് പ്രോസസ്സ് ചെയ്യുന്നത് (ഈ ഇവന്റ് പ്രോസസ്സ് ചെയ്യുമോ എന്ന്. ഈ വസ്തുഅല്ലെങ്കിൽ അവന്റെ രക്ഷിതാവോ?). ഇതെല്ലാം തികച്ചും വിരസമാണ്.

എല്ലാ പതിവ് ജോലികളും Xt ശ്രദ്ധിക്കുന്നു. XtMainLoop() അടുത്ത ഇവന്റ് സ്വീകരിക്കുകയും അത് ഉദ്ദേശിക്കുന്ന വിൻഡോ നിർണ്ണയിക്കുകയും ചെയ്യുന്നു. വിൻഡോയിൽ അനുബന്ധമായ ഒരു വിജറ്റ് ഉണ്ട്. രണ്ടാമത്തേതിന്, ഒരു ഇവന്റ് ഹാൻഡ്‌ലർ, പ്രവർത്തന നടപടിക്രമം അല്ലെങ്കിൽ കോൾബാക്ക് നിർവചിച്ചിരിക്കുന്നു, സംഭവിച്ച ഇവന്റിനോട് പ്രതികരിക്കാൻ രജിസ്റ്റർ ചെയ്തിട്ടുണ്ട്. ഏതെങ്കിലും നെറ്റ്‌വർക്ക് ഉണ്ടെങ്കിൽ അവരെ വിളിക്കും. മുകളിൽ വിവരിച്ച മെക്കാനിസത്തെ ഇവന്റ് ബ്രോഡ്കാസ്റ്റിംഗ് എന്ന് വിളിക്കുന്നു.

വിൻഡോ മാനേജർ ആവശ്യപ്പെടുമ്പോൾ XtMainLoop() (XtAppMainLoop()) യാന്ത്രികമായി പ്രോഗ്രാം അവസാനിപ്പിക്കുന്നു.

Xt വസ്തുക്കൾ, അവയുടെ വർഗ്ഗീകരണം

ഉപയോക്താവുമായും പൊതുവെ പുറം ലോകവുമായും ആശയവിനിമയം നടത്താൻ പ്രോഗ്രാമുകൾ ഉപയോഗിക്കുന്ന ഒബ്‌ജക്റ്റുകൾ സൃഷ്‌ടിക്കുന്നതിനുള്ള ഒരു കൂട്ടം ഉപകരണങ്ങൾ Xt നൽകുന്നു.

പ്രോഗ്രാം സൃഷ്ടിച്ച ഓരോ വിജറ്റും ഒരു ക്ലാസിന്റെ അല്ലെങ്കിൽ മറ്റൊന്നിന്റെ പ്രതിനിധിയാണ്. Xt, അതിനെ അടിസ്ഥാനമാക്കിയുള്ള OSF/Motif, Athena, Tk/tcl, ഓപ്പൺ ലുക്ക് മുതലായവ. ഒരു വലിയ സംഖ്യഅത്തരം ക്ലാസുകൾ. സ്റ്റാൻഡേർഡ് ലൈബ്രറികളിൽ നൽകാത്ത പുതിയ വിജറ്റുകൾ സൃഷ്‌ടിക്കുന്നതിന് അനുബന്ധ ക്ലാസ് സൃഷ്‌ടിക്കേണ്ടതുണ്ട് (നിർവചിക്കുക), ഇത് സാധാരണയായി സമയമെടുക്കുന്ന ജോലിയാണ്.

ഓരോ ക്ലാസിനും അതിന്റെ എല്ലാ സന്ദർഭങ്ങൾക്കും പൊതുവായ നിരവധി നിശ്ചിത സ്വഭാവസവിശേഷതകൾ ഉണ്ട് (ഉദാഹരണത്തിന്, കോൾബാക്ക് നടപടിക്രമങ്ങളുടെ ഒരു ലിസ്റ്റ്). ഈ സ്വഭാവസവിശേഷതകളുടെ മൂല്യങ്ങൾ വസ്തുക്കൾക്കിടയിൽ തന്നെ വ്യത്യാസപ്പെടാം.

എല്ലാ Xt ക്ലാസുകളും ഒരു ശ്രേണി രൂപീകരിക്കുന്നു. ക്ലാസ് ബി ശ്രേണിയുടെ മുകളിലേക്ക് ക്ലാസ് ഡിയെക്കാൾ അടുത്താണെങ്കിൽ, ബിയെ ഡിയുടെ അടിസ്ഥാന ക്ലാസ് എന്നും ഡിയെ ബിയുടെ ഡിറൈവ്ഡ് ക്ലാസ് (അല്ലെങ്കിൽ സബ്ക്ലാസ്) എന്നും വിളിക്കുന്നു.

ഉപവിഭാഗങ്ങൾ അവരുടെ എല്ലാ അടിസ്ഥാന ക്ലാസുകളുടെയും സ്വഭാവസവിശേഷതകൾ അവകാശമാക്കുന്നു. ഇതിനർത്ഥം ഒരു ക്ലാസിന്റെ ഒരു ഉദാഹരണത്തിന് അതിന്റെ ക്ലാസിന്റെ മാത്രമല്ല, എല്ലാ അടിസ്ഥാന ക്ലാസുകളുടെയും ആട്രിബ്യൂട്ടുകളും ഉണ്ട്.

പ്രോഗ്രാമുകളിൽ, ഓരോ ക്ലാസും ബന്ധപ്പെട്ട ഡാറ്റാ ഘടനയെ ചൂണ്ടിക്കാണിക്കുന്ന ഒരു വേരിയബിൾ ഉപയോഗിച്ച് തിരിച്ചറിയുന്നു. ഈ വേരിയബിളിനെ ക്ലാസിലേക്കുള്ള പോയിന്റർ എന്ന് വിളിക്കുന്നു. Xt ആരംഭിക്കുമ്പോൾ ഈ ഘടനയിലെ ഡാറ്റ പോപ്പുലേറ്റ് ചെയ്യപ്പെടുന്നു.

പ്രധാന വിജറ്റ് ക്ലാസുകൾ:

വസ്തു. എല്ലാ വസ്തുക്കളുടെയും ഒരു വൃക്ഷത്തിന്റെ വേരായി ഉപയോഗിക്കുന്ന ഒരു അമൂർത്ത ക്ലാസ് (സ്വന്തം ഒബ്ജക്റ്റ് സൃഷ്ടിക്കാത്ത ഒരു ക്ലാസ്). ഇതിൽ ഒരൊറ്റ ഉപവിഭാഗം അടങ്ങിയിരിക്കുന്നു:

RectObj. വ്യത്യസ്ത തരം ഒബ്‌ജക്‌റ്റുകളുടെ പ്രവർത്തനത്തിന് ആവശ്യമായ ചില പൊതു സവിശേഷതകൾ നിർവചിക്കാൻ ഉപയോഗിക്കുന്ന ഒരു അമൂർത്ത ക്ലാസ് (ഉദാഹരണത്തിന്, ഒരു വിൻഡോ ഇല്ലാത്ത ഒബ്‌ജക്റ്റുകൾക്ക്). ഇതിൽ ഒരു ഉപവിഭാഗം അടങ്ങിയിരിക്കുന്നു:

കോർ. ജാലകങ്ങളുള്ള വിജറ്റ് ക്ലാസുകളുടെ മരത്തിന്റെ റൂട്ട്. വിജറ്റിന്റെ വലുപ്പം, സ്‌ക്രീനിലെ സ്ഥാനം എന്നിവ പോലെ എല്ലാ ഒബ്‌ജക്‌റ്റുകൾക്കും പൊതുവായുള്ള സവിശേഷതകൾ ഈ ക്ലാസ് നിർവ്വചിക്കുന്നു. ഉപവിഭാഗം അടങ്ങിയിരിക്കുന്നു:

സംയുക്തം. ഈ ക്ലാസിൽ പെടുന്ന വിജറ്റുകൾക്ക് മറ്റ് ഒബ്‌ജക്‌റ്റുകളുടെ മാതാപിതാക്കളാകാം. കോമ്പോസിറ്റ് ക്ലാസിന്റെ ഉദാഹരണങ്ങൾ അവയുടെ ഉപവിഷയങ്ങൾക്കായി ഇനിപ്പറയുന്ന സ്വഭാവം നിർവചിക്കുന്നു:

* ചില നിയന്ത്രണങ്ങൾ അനുസരിച്ച് "കുട്ടി" വിജറ്റുകളുടെ സ്ഥാനം സജ്ജമാക്കുന്നു;

* നശിപ്പിക്കപ്പെടുമ്പോൾ, ഉപവസ്തുക്കൾ ഉപയോഗിക്കുന്ന മെമ്മറി സ്വതന്ത്രമാക്കുന്നു (കോമ്പോസിറ്റ് ക്ലാസിന്റെ ഒരു വിജറ്റ് നശിപ്പിക്കുമ്പോൾ, അതിന്റെ എല്ലാ "സന്തതികളും" ആദ്യം നശിപ്പിക്കപ്പെടും);

* സ്ക്രീനിൽ അതിന്റെ ചൈൽഡ് വിജറ്റുകളുടെ വിൻഡോകളുടെ രൂപം നിയന്ത്രിക്കുന്നു;

* വസ്തുക്കൾ തമ്മിലുള്ള ഇൻപുട്ട് ഫോക്കസിന്റെ കൈമാറ്റം നിയന്ത്രിക്കുന്നു.

കോമ്പോസിറ്റ് ക്ലാസിൽ ഉപവിഭാഗങ്ങൾ അടങ്ങിയിരിക്കുന്നു:

പരിമിതി. ഈ ക്ലാസ് അടിസ്ഥാന ക്ലാസിന്റെ കൂടുതൽ വിപുലീകരണമാണ്. അവരുടെ പിൻഗാമികളുടെ വലുപ്പവും സ്ഥാനവും നിയന്ത്രിക്കാനുള്ള അധിക കഴിവുകൾ അതിന്റെ സംഭവങ്ങൾക്ക് ഉണ്ട്. ഉദാഹരണത്തിന്, ഉപവിഷയങ്ങൾ ഒരു പ്രത്യേക ക്രമത്തിൽ സ്ഥാപിക്കാവുന്നതാണ്: ഒരു നിരയിൽ, ഒരു നിരയിൽ, മുതലായവ.

ഷെൽ. വിൻഡോ മാനേജറുമായി സംവദിക്കാൻ രൂപകൽപ്പന ചെയ്ത ഒരു പ്രത്യേക ക്ലാസാണിത്. ഈ ക്ലാസിൽ നിന്നുള്ള വിജറ്റിന് ഒരു കുട്ടി മാത്രമേ ഉണ്ടാകൂ. ഷെൽ ക്ലാസിൽ ഉപവിഭാഗങ്ങൾ അടങ്ങിയിരിക്കുന്നു:

ഓവർറൈഡ്ഷെൽ. ഷെൽ ക്ലാസിലെ ഒരു പ്രധാന ഉപവിഭാഗമാണിത്. ഈ ക്ലാസിലെ ഒരു വിജറ്റ് വിൻഡോയ്ക്ക്, override_redirect ആട്രിബ്യൂട്ട് True ആയി സജ്ജീകരിച്ചിരിക്കുന്നു, അതായത്. വിൻഡോ മാനേജർ അത് നിയന്ത്രിക്കുന്നില്ല. ചട്ടം പോലെ, ഈ ക്ലാസിലെ ഒബ്‌ജക്റ്റുകളുടെ വിൻഡോകൾക്ക് വിൻഡോ മാനേജർ (ശീർഷകം, ഫ്രെയിം, സ്റ്റാൻഡേർഡ് ബട്ടണുകൾ) ചേർത്ത ആക്‌സസറികൾ ഇല്ല, മാത്രമല്ല വിവിധ തരത്തിലുള്ള മെനുകൾ സൃഷ്ടിക്കാൻ പ്രധാനമായും ഉപയോഗിക്കുന്നു.

WMShel. വിൻഡോ മാനേജറുമായി സംവദിക്കാൻ ആവശ്യമായ അധിക ഫീൽഡുകൾ അടങ്ങുന്ന ഷെൽ ക്ലാസിന്റെ ഒരു പ്രത്യേക ഉപവിഭാഗമാണിത്. അടങ്ങിയിരിക്കുന്നു:

വെണ്ടർഷെൽ. പ്രത്യേക വിൻഡോ മാനേജർമാരുമായി സംവദിക്കാനുള്ള കഴിവ് പ്രദാനം ചെയ്യുന്നതാണ് ഈ ക്ലാസ്. ഈ ക്ലാസിൽ ഉപവിഭാഗങ്ങൾ അടങ്ങിയിരിക്കുന്നു:

ടോപ്പ് ലെവൽ ഷെൽ. ഈ ക്ലാസിലെ വിജറ്റുകൾ സാധാരണയായി പ്രോഗ്രാം ഒബ്ജക്റ്റ് ട്രീയുടെ ഷെൽ ഒബ്ജക്റ്റുകളായി ഉപയോഗിക്കുന്നു. അവൻ ഉൾക്കൊള്ളുന്നു:

ആപ്ലിക്കേഷൻഷെൽ. ഒരു പ്രോഗ്രാമിന് സാധാരണയായി ApplicationShell ക്ലാസിൽ പെട്ട ഒരു ഉദാഹരണം മാത്രമേ ഉണ്ടാകൂ.

ട്രാൻസിന്റ്ഷെൽ. വിൻഡോ മാനേജറുമായുള്ള ഇടപെടലിന്റെ സവിശേഷതകളിൽ മാത്രം ഈ ക്ലാസ് മുമ്പത്തേതിൽ നിന്ന് വ്യത്യസ്തമാണ്. ഈ ക്ലാസിന്റെ വിജറ്റ് വിൻഡോകൾ ചെറുതാക്കാൻ കഴിയില്ല (ഒരു ഐക്കണാക്കി മാറ്റുന്നു). എന്നാൽ ഒരു TransientShell ക്ലാസ് ഒബ്‌ജക്റ്റിന്റെ പാരന്റ് ഒരു ഐക്കണായി മാറിയാൽ, സ്‌ക്രീനിൽ നിന്ന് വിജറ്റ് വിൻഡോ നീക്കം ചെയ്യപ്പെടും. ഡയലോഗുകൾ സൃഷ്ടിക്കാൻ TransientShell ക്ലാസ് ഉപയോഗിക്കുന്നു.

ഓരോ വിജറ്റ് ക്ലാസുകൾക്കും, അതിനാൽ അതിന്റെ അടിസ്ഥാനത്തിൽ സൃഷ്ടിച്ച ഒബ്‌ജക്റ്റുകൾക്കും വളരെ വലിയ പാരാമീറ്ററുകൾ ഉണ്ട്. Xt പദങ്ങളിൽ ഇവയെ "വിഭവങ്ങൾ" എന്ന് വിളിക്കുന്നു. അവരുമായി പ്രവർത്തിക്കാൻ Xt വിപുലമായ ടൂളുകൾ നൽകുന്നു.

അധിക Xt സവിശേഷതകൾ

അസിൻക്രണസ് മോഡിൽ ഫയലുകൾ (സാധാരണ ബാഹ്യ ഉപകരണങ്ങൾ) ഉപയോഗിച്ച് പ്രവർത്തിക്കുന്നതിനുള്ള ഒരു സംവിധാനം Xt നൽകുന്നു. ഒരു ആപ്ലിക്കേഷന് ഒരു നടപടിക്രമം രജിസ്റ്റർ ചെയ്യാൻ കഴിയും, അത് ഡാറ്റ തയ്യാറാകുമ്പോൾ അല്ലെങ്കിൽ വായിക്കുമ്പോൾ/എഴുതുമ്പോൾ പിശകുകൾ സംഭവിക്കുമ്പോൾ വിളിക്കപ്പെടും.

നിശ്ചിത ഇടവേളകളിൽ ചില പ്രവർത്തനങ്ങൾ ചെയ്യാനുള്ള കഴിവ് Xt ഒരു ആപ്ലിക്കേഷന് നൽകുന്നു. ഉദാഹരണത്തിന്, തന്നിരിക്കുന്ന വിൻഡോയിലെ സ്ക്രീനിൽ നിലവിലുള്ള സമയം ഇടയ്ക്കിടെ പ്രദർശിപ്പിക്കുക. അത്തരം ആവശ്യങ്ങൾക്കായി, ഒരു പ്രത്യേക Xt സംവിധാനം ഉപയോഗിക്കുന്നു - ഒരു ടൈമർ. പ്രോഗ്രാം വ്യക്തമാക്കിയ ഒരു പ്രത്യേക ഫംഗ്ഷനിലേക്ക് ഒരു നിശ്ചിത സമയ ഇടവേളയിൽ ഇത് ഒരു കോൾ നൽകുന്നു.

ഇവന്റ് ക്യൂ ശൂന്യമാകുമ്പോൾ ചില പ്രവർത്തനങ്ങൾ ചെയ്യാനുള്ള കഴിവ് Xt നൽകുന്നു. ഇവന്റ് ക്യൂ ശൂന്യമാണെങ്കിൽ Xt വിളിക്കുന്ന ഒരു പ്രത്യേക "വർക്ക്" നടപടിക്രമം രജിസ്റ്റർ ചെയ്തുകൊണ്ടാണ് ഇത് നടപ്പിലാക്കുന്നത്. വളരെ ചുരുങ്ങിയ സമയത്തിനുള്ളിൽ വിവിധ പ്രവർത്തനങ്ങളും കണക്കുകൂട്ടലുകളും നടത്താൻ ഇത്തരം പ്രവർത്തനങ്ങൾ സാധാരണയായി ഉപയോഗിക്കുന്നു.

ഓരോ ആപ്ലിക്കേഷനും, ആവശ്യമെങ്കിൽ, ഇവന്റുകൾ സ്വീകരിക്കുന്നതിനും വിതരണം ചെയ്യുന്നതിനുമുള്ള (പ്രോസസ്സിംഗ്) സാധാരണ സൈക്കിൾ പരിഷ്കരിക്കാനാകും - ഇവന്റ് ക്യൂവിൽ പ്രവർത്തിക്കുന്നതിനുള്ള നടപടിക്രമങ്ങളുടെ ഒരു മുഴുവൻ സെറ്റ് Xt നൽകുന്നു.

Xt-ന് ആക്‌സിലറേറ്ററുകൾ എന്ന് വിളിക്കുന്ന ഒരു മെക്കാനിസം ഉണ്ട്, ഇത് ഇവന്റിനെയും പ്രവർത്തനത്തെയും ആശ്രയിക്കാൻ നിങ്ങളെ അനുവദിക്കുന്നു. ഒരു വിജറ്റിൽ സംഭവിക്കുന്ന ഒരു ഇവന്റ് (അല്ലെങ്കിൽ ഇവന്റുകളുടെ കൂട്ടം) മറ്റൊരു ഒബ്‌ജക്റ്റിനായി ബന്ധപ്പെട്ട പ്രവർത്തന നടപടിക്രമത്തിലേക്ക് ഒരു കോൾ ആരംഭിക്കുന്ന വ്യത്യാസമുള്ള പ്രവർത്തന നടപടിക്രമങ്ങൾക്ക് സമാനമാണ് ആക്‌സിലറേറ്ററുകൾ.

വിജറ്റുകൾ ഉപയോഗിച്ച് പ്രവർത്തിക്കാനുള്ള നിരവധി മാർഗങ്ങൾ Xt പിന്തുണയ്ക്കുന്നു. അതിനാൽ, Xt നൽകുന്ന നടപടിക്രമങ്ങൾ ഉപയോഗിച്ച് പ്രോഗ്രാമിന് ഒരു വിൻഡോ കാണിക്കാനും അതിനായി ഒന്നോ അല്ലെങ്കിൽ മറ്റൊരു ഓപ്പറേറ്റിംഗ് മോഡ് സജ്ജമാക്കാനും അനാവശ്യമാകുമ്പോൾ വിൻഡോ അടയ്ക്കാനും കഴിയും. ഈ നടപടിക്രമങ്ങൾ പ്രധാനമായും പോപ്പ്-അപ്പ് മെനുകളും ഡയലോഗുകളും സൃഷ്ടിക്കാൻ ഉപയോഗിക്കുന്നു. ചട്ടം പോലെ, എല്ലാ വിജറ്റ് സെറ്റുകൾക്കും (ഉദാഹരണത്തിന്, OSF/Motif) മെനുകളും ഡയലോഗുകളും സൃഷ്ടിക്കുന്നതിന് അവരുടേതായ കൂടുതൽ സൗകര്യപ്രദമായ നടപടിക്രമങ്ങളുണ്ട്.

Xt Xt-ലേക്കുള്ള ആഡ്-ഓണുകൾ നിലവിൽ X കൺസോർഷ്യം ഉയർന്ന നിലവാരത്തിലുള്ളതാണ്, എന്നാൽ ഉയർന്ന നിലവാരത്തിലുള്ള മാനദണ്ഡങ്ങൾ ഒന്നുമില്ല. ജനപ്രിയമായത്:

*OSF/മോട്ടിഫ് ടൂൾകിറ്റ്;

* അഥീന വിജറ്റ് സെറ്റ്;

* ഓപ്പൺ ലുക്ക് ഇൻട്രിൻസിക് ടൂൾകിറ്റ്;

* അഭിമുഖങ്ങൾ;

* Tk/tcl.

ഏറ്റവും സാധാരണവും പ്രായോഗികവുമായ സ്റ്റാൻഡേർഡ് ഒരുപക്ഷേ OSF/Motif ആയി കണക്കാക്കണം.

അഥീന

എക്‌സിന്റെ സ്റ്റാൻഡേർഡ് ഡിസ്ട്രിബ്യൂഷന്റെ ഭാഗമായാണ് എക്‌സ് കൺസോർഷ്യം അഥീന വിഡ്‌ജെറ്റ് സെറ്റ് നൽകുന്നത്. എംഐടി അഥീന പ്രോജക്റ്റിന്റെ സമയത്ത് പ്രധാന ആപ്ലിക്കേഷനുകളുടെയും യൂട്ടിലിറ്റികളുടെയും പ്രവർത്തനത്തിന്റെ ഭാഗമായാണ് അഥീന സൃഷ്ടിക്കപ്പെട്ടത്, ഇത് എക്‌സ് വിൻഡോ സിസ്റ്റത്തിന് കാരണമായി.

അഥീനയ്ക്ക് തുടക്കത്തിൽ "ഫ്ലാറ്റ്" ഗ്രാഫിക്സ് ഉണ്ടായിരുന്നു - എല്ലാ ബട്ടണുകളും മെനുകളും മറ്റ് ഇന്റർഫേസ് ഘടകങ്ങളും ഷാഡോകളില്ല, അതായത്. പരന്നതായിരുന്നു. ഏകദേശം ഒരു വർഷം മുമ്പ്, AW3d പുറത്തിറങ്ങി - അഥീന വിഡ്ജറ്റുകളുടെ ഒരു വകഭേദം, അതിൽ ഈ പോരായ്മ ഇല്ലാതാക്കി.

മോട്ടിഫ്

ഓപ്പൺ സോഫ്‌റ്റ്‌വെയർ ഫൗണ്ടേഷൻ മോട്ടിഫ് (OSF/Motif) എന്നത് ഒരു വിൻഡോ മാനേജർ, വിവിധ സഹായ പ്രവർത്തനങ്ങൾ നടത്തുന്നതിനുള്ള ഒരു കൂട്ടം യൂട്ടിലിറ്റികൾ, ടൂൾകിറ്റ് ഇൻട്രിൻസിക്‌സിന്റെ അടിസ്ഥാനത്തിൽ നിർമ്മിച്ച ഒബ്‌ജക്‌റ്റുകളുടെ ഒരു ലൈബ്രറി എന്നിവ ഉൾപ്പെടുന്ന ഒരു പാക്കേജാണ്.

മോട്ടിഫ് എല്ലാ Xt ക്ലാസുകളെയും അതിനാൽ ആ ക്ലാസുകളുടെ ഉറവിടങ്ങളെയും പിന്തുണയ്ക്കുന്നു, എന്നാൽ ഒരു വസ്തുവിന്റെ ഉറവിടത്തിന്റെ പേരും ക്ലാസും രേഖപ്പെടുത്തുന്നതിന്, യഥാക്രമം XmN, XmC എന്നീ പ്രിഫിക്‌സിൽ ആരംഭിക്കുന്ന സ്ഥിരാങ്കങ്ങൾ ഉപയോഗിക്കുന്നു. റിസോഴ്സിന്റെ തരം രേഖപ്പെടുത്താൻ, XmR എന്ന പ്രിഫിക്സുള്ള സ്ഥിരാങ്കങ്ങൾ ഉപയോഗിക്കുന്നു (XtR-ന് പകരം, Xt-ൽ സ്വീകരിച്ചത്).

Xt നൽകിയ നിരവധി ഒബ്‌ജക്റ്റ് ക്ലാസുകൾ മോട്ടിഫ് വിപുലീകരിക്കുന്നു. പ്രത്യേകിച്ചും, മെനുകൾ, സ്ക്രോൾബാറുകൾ), ക്ലിക്ക് ചെയ്യാവുന്ന ബട്ടണുകൾ, എഡിറ്റിംഗ് ഘടകങ്ങൾ മുതലായവ സൃഷ്ടിക്കാൻ നിങ്ങളെ അനുവദിക്കുന്ന ഒരു വലിയ കൂട്ടം ക്ലാസുകളെ മോട്ടിഫ് പിന്തുണയ്ക്കുന്നു.

കൂടാതെ, Motif, ഗാഡ്‌ജെറ്റുകൾ എന്ന് വിളിക്കുന്ന ഒബ്‌ജക്‌റ്റുകളുടെ ഒരു പ്രത്യേക ക്ലാസ് നൽകുന്നു - ഇവ Motif, XmGadget-ൽ ഒരു പ്രത്യേക ക്ലാസ് ഉണ്ടാക്കുന്നു, ഇത് RectObj ക്ലാസിന്റെ ഒരു ഉപവിഭാഗമാണ്. ഇന്റർഫേസ് ഘടകങ്ങൾ സൃഷ്ടിക്കുന്നതിനും അവ ഉപയോഗിക്കാം, പക്ഷേ അവയ്ക്ക് സ്വന്തമായി വിൻഡോകൾ ഇല്ലെന്ന പ്രത്യേകതയുണ്ട്. വരയ്ക്കാൻ, ഒരു ഗാഡ്‌ജെറ്റ് അതിന്റെ രക്ഷിതാവിന്റെ വിൻഡോ ഉപയോഗിക്കുന്നു.

ഓരോ വിജറ്റ് ക്ലാസിനും പാരമ്പര്യമായി ലഭിച്ചതും പ്രത്യേകമായതുമായ അധിക വിഭവങ്ങളുടെ വിശാലമായ തിരഞ്ഞെടുപ്പ് ഉണ്ട്. പശ്ചാത്തല വർണ്ണം, സ്ക്രീനിലെ സ്ഥാനം, പ്രദർശിപ്പിച്ച വാചകത്തിന്റെ ഫോണ്ട് മുതലായവ പോലുള്ള ഒബ്‌ജക്റ്റുകളുടെ അത്തരം പ്രധാന സവിശേഷതകൾ നിയന്ത്രിക്കാൻ അവ നിങ്ങളെ അനുവദിക്കുന്നു.

ചില മോട്ടിഫ് ക്ലാസുകൾ വിജറ്റ് സംഭവങ്ങൾ സൃഷ്ടിക്കാൻ ഉപയോഗിക്കുന്നില്ല (അത്തരം ക്ലാസുകളെ ഒബ്‌ജക്റ്റ് ഓറിയന്റഡ് പ്രോഗ്രാമിംഗ് ടെർമിനോളജിയിൽ അബ്‌സ്‌ട്രാക്റ്റ് ക്ലാസുകൾ എന്ന് വിളിക്കുന്നു). വിവിധ തരം വിജറ്റുകളുടെ പ്രവർത്തനത്തിന് ആവശ്യമായ ഏറ്റവും സാധാരണമായ ആട്രിബ്യൂട്ടുകളും രീതികളും അവയിൽ അടങ്ങിയിരിക്കുന്നു.

മോട്ടിഫിന് ഒബ്‌ജക്റ്റുകളുടെ രണ്ട് പ്രധാന ഉപവിഭാഗങ്ങളുണ്ട്: XmPrimitive, XmManager (XmGadget ക്ലാസ് നേരത്തെ സൂചിപ്പിച്ചിരുന്നു). ഈ രണ്ട് ക്ലാസുകളും അമൂർത്തമാണ്. അവയിൽ ആദ്യത്തേത് കോർ ക്ലാസിൽ നിന്ന് പാരമ്പര്യമായി ലഭിക്കുന്നു, മറ്റ് ഒബ്‌ജക്റ്റുകളുടെ ഉടമസ്ഥതയില്ലാത്ത ഒബ്‌ജക്റ്റ് ക്ലാസുകളുടെ അടിസ്ഥാനമായി ഇത് ഉപയോഗിക്കുന്നു. ക്ലിക്ക് ചെയ്യാവുന്ന ബട്ടണുകൾ, ലിസ്റ്റുകൾ മുതലായവ ഉദാഹരണങ്ങളാണ്. എക്‌സ്‌എംമാനേജർ ക്ലാസ് കൺസ്ട്രെയിന്റ് ക്ലാസിൽ നിന്ന് പാരമ്പര്യമായി ലഭിക്കുന്നു, കൂടാതെ ചൈൽഡ് ഒബ്‌ജക്റ്റുകൾ ഉണ്ടായിരിക്കാനും നിയന്ത്രിക്കാനും കഴിയുന്ന ഒബ്‌ജക്റ്റുകൾ സൃഷ്‌ടിക്കാൻ ഉപയോഗിക്കുന്നു.

വസ്തുക്കളുടെ വർഗ്ഗീകരണം

XmGadget ക്ലാസ്. സാധാരണ മോട്ടിഫ് ഒബ്‌ജക്റ്റ് ക്ലാസുകളുടെ (വിജറ്റുകൾ) സന്ദർഭങ്ങൾ സൃഷ്‌ടിക്കുമ്പോൾ, അനുബന്ധ വിൻഡോ സ്‌പോൺ ചെയ്യുന്നു. ഒരു പ്രോഗ്രാം ധാരാളം വിജറ്റുകൾ ഉപയോഗിക്കുകയാണെങ്കിൽ, ഇത് ആപ്ലിക്കേഷനിൽ കാര്യമായ മാന്ദ്യത്തിലേക്ക് നയിക്കുന്നു. ജാലകങ്ങൾ സൃഷ്ടിക്കുന്നതിനും അവയുമായി കൂടുതൽ ജോലി ചെയ്യുന്നതിനും സമയം ചെലവഴിക്കുന്നു. എന്നാൽ ഓരോ ഒബ്ജക്റ്റിനും ഒരു പ്രത്യേക വിൻഡോ ഉണ്ടായിരിക്കേണ്ടത് ആവശ്യമില്ലെന്ന് കാണാൻ എളുപ്പമാണ്. ലേബലുകളും ബട്ടണുകളും മറ്റ് നിരവധി വിജറ്റുകളും അവയുടെ പാരന്റ് ഒബ്‌ജക്റ്റുകളുടെ വിൻഡോകൾ വരയ്ക്കുന്നതിന് വിജയകരമായി ഉപയോഗിക്കാം. വിൻഡോ ഇല്ല - വീണ്ടും സെർവറുമായി ബന്ധപ്പെടേണ്ട ആവശ്യമില്ല, ഉൽപ്പാദനക്ഷമത വർദ്ധിക്കുന്നു, അധിക മെമ്മറി പാഴായില്ല.

ഈ ആശയം കൃത്യമായി നടപ്പിലാക്കിക്കൊണ്ട്, മോട്ടിഫ് ഡവലപ്പർമാർ ചില ഒബ്ജക്റ്റ് ക്ലാസുകൾ തനിപ്പകർപ്പാക്കി, രണ്ട് പതിപ്പുകൾ സൃഷ്ടിച്ചു - ഒരു വിൻഡോയും വിൻഡോ ഇല്ലാതെ. ജാലകങ്ങളില്ലാത്ത ഒബ്‌ജക്‌റ്റുകളുടെ പതിപ്പുകൾ ഒരു അബ്‌സ്‌ട്രാക്‌റ്റ് ക്ലാസിൽ നിന്ന് അവയുടെ ശ്രേണി രൂപപ്പെടുത്തുന്നു - XmGadget, അവയ്‌ക്ക് ഒരേ പൊതുനാമമുണ്ട്. ഒബ്‌ജക്റ്റുകളുടെ ഈ പ്രത്യേക ക്ലാസ് അതിന്റെ സ്വഭാവസവിശേഷതകൾ RectObj ക്ലാസിൽ നിന്ന് പാരമ്പര്യമായി ലഭിക്കുന്നു, ഇത് അടങ്ങുന്ന ഒരു അമൂർത്ത ക്ലാസ് ആണ് അടിസ്ഥാന സംവിധാനങ്ങൾഒബ്ജക്റ്റ് ജ്യാമിതിയുടെ നിയന്ത്രണം.

ഗാഡ്‌ജെറ്റുകൾക്ക് സ്വന്തമായി വിൻഡോകൾ ഇല്ല എന്നതിന് പുറമേ, അവയിൽ മറ്റ് നിയന്ത്രണങ്ങളും ഏർപ്പെടുത്തിയിട്ടുണ്ട്. അതിനാൽ, ഇവന്റ് ഹാൻഡ്‌ലറുകളും വിവർത്തന പട്ടികകളും അവർക്ക് നിർവചിക്കാനാവില്ല. കൂടാതെ, ഗാഡ്‌ജെറ്റുകൾക്ക് ഡിസെൻഡന്റ് ഒബ്‌ജക്‌റ്റുകൾ ഉണ്ടാകരുത്. അല്ലെങ്കിൽ, ഗാഡ്‌ജെറ്റിന്റെയും അനുബന്ധ വിജറ്റിന്റെയും പ്രവർത്തനക്ഷമത ഒന്നുതന്നെയാണ്, അതിനാൽ ഞങ്ങൾ അവയെ പ്രത്യേകം വിവരിക്കില്ല, ഞങ്ങൾ അവയെ പട്ടികപ്പെടുത്തും.

XmGadget ക്ലാസിൽ ഉപവിഭാഗങ്ങൾ അടങ്ങിയിരിക്കുന്നു:

* XmArrowButtonGadget.

* XmLabelGadget.\hfil

* XmPushButtonGadget.

* XmToggleButtonGadget.

* XmCascadeButtonGadget.

* XmSeparatorGadget.

എക്സ്എംപ്രിമിറ്റീവ് ക്ലാസ്. ഈ അമൂർത്ത ക്ലാസിൽ ഇവ ഉൾപ്പെടുന്നു:

XmArrowButton. ക്ലാസിന്റെ ഒരു ഉദാഹരണം ഒരു ദിശാസൂചനയുള്ള അമ്പടയാളമുള്ള ഒരു ബട്ടണാണ്. മൗസ് അല്ലെങ്കിൽ കീബോർഡ് ഉപയോഗിച്ച് ബട്ടൺ ക്ലിക്ക് ചെയ്യാം. നിയന്ത്രണ ഘടകത്തിന്റെ അതിർത്തിക്ക് ഒരു നിഴൽ ഉണ്ടായിരിക്കാം, അത് ഒബ്ജക്റ്റ് ആയിരിക്കാവുന്ന വിവിധ അവസ്ഥകൾ പ്രദർശിപ്പിക്കാൻ ഉപയോഗിക്കുന്നു: സ്വതന്ത്രമായി ("റിലീസ് ചെയ്തു") അമർത്തി.

എക്സ്എംലേബൽ. ഈ ക്ലാസിന്റെ (ലേബലുകൾ) പ്രതിനിധികൾ ഏറ്റവും ലളിതമായ മോട്ടിഫ് ഒബ്ജക്റ്റുകളിൽ ഒന്നാണ്. വിവരങ്ങൾ പ്രദർശിപ്പിക്കുന്നതിനാണ് ലേബലുകൾ രൂപകൽപ്പന ചെയ്തിരിക്കുന്നത്: വാചകം അല്ലെങ്കിൽ ചിത്രങ്ങൾ (ബിറ്റ്മാപ്പുകൾ).

XmPushButton. ഈ ക്ലാസിന്റെ പ്രതിനിധികൾ ചതുരാകൃതിയിലുള്ള ക്ലിക്ക് ചെയ്യാവുന്ന ബട്ടണുകളാണ്, അതിൽ ഒരു വരി വരയ്ക്കാൻ കഴിയും.

ഒരു ഒബ്‌ജക്റ്റ് തിരഞ്ഞെടുത്തിട്ടുണ്ടെങ്കിൽ, ഉദാഹരണത്തിന്, കഴ്‌സർ ഒബ്‌ജക്റ്റിലായിരിക്കുമ്പോൾ ഇടത് മൌസ് ബട്ടൺ അമർത്തിയാൽ, വിജറ്റിന്റെ ബോർഡറിന്റെ നിറം മാറുന്നു, ഇത് ക്ലിക്കുചെയ്യുന്നതിന്റെ പ്രഭാവം സൃഷ്ടിക്കുന്നു. ബട്ടൺ റിലീസ് ചെയ്ത ശേഷം, ബോർഡർ നിറം പുനഃസ്ഥാപിക്കുന്നു. നിങ്ങൾക്ക് കീബോർഡിൽ നിന്ന് അത്തരമൊരു വിജറ്റിൽ ക്ലിക്കുചെയ്യാനും കഴിയും - ഇത് ചെയ്യുന്നതിന്, നിങ്ങൾ ഒബ്ജക്റ്റിന് ഇൻപുട്ട് ഫോക്കസ് നൽകുകയും സ്പേസ്ബാർ അമർത്തുകയും ചെയ്യേണ്ടതുണ്ട് (സാധാരണയായി).

XmDrawnButton. ഈ ക്ലാസിലെ ഒബ്‌ജക്‌റ്റുകൾ ക്ലിക്കുചെയ്യാവുന്ന ബട്ടണുകൾക്ക് സമാനമാണ്, അവയിൽ ടെക്‌സ്‌റ്റ് വരയ്‌ക്കുന്നില്ല എന്ന വ്യത്യാസം മാത്രമേയുള്ളൂ, മറിച്ച് ഒരു അനിയന്ത്രിതമായ ചിത്രം (പിക്‌സൽ മാപ്പ്).

XmToggleButton. ഈ ക്ലാസിലെ ഒബ്ജക്റ്റുകൾ ഒരു ചെറിയ ബട്ടണാണ്, അതിനടുത്തായി, ഒരു ചട്ടം പോലെ, വിശദീകരണ വാചകം ഉണ്ട്. ഒരു ബട്ടൺ രണ്ട് അവസ്ഥകളിലായിരിക്കാം: ഓണും ഓഫും (അതായത് അതൊരു സ്വിച്ച് ആണ്). നിയന്ത്രണ ഘടകത്തിന്റെ രൂപത്തിലുള്ള മാറ്റത്താൽ അവ അടയാളപ്പെടുത്തിയിരിക്കുന്നു.

"ചെക്ക് ബട്ടണുകൾ" എന്ന് വിളിക്കപ്പെടുന്നവ സൃഷ്ടിക്കാൻ ഈ ക്ലാസിന്റെ ഒരു പ്രതിനിധി ഉപയോഗിക്കുന്നു, അത് "ചെക്ക്മാർക്കുകൾ", "റേഡിയോ ബട്ടണുകൾ" - മൾട്ടി-പൊസിഷൻ സ്വിച്ചുകൾ എന്ന് വിളിക്കുന്നതാണ് നല്ലത്. ലോജിക്കൽ പാരാമീറ്ററുകൾ സജ്ജമാക്കാൻ ആദ്യത്തേത് ഉപയോഗിക്കുന്നു, അതായത്. രണ്ട് അർത്ഥങ്ങൾ ഉള്ളത്. രണ്ടാമത്തേത് സമാനമായ ഉദ്ദേശ്യം നിറവേറ്റുന്നു, എന്നാൽ ഈ കേസിലെ മൂല്യങ്ങളുടെ കൂട്ടം പരിമിതമാണ് കൂടാതെ രണ്ടിൽ കൂടുതൽ ഘടകങ്ങൾ അടങ്ങിയിരിക്കുന്നു. ഈ സാഹചര്യത്തിൽ, XmToggleButton തരത്തിലുള്ള ഒബ്‌ജക്റ്റിന്റെ ഗ്രാഫിക്കൽ പ്രാതിനിധ്യത്തിന്റെ രൂപം അത് "ചെക്ക് മാർക്ക്" അല്ലെങ്കിൽ "റേഡിയോ" ബട്ടണായി ഉപയോഗിക്കുന്നുണ്ടോ എന്നതിനെ ആശ്രയിച്ചിരിക്കുന്നു.

ചട്ടം പോലെ, XmToggleButton ക്ലാസിന്റെ വിജറ്റുകൾ യഥാക്രമം ഒരു ചെക്ക് ബോക്സും റേഡിയോ ബോക്സും എന്ന് വിളിക്കപ്പെടുന്ന ഘടനകളായി സംയോജിപ്പിച്ചിരിക്കുന്നു. ഈ ബ്ലോക്കുകൾ, താഴെ വിവരിച്ചിരിക്കുന്ന XmRowColumn ക്ലാസിലെ ഒബ്‌ജക്‌റ്റുകളുടെ പരിഷ്‌ക്കരണങ്ങളെ പ്രതിനിധീകരിക്കുന്നു.

XmCascadeButton. ഈ ക്ലാസിലെ ഒബ്‌ജക്റ്റുകൾ ക്ലിക്ക് ചെയ്യാവുന്ന ബട്ടണുകളെ പ്രതിനിധീകരിക്കുന്നു, മെനുകൾ സൃഷ്‌ടിക്കുമ്പോൾ അവ ഉപയോഗിക്കുന്നു. നിങ്ങൾ ഒരു വസ്തുവിൽ ക്ലിക്ക് ചെയ്യുമ്പോൾ, അടുത്ത ലെവലിന്റെ ഒരു ഉപമെനു ദൃശ്യമാകുന്നു.

XmList. ഈ ക്ലാസിന്റെ പ്രതിനിധികൾ ഏറ്റവും രസകരമായ ചില മോട്ടിഫ് ഒബ്ജക്റ്റുകളാണ്. സ്ട്രിംഗുകളുടെ ഒരു ലിസ്റ്റ് പ്രദർശിപ്പിക്കാനും ഉപയോക്താവിനെ നിർമ്മിക്കാൻ അനുവദിക്കാനുമാണ് അവ രൂപകൽപ്പന ചെയ്തിരിക്കുന്നത് വിവിധ പ്രവർത്തനങ്ങൾലിസ്റ്റ് ഘടകങ്ങൾക്കൊപ്പം. ഈ ഒബ്‌ജക്‌റ്റിൽ പ്രതിനിധീകരിച്ചിരിക്കുന്ന ഒന്നോ അതിലധികമോ വരികൾ ഉപയോക്താവിന് തിരഞ്ഞെടുക്കാനാകും, അവ ഹൈലൈറ്റ് ചെയ്‌തിരിക്കുന്നു. കൂടാതെ, ലിസ്റ്റിന് ഇൻപുട്ട് ഫോക്കസ് ഉണ്ടെങ്കിൽ, അതിന്റെ ഘടകങ്ങളിലൊന്ന് ഒരു ഡോട്ട് ഫ്രെയിം ഉപയോഗിച്ച് ഹൈലൈറ്റ് ചെയ്യുന്നു. ഈ ഫ്രെയിമിനെ ലിസ്റ്റ് കഴ്സർ എന്ന് വിളിക്കുന്നു.

XmScrollBar. ഈ ക്ലാസിലെ ഒബ്ജക്റ്റുകൾ - സ്ക്രോൾ ബാറുകൾ (സ്ക്രോൾ ബാറുകൾ), ഒരു ചട്ടം പോലെ, ഒരു ലിസ്റ്റ് (XmList), ടെക്സ്റ്റ് (XmText) തുടങ്ങിയ മറ്റ് ഒബ്ജക്റ്റുകളുമായി സംയോജിച്ച് ഉപയോഗിക്കുന്നു. സ്ക്രോൾ ബാർ രൂപകൽപ്പന ചെയ്തിരിക്കുന്നത് ഒരു ഏരിയയിൽ അവതരിപ്പിച്ചിരിക്കുന്ന വിവരങ്ങൾ (ലിസ്റ്റ്, ടെക്സ്റ്റ്, ചിത്രം മുതലായവ) വിൻഡോയിൽ പൂർണ്ണമായി പ്രദർശിപ്പിക്കാൻ കഴിയുന്നില്ലെങ്കിൽ സ്ക്രോൾ ചെയ്യുന്നതിനാണ്. XmScrollBar ക്ലാസിലെ ഒബ്‌ജക്റ്റുകൾ ഒരു സ്ട്രിപ്പിനെ (തിരശ്ചീനമോ ലംബമോ) പ്രതിനിധീകരിക്കുന്നു, അതിന്റെ അരികുകളിൽ അമ്പടയാള ബട്ടണുകൾ ഉണ്ട്. അവയിലേതെങ്കിലും ക്ലിക്കുചെയ്യുന്നത് അമ്പടയാളം സൂചിപ്പിക്കുന്ന ദിശയിലേക്ക് സ്ക്രോൾ ചെയ്യുന്നു. സ്ക്രോൾ ബാറിൽ തന്നെ ഒരു സ്ലൈഡർ (സ്ലൈഡർ) ഉണ്ട് - നിറത്തിൽ ഹൈലൈറ്റ് ചെയ്ത ഒരു ദീർഘചതുരം. നിങ്ങൾ അത് മൗസ് ഉപയോഗിച്ച് "ഹുക്ക്" ചെയ്യുകയും "വലിച്ചിടുകയും" ചെയ്യുകയാണെങ്കിൽ, ഇത് ഒരു ചട്ടം പോലെ, പ്രദേശത്തിന്റെ സ്ക്രോളിംഗിലേക്കും നയിക്കുന്നു.

എക്സ്എംസെപ്പറേറ്റർ. ഈ ക്ലാസിലെ ഒബ്ജക്റ്റുകൾ - സെപ്പറേറ്ററുകൾ - ഒരു ചട്ടം പോലെ, ആപ്ലിക്കേഷൻ വിൻഡോകളുടെ രൂപം മെച്ചപ്പെടുത്താൻ ഉപയോഗിക്കുന്നു. ഈ വിജറ്റ് ഒരു ലംബമായ അല്ലെങ്കിൽ പ്രതിനിധീകരിക്കുന്നു തിരശ്ചീന സ്ട്രിപ്പ്(ലൈൻ) വസ്തുക്കളുടെ ഗ്രൂപ്പുകളെ വേർതിരിക്കുന്നു. ഉദാഹരണത്തിന്, ചില കമാൻഡുകൾ മറ്റുള്ളവയിൽ നിന്ന് വേർതിരിക്കാൻ മെനുകളിൽ സെപ്പറേറ്ററുകൾ ഉപയോഗിക്കാം, ഡയലോഗുകളിൽ - മറ്റ് ഘടകങ്ങളിൽ നിന്ന് ഒരു കൂട്ടം അമർത്തിയ ബട്ടണുകൾ വേർതിരിക്കാൻ.

XmText. ഈ ക്ലാസിലെ ഒബ്‌ജക്‌റ്റുകൾ ഒന്നോ അതിലധികമോ വരികൾ പ്രദർശിപ്പിക്കാൻ നിങ്ങളെ അനുവദിക്കുന്നു. വിൻഡോയിൽ വരികൾ യോജിക്കുന്നില്ലെങ്കിൽ, ചിത്രം ഇടത്-വലത്തോട്ടും മുകളിലേക്കും താഴേക്ക് സ്ക്രോൾ ചെയ്യാം. ടെക്സ്റ്റ് എഡിറ്റ് ചെയ്യാൻ കഴിയും - ഒബ്ജക്റ്റ് ഉറവിടങ്ങളുടെ അനുബന്ധ ക്രമീകരണം വഴി എഡിറ്റിംഗ് മോഡ് മാറ്റാൻ കഴിയും.

ഈ ക്ലാസിലെ ഒരു വിജറ്റ് ഉപയോഗിച്ച് വൈവിധ്യമാർന്ന പ്രവർത്തനങ്ങൾ നടത്താൻ നിങ്ങളെ അനുവദിക്കുന്ന നിരവധി സൗകര്യപ്രദമായ നടപടിക്രമങ്ങൾ മോട്ടിഫ് നൽകുന്നു: ഡാറ്റ നേടുകയും പരിഷ്‌ക്കരിക്കുകയും ചെയ്യുക, ഡാറ്റയുടെ തിരഞ്ഞെടുത്ത ഭാഗം സിസ്റ്റം ബഫറിലേക്ക് (ക്ലിപ്പ്ബോർഡ്) പകർത്തുക തുടങ്ങിയവ.

XmTextField. ഈ ക്ലാസിലെ ഒബ്‌ജക്‌റ്റുകൾ ഒരു വരി ടെക്‌സ്‌റ്റ് കാണാനും എഡിറ്റ് ചെയ്യാനും നിങ്ങളെ അനുവദിക്കുന്നു.

XmManager ക്ലാസ്. ഈ ക്ലാസ് അമൂർത്തമാണ്, അതായത്. വസ്തുക്കൾ സൃഷ്ടിക്കാൻ ഉപയോഗിക്കുന്നില്ല. മറ്റ് ഒബ്‌ജക്‌റ്റുകൾ കൈകാര്യം ചെയ്യാൻ കഴിയുന്ന വിജറ്റ് ക്ലാസുകൾ നിർമ്മിക്കുന്നതിന് ആവശ്യമായ അടിസ്ഥാന പാരാമീറ്ററുകൾ ഇത് നിർവ്വചിക്കുന്നു. ചൈൽഡ് വിജറ്റുകൾ ശരിയായി പ്രദർശിപ്പിക്കുന്നതിനും അവയ്ക്ക് ഇൻപുട്ട് ഫോക്കസ് ലഭിക്കുമോ എന്ന് നിയന്ത്രിക്കുന്നതിനും ഈ ഉറവിടങ്ങൾ ആവശ്യമാണ്.

XmManager ക്ലാസിൽ ഇവ ഉൾപ്പെടുന്നു:

XmBulletinBoard. ഈ ക്ലാസിലെ ഒബ്‌ജക്‌റ്റുകൾക്ക് ഏത് വിധത്തിലും വിൻഡോയിൽ സ്ഥാപിക്കുന്ന ഉപവിഷയങ്ങൾ ഉണ്ടാകാം. ചൈൽഡ് വിജറ്റ് വിൻഡോകളുടെ കോർഡിനേറ്റുകൾ അളക്കുന്നത് ഒരു കോർഡിനേറ്റ് സിസ്റ്റത്തിലാണ്, അതിന്റെ ഉത്ഭവം XmBulletinBoard ക്ലാസിന്റെ ഒരു ഒബ്‌ജക്റ്റിന്റെ വിൻഡോയുടെ മുകളിൽ ഇടത് കോണിലാണ്.

നിങ്ങൾ ഒരു ഒബ്‌ജക്റ്റിന്റെ വലുപ്പം മാറ്റുമ്പോൾ, ഉദാഹരണത്തിന്, മൗസ് ഉപയോഗിച്ച്, ഉപ ഒബ്‌ജക്റ്റുകളുടെ പ്രാരംഭ സ്ഥാനം മാറില്ല, അല്ലെങ്കിൽ അവ വിഭജിക്കുന്നത് ഒഴിവാക്കാൻ അവ നീക്കുന്നു. വിജറ്റ് വിൻഡോ ചെറുതായാൽ, ഉപവിഷയങ്ങളുടെ ഭാഗങ്ങൾ അദൃശ്യമായേക്കാം.

XmBulletinBoard ക്ലാസിൽ ഇവ ഉൾപ്പെടുന്നു:

XmForm. ഈ ക്ലാസിലെ ഒബ്‌ജക്റ്റുകളുടെ (ഫോമുകൾ) ഒരു പ്രത്യേക സവിശേഷത, ഫോമിനും ചൈൽഡ് വിജറ്റിനും ഇടയിലും ഉപവിഷയങ്ങൾക്കിടയിലും കണക്ഷനുകൾ സജ്ജീകരിച്ച് അവയുടെ ഉപവിഷയങ്ങളുടെ സ്ഥാനം നിയന്ത്രിക്കാനുള്ള കഴിവാണ്.

ഓരോ ചൈൽഡ് വിജറ്റിനും, അതിന്റെ ഇടത്, വലത്, താഴെ അല്ലെങ്കിൽ മുകളിലെ അറ്റം ഘടിപ്പിച്ചിട്ടുണ്ടോ എന്ന് നിങ്ങൾക്ക് വ്യക്തമാക്കാം. അതിനാൽ, ഒരു ഉപവസ്തുവിന്റെ ഇടത്തേയും വലത്തേയും അറ്റങ്ങൾ ഫോമിന്റെ വലത് അറ്റത്തേക്ക് സ്‌നാപ്പ് ചെയ്‌താൽ, അവയിൽ നിന്ന് ഈ അരികിലേക്കുള്ള ദൂരം എല്ലായ്പ്പോഴും അതേപടി നിലനിൽക്കും. ഫോമിന്റെ വലുപ്പം കുറയുകയാണെങ്കിൽ, ഉപവസ്തു ഇടതുവശത്തേക്ക് നീങ്ങും, വലുപ്പം വർദ്ധിക്കുകയാണെങ്കിൽ, അത് വലത്തോട്ട് നീങ്ങും. നിങ്ങൾക്ക് ഒരു ഉപവസ്തുവിനെ മറ്റൊന്നുമായി ബന്ധിപ്പിക്കാൻ കഴിയും. അപ്പോൾ വിജറ്റ് ബന്ധിപ്പിച്ചിരിക്കുന്ന ഉപവസ്തുവിന്റെ സ്ഥാനം മാറ്റുന്നത് ബന്ധിത വസ്തുവിനെ ചലിപ്പിക്കുന്നതിന് ഇടയാക്കും, അങ്ങനെ അവ തമ്മിലുള്ള ദൂരം നിലനിർത്തും.

ഫോമിന്റെ വലുപ്പം മാറ്റുമ്പോൾ, അതിന്റെ ഉപവിഷയങ്ങൾ തമ്മിലുള്ള എല്ലാ കണക്ഷനുകളും സംരക്ഷിക്കപ്പെടുന്നു.

XmSelectionBox. ഈ ക്ലാസിലെ ഒബ്‌ജക്റ്റുകൾ (“സെലക്ഷൻ ബ്ലോക്കുകൾ”) ഒരു കോമ്പോസിറ്റ് വിജറ്റിന്റെ ഒരു ഉദാഹരണത്തെ പ്രതിനിധീകരിക്കുന്നു, കൂടാതെ ഉപയോക്താവിന് ആവശ്യമായ ഘടകം തിരഞ്ഞെടുക്കാൻ കഴിയുന്ന സ്ക്രോൾ ചെയ്യാവുന്ന ഒരു ലിസ്റ്റും ലിസ്റ്റിലെ തിരഞ്ഞെടുത്ത ഇനം ഉള്ള ഒരു ടെക്സ്റ്റ് ഫീൽഡും (XmTextField ഒബ്‌ജക്റ്റ്) ഉൾപ്പെടുന്നു. പ്രദർശിപ്പിച്ചു. തിരഞ്ഞെടുത്തത് ഉപയോക്താവിന് എഡിറ്റ് ചെയ്യാൻ കഴിയും. XmLabel ക്ലാസിന്റെ അനുബന്ധ വിജറ്റ് ഉപയോഗിച്ച് വ്യക്തമാക്കിയിട്ടുള്ള, ലിസ്റ്റിനും ടെക്സ്റ്റ് ഫീൽഡിനും വിശദീകരണ ലേബലുകൾ ഉണ്ടായിരിക്കാം. XmSelectionBox ക്ലാസ് ഒബ്‌ജക്‌റ്റിൽ മൂന്ന് പുഷ് ചെയ്യാവുന്ന ബട്ടണുകളും ഉൾപ്പെടുന്നു (XmPushButton ഒബ്‌ജക്‌റ്റുകൾ). സ്ഥിരസ്ഥിതിയായി, അവ "ശരി", "റദ്ദാക്കുക", "സഹായം" എന്നിങ്ങനെ ലേബൽ ചെയ്തിരിക്കുന്നു. ഒടുവിൽ, ഒരു ഘടകം കൂടിയുണ്ട് - സ്ഥിരസ്ഥിതിയായി "പ്രയോഗിക്കുക" എന്ന് വിളിക്കുന്ന ഒരു ക്ലിക്ക് ചെയ്യാവുന്ന ബട്ടൺ. തുടക്കത്തിൽ, ഈ സബ്‌ജക്‌റ്റ് സൃഷ്‌ടിച്ചതാണ്, പക്ഷേ നിയന്ത്രിത വിജറ്റുകളുടെ പട്ടികയിൽ ഉൾപ്പെടുത്തിയിട്ടില്ല.

സെലക്ഷൻ ബ്ലോക്ക് ഉപയോഗിച്ച്, ഉപയോക്താവിന് ലിസ്‌റ്റിൽ ആവശ്യമുള്ള സബ്‌സ്‌ട്രിംഗ് തിരഞ്ഞെടുക്കാം അല്ലെങ്കിൽ അത് ടെക്‌സ്‌റ്റ് ഫീൽഡിൽ നൽകാം. "ശരി" ബട്ടൺ അമർത്തി ക്രമീകരണങ്ങൾ സ്ഥിരീകരിക്കുന്നു.

XmSelectionBox ക്ലാസിൽ ഉൾപ്പെടുന്നു:

എക്സ്എംകമാൻഡ്. ഈ ക്ലാസിലെ ഒബ്‌ജക്റ്റുകൾ ഉപയോക്താവിന് ഇതിനകം നൽകിയ കമാൻഡുകളുടെ ലിസ്റ്റ് ഉപയോഗിച്ച് ആവശ്യമുള്ള കമാൻഡ് തിരഞ്ഞെടുക്കാനുള്ള അവസരം നൽകുന്നു, അല്ലെങ്കിൽ വിജറ്റിൽ ഇതിനായി പ്രത്യേകം നൽകിയിരിക്കുന്ന ഒരു ടെക്സ്റ്റ് ഫീൽഡിൽ ഒരു കമാൻഡ് നൽകുക.

XmFileSelection. വ്യത്യസ്ത ഡയറക്‌ടറികളിലെ നിലവിലെ ഉള്ളടക്കങ്ങൾ കാണാനും ഒരു പ്രത്യേക ഫയൽ തിരഞ്ഞെടുക്കാനും ഈ ക്ലാസിലെ ഒബ്‌ജക്‌റ്റുകൾ നിങ്ങളെ അനുവദിക്കുന്നു.

ഈ ക്ലാസിലെ ഒബ്ജക്റ്റുകളിൽ ഘടകങ്ങൾ അടങ്ങിയിരിക്കുന്നു:

* 2 ടെക്സ്റ്റ് ഫീൽഡുകൾ: "ഫിൽട്ടർ", "സെലക്ഷൻ" (XmNextField ക്ലാസിന്റെ ഒബ്ജക്റ്റുകൾ);

* 2 ലിസ്റ്റുകൾ: "ഡയറക്‌ടറികൾ", "ഫയലുകൾ" (XmList ക്ലാസിലെ ഒബ്‌ജക്റ്റുകൾ);

* 4 പുഷ് ചെയ്യാവുന്ന ബട്ടണുകൾ: "ശരി", "ഫിൽട്ടർ", "റദ്ദാക്കുക", "സഹായം" (XmPushButton ക്ലാസിന്റെ ഒബ്ജക്റ്റുകൾ);

"ഫിൽട്ടർ" ടെക്സ്റ്റ് ഫീൽഡ്, മുഴുവൻ ഫയലുകളിൽ നിന്നും ഈ ഫീൽഡിൽ വ്യക്തമാക്കിയിരിക്കുന്ന വ്യവസ്ഥയെ തൃപ്തിപ്പെടുത്തുന്ന ഒരു പ്രത്യേക ഉപവിഭാഗം തിരഞ്ഞെടുക്കുന്നതിന് ഒരു മാസ്ക് (ടെംപ്ലേറ്റ്) വ്യക്തമാക്കുന്നു - ടെംപ്ലേറ്റുമായി പൊരുത്തപ്പെടുന്നു - "ഫയലുകൾ" ലിസ്റ്റിൽ കാണിച്ചിരിക്കുന്ന ഈ ഉപവിഭാഗമാണ്. "ഡയറക്‌ടറികൾ" ലിസ്റ്റ് ഉപഡയറക്‌ടറികൾ പ്രദർശിപ്പിക്കുന്നു നിലവിലെ ഡയറക്ടറി. "തിരഞ്ഞെടുപ്പ്" ടെക്സ്റ്റ് ഫീൽഡ് "ഫയലുകൾ" ലിസ്റ്റിൽ തിരഞ്ഞെടുത്ത ഫയൽ (അതിന്റെ പേര്) പ്രദർശിപ്പിക്കുന്നു, അതേ ടെക്സ്റ്റ് ഫീൽഡിൽ ഉപയോക്താവിന് ആവശ്യമായ ഫയലിന്റെ മുഴുവൻ പേര് സ്വമേധയാ നൽകാം. വിവിധ പ്രവർത്തനങ്ങൾ ചെയ്യുന്നതിന് നാല് അമർത്താവുന്ന ബട്ടണുകൾ ഉപയോഗിക്കുന്നു:

ശരി - നിർദ്ദിഷ്ട ഫയൽ തിരഞ്ഞെടുക്കുക;

ഫിൽട്ടർ - നിലവിലെ മാസ്കിന് അനുസൃതമായി "ഫയലുകൾ" ടെക്സ്റ്റ് ഫീൽഡിൽ പ്രദർശിപ്പിച്ചിരിക്കുന്ന ഫയലുകളുടെ ലിസ്റ്റ് അപ്ഡേറ്റ് ചെയ്യുന്നു;

റദ്ദാക്കുക - വിജറ്റ് വിൻഡോ അടയ്ക്കുന്നു, ഫയൽ തിരഞ്ഞെടുക്കൽ സംഭവിക്കുന്നില്ല;

സഹായം - സഹായത്തിനുള്ള ഒരു വിളി.

XmMessageBox. പ്രോഗ്രാമിന്റെ പ്രവർത്തന സമയത്ത് ഉയർന്നുവരുന്ന സന്ദേശങ്ങൾ ഉപയോക്താവിന് നൽകാൻ ഉദ്ദേശിച്ചുള്ളതാണ് ഈ ക്ലാസിലെ ഒബ്ജക്റ്റുകൾ. ഈ വിജറ്റ് സംയുക്തമാണ്. വാചകത്തിന്റെ ഒരു വരിയും (സന്ദേശം) സന്ദേശത്തിന്റെ തരം വ്യക്തമാക്കുന്ന ഒരു പ്രത്യേക ഐക്കണും പ്രദർശിപ്പിക്കുന്ന ഒരു പ്രദേശമുണ്ട്. കൂടാതെ, ഒബ്ജക്റ്റിന് മൂന്ന് ക്ലിക്ക് ചെയ്യാവുന്ന ബട്ടണുകൾ ഉണ്ട്. സ്ഥിരസ്ഥിതിയായി, അവ ലേബൽ ചെയ്തിരിക്കുന്നു: "ശരി", "റദ്ദാക്കുക", "സഹായം".

XmDrawingArea. ഈ ക്ലാസിലെ ഒബ്ജക്റ്റുകൾ പ്രോഗ്രാമിന് വിവരങ്ങൾ വരയ്ക്കുന്നതിനും പ്രദർശിപ്പിക്കുന്നതിനുമുള്ള ഒരു വിൻഡോ നൽകുന്നു. ഗ്രാഫിക്സ് പ്രദർശിപ്പിക്കുന്നതിന് നേരിട്ട് ഉപയോഗിക്കാവുന്ന പരാമീറ്ററുകൾ ക്ലാസ് തന്നെ നൽകുന്നില്ല. എന്നാൽ ഈ ക്ലാസിൽ ലഭ്യമായ കോൾബാക്ക് നടപടിക്രമങ്ങളുടെ ലിസ്റ്റുകൾ, വിജറ്റ് വിൻഡോ വീണ്ടും വരയ്ക്കേണ്ടതിന്റെ ആവശ്യകതയെക്കുറിച്ചും ഇൻപുട്ട് ഫോക്കസ് സ്വീകരിക്കുന്നതിനെക്കുറിച്ചും അറിയിപ്പുകൾ സ്വീകരിക്കാൻ നിങ്ങളെ അനുവദിക്കുന്നു.

XmFrame. ഈ ക്ലാസിലെ ഒബ്‌ജക്റ്റുകൾ ഒരു ഫ്രെയിമിൽ ചുറ്റിപ്പറ്റിയുള്ള ചില വസ്തുക്കളെ മറ്റുള്ളവയിൽ നിന്ന് ഹൈലൈറ്റ് ചെയ്യാൻ ഉപയോഗിക്കുന്നു. ഈ വിജറ്റ് ക്ലാസിന്റെ പ്രത്യേകത, അവർക്ക് ഒരു സബ്‌ജക്‌റ്റ് മാത്രമേ ഉണ്ടായിരിക്കാനും നിയന്ത്രിക്കാനും കഴിയൂ എന്നതാണ്.

XmPanedWindow. ഈ ക്ലാസിലെ ഒബ്‌ജക്റ്റുകൾക്ക് വൈവിധ്യമാർന്ന വിജറ്റുകൾ സംയോജിപ്പിക്കാൻ കഴിയും. ഉപവസ്തുക്കൾ പരസ്പരം വേർതിരിക്കപ്പെടുന്നു, അവയ്ക്കിടയിൽ സാഷ് എന്ന് വിളിക്കപ്പെടുന്ന ഒരു പ്രത്യേക ഘടകം സ്ഥാപിച്ചിരിക്കുന്നു. ഇത് ഒരു ചെറിയ ചതുരം പോലെ കാണപ്പെടുന്നു, ചൈൽഡ് വിജറ്റുകളുടെ വലുപ്പം മാറ്റാൻ ഇത് ഉപയോഗിക്കുന്നു. അതിനാൽ, XmPanedWindow ക്ലാസിലെ ഒരു ഒബ്‌ജക്‌റ്റിന് രണ്ട് സബ്‌ജക്‌റ്റുകൾ ഉണ്ടെങ്കിൽ, നിങ്ങൾക്ക് ഇനിപ്പറയുന്നവ ചെയ്യാം: മൗസ് ഉപയോഗിച്ച് "ഹുക്ക്" സാഷ്, അത് ആവശ്യമുള്ള ദിശയിലേക്ക് "വലിച്ചിടുക" (ഡൗൺ-അപ്പ് അല്ലെങ്കിൽ ഇടത്-വലത്) - രേഖാംശ വലുപ്പത്തിൽ. (അത് "വലിച്ച" സാഷ് ദിശയിലുള്ള വലുപ്പം) ഒരു ചൈൽഡ് ഒബ്‌ജക്റ്റ് മറ്റൊന്നിന്റെ "ചെലവിൽ" വർദ്ധിക്കും (മറ്റൊന്നിന്റെ വലുപ്പം കുറയും), രണ്ട് ഉപവിഷയങ്ങളുടെയും തിരശ്ചീന അളവുകൾ സംരക്ഷിക്കപ്പെടും. XmPanedWindow ക്ലാസിലെ ഒബ്‌ജക്റ്റിന്റെ "ലാറ്ററൽ" വലുപ്പം നിർണ്ണയിക്കുന്നത് അതിന്റെ ഉപവിഷയങ്ങളുടെ പരമാവധി സമാന വലുപ്പമാണ്.

XmRowColumn. ഈ ക്ലാസിലെ ഒബ്‌ജക്റ്റുകൾക്ക് വൈവിധ്യമാർന്ന വിജറ്റുകൾ സംയോജിപ്പിക്കാൻ കഴിയും. ഉപവിഷയങ്ങൾ ഒരു നിശ്ചിത ക്രമത്തിൽ ക്രമീകരിച്ചിരിക്കുന്നു - ഒരു മാട്രിക്സ് രൂപത്തിൽ. XmRowColumn ക്ലാസിന്റെ വിജറ്റാണ് ഇനിപ്പറയുന്ന ഒബ്‌ജക്റ്റുകൾ സൃഷ്ടിക്കുന്നതിനുള്ള അടിസ്ഥാനം:

ചെക്ക് ബോക്സ് - "ചെക്ക് ചെയ്യാവുന്ന ബട്ടണുകളുടെ ബ്ലോക്ക്" (അതായത് XmToggleButton ക്ലാസ്സിന്റെ അല്ലെങ്കിൽ XmToggleButtonGadget ക്ലാസ്സിന്റെ ഒബ്ജക്റ്റുകൾ); "ബ്ലോക്കിൽ" ലഭ്യമായ ബട്ടണുകളിൽ പലതും ഒരേ സമയം തിരഞ്ഞെടുക്കാം ("പ്രാപ്തമാക്കിയത്");

റേഡിയോ ബോക്സ് - "റേഡിയോ ബട്ടണുകളുടെ ബ്ലോക്ക്" (അതായത് XmToggleButton അല്ലെങ്കിൽ XmToggleButtonGadget വസ്തുക്കൾ); "ബ്ലോക്കിൽ" ലഭ്യമായ ബട്ടണുകളിൽ, ഒരേ സമയം ഒരെണ്ണം മാത്രമേ തിരഞ്ഞെടുക്കാനാകൂ ("പ്രാപ്തമാക്കിയത്");

pulldown മെനു - "ഡ്രോപ്പ്-ഡൗൺ മെനു" - മുകളിലെ ലെവൽ മെനുവിൽ (മെനു ബാർ) ഒരു ബട്ടൺ തിരഞ്ഞെടുത്ത ശേഷം ദൃശ്യമാകുന്ന ഒരു ഉപമെനു വിൻഡോ; മെനു ഇനങ്ങൾ ലംബമായി ക്രമീകരിച്ചിരിക്കുന്നു;

ഓപ്ഷൻ മെനു - അനുബന്ധ മെനു ഉള്ള ബട്ടൺ; നിങ്ങൾ ബട്ടണിൽ ക്ലിക്കുചെയ്യുമ്പോൾ, ഒരു പാരാമീറ്റർ മൂല്യം തിരഞ്ഞെടുത്ത ഒരു മെനു വിൻഡോ ദൃശ്യമാകുന്നു; മെനു ഇനങ്ങൾ ലംബമായി ക്രമീകരിച്ചിരിക്കുന്നു;

പോപ്പ്അപ്പ് മെനു - "പോപ്പ്-അപ്പ് മെനു", ഇത് സാധാരണയായി മൂന്നാമത്തെ മൗസ് ബട്ടൺ ക്ലിക്കുചെയ്ത് വിളിക്കുന്നു; അവളുടെ കഴ്സർ സ്ഥിതിചെയ്യുന്ന സ്ഥലത്ത് മെനു വിൻഡോ ദൃശ്യമാകുന്നു; മെനു ഇനങ്ങൾ ലംബമായി ക്രമീകരിച്ചിരിക്കുന്നു;

മെനു ബാർ - വിവിധ ഉപമെനുകളെ (പുൾഡൗൺ മെനു) വിളിക്കാൻ ഉപയോഗിക്കുന്ന നിരവധി ബട്ടണുകൾ (XmCascadeButton അല്ലെങ്കിൽ XmCascadeButtonGadget ക്ലാസിലെ ഒബ്ജക്റ്റുകൾ) അടങ്ങുന്ന ഒരു ഉയർന്ന തലത്തിലുള്ള മെനു; മെനു ഇനങ്ങൾ തിരശ്ചീനമായി ക്രമീകരിച്ചിരിക്കുന്നു.

XmScale. ഈ ക്ലാസിലെ ഒബ്‌ജക്റ്റ് ഒരു ഫിക്സിംഗ് സ്ലൈഡർ അടങ്ങിയ ഒരു ചതുരാകൃതിയിലുള്ള പ്രദേശമാണ്, ഇത് ഉപയോഗിച്ച് ഉപയോക്താവിന് ഒരു നിർദ്ദിഷ്ട ശ്രേണിയിൽ നിന്ന് ഒബ്‌ജക്റ്റുമായി ബന്ധപ്പെട്ട പാരാമീറ്ററിന്റെ മൂല്യം തിരഞ്ഞെടുക്കാനാകും.

XmScrolledWindow. ഈ ക്ലാസിലെ ഒരു ഒബ്ജക്റ്റ് ചില വിവരങ്ങൾ (ടെക്സ്റ്റ്, ചിത്രം, ലിസ്റ്റ്) പ്രദർശിപ്പിക്കാനും കാണാനുമുള്ള കഴിവ് നൽകുന്നു. അത്തരമൊരു വിജറ്റിൽ, ഒരു ചട്ടം പോലെ, കാണുന്നതിന് ഉദ്ദേശിച്ചിട്ടുള്ള ഡാറ്റ സ്ഥിതിചെയ്യുന്ന ഒരു ഉപവിഷയം അടങ്ങിയിരിക്കുന്നു (ഇത് XmText, XmDrawingArea, മുതലായവ ക്ലാസ്സിന്റെ ഒബ്ജക്റ്റ് ആകാം). ഡാറ്റയുടെ കൂടുതൽ സൗകര്യപ്രദമായ കാഴ്ചയ്ക്കായി, തിരശ്ചീനവും ലംബ വരകൾസ്ക്രോൾ ചെയ്യുക.

ഈ ക്ലാസിൽ ഒരു ഉപവിഭാഗം അടങ്ങിയിരിക്കുന്നു

XmMainWindow. ഈ ക്ലാസിലെ ഒബ്ജക്റ്റുകൾ ഒരു പ്രത്യേക ഇന്റർഫേസ് ഘടകത്തെ പ്രതിനിധീകരിക്കുന്നു, സാധാരണയായി ഇനിപ്പറയുന്ന ഭാഗങ്ങൾ അടങ്ങിയിരിക്കുന്നു:

* ഉയർന്ന ലെവൽ മെനു,

* കമാൻഡ് വിൻഡോ,

*"ജോലിസ്ഥലം,

* സന്ദേശ ജാലകം,

* കൂടാതെ രണ്ട് സ്ക്രോൾ ബാറുകളും (തിരശ്ചീനവും ലംബവും).

ഉപവിഷയങ്ങളെ സെപ്പറേറ്ററുകൾ ഉപയോഗിച്ച് വേർതിരിക്കാം.

XmMenuShell, XmDialogShell ക്ലാസുകൾ. വിവിധ മെനുകൾ സൃഷ്‌ടിക്കുന്നതിന് മോട്ടിഫ് ഒരു XmMenuShell ഒബ്‌ജക്റ്റ് ക്ലാസ് നൽകുന്നു. ഈ ക്ലാസ് ഓവർറൈഡ്ഷെൽ ക്ലാസിൽ നിന്ന് (Xt-ൽ നിന്ന്) പാരമ്പര്യമായി ലഭിക്കുന്നു.

Xt വിവരിക്കുമ്പോൾ ഇതിനകം സൂചിപ്പിച്ചതുപോലെ, ഒരു വശത്ത്, വിൻഡോ മാനേജറുമായി നേരിട്ട് ബന്ധപ്പെടുന്ന പ്രോഗ്രാം ഒബ്‌ജക്റ്റുകൾ സൃഷ്ടിക്കാൻ TransientShell ക്ലാസ് ഉപയോഗിക്കുന്നു, മറുവശത്ത്, സാധാരണ ഉയർന്ന തലത്തിലുള്ള വിൻഡോകളിൽ നിന്ന് അവയെ വേർതിരിക്കുന്ന സവിശേഷതകൾ ഉണ്ട്. ഈ സവിശേഷതകളിൽ പ്രധാനം, TransientShell ക്ലാസിന്റെ വിജറ്റ് ചെറുതാക്കാൻ കഴിയില്ല എന്നതാണ്. എന്നാൽ രക്ഷകർത്താവ് ഒരു ഐക്കണായി മാറുകയാണെങ്കിൽ അവ സ്ക്രീനിൽ നിന്ന് നീക്കം ചെയ്യപ്പെടും. ഇത്തരത്തിലുള്ള വിജറ്റ് സാധാരണയായി ഓക്സിലറി പ്രോഗ്രാം വിൻഡോകൾ സൃഷ്ടിക്കാൻ ഉപയോഗിക്കുന്നു.

മോട്ടിഫ് ട്രാൻസിന്റ്ഷെൽ ക്ലാസിന്റെ നിർദ്ദിഷ്ട പ്രോപ്പർട്ടികൾ ഉപയോഗിക്കുകയും അവ എക്‌സ്‌എം ഡയലോഗ്ഷെൽ ക്ലാസിലേക്ക് വ്യാപിപ്പിക്കുകയും ചെയ്യുന്നു. രണ്ടാമത്തേത് ഡയലോഗിന്റെ ഷെൽ ഒബ്ജക്റ്റായി പ്രവർത്തിക്കുന്നു.

മോട്ടിഫിലെ ഡയലോഗ് ബോക്‌സിന്റെ ഘടന ഇനിപ്പറയുന്ന രീതിയിൽ പ്രതിനിധീകരിക്കാം:

XmDialogShell ക്ലാസ് ഒബ്‌ജക്റ്റ്

XmBulletinBoard അല്ലെങ്കിൽ XmForm പോലെയുള്ള ഒരു XmManager സബ്ക്ലാസ് ഒബ്ജക്റ്റ്

വിവിധ നിയന്ത്രണ ഘടകങ്ങൾ: ബട്ടണുകൾ, ടെക്സ്റ്റ് ഇൻപുട്ട് ഫീൽഡുകൾ മുതലായവ.

വിവരിച്ച ഡിസൈൻ സൃഷ്ടിക്കാൻ സഹായിക്കുന്ന ഒരു കൂട്ടം നടപടിക്രമങ്ങൾ ലൈബ്രറിയിലുണ്ട്.

ഡയലോഗുകൾ

പ്രസ്‌താവിച്ചതുപോലെ, മോട്ടിഫിലെ ഒരു ഡയലോഗ് ബോക്‌സിന്റെ രൂപകൽപ്പന ഇപ്രകാരമാണ്: ആദ്യം XmDialogShell ക്ലാസിന്റെ ഒരു ഒബ്‌ജക്റ്റ് ഉണ്ട്, അതിൽ XmManager ക്ലാസിലെ ഒരു ഉപവിഭാഗത്തിന്റെ ഒരു വിജറ്റ് ഉൾപ്പെടുന്നു; ഈ ഒബ്‌ജക്റ്റ് വിവിധ ഒബ്‌ജക്റ്റുകൾ ഹോസ്റ്റുചെയ്യാൻ ഉപയോഗിക്കുന്നു.

ഡയലോഗുകൾ സൃഷ്ടിക്കുന്നതിനുള്ള പ്രത്യേക നടപടിക്രമങ്ങൾ ലൈബ്രറി നൽകുന്നു. XmDialogShell ക്ലാസ് ഒബ്‌ജക്റ്റിന്റെ കുട്ടിയായ വിജറ്റ് തരത്തിൽ അവ വ്യത്യാസപ്പെട്ടിരിക്കുന്നു.

ടെക്സ്റ്റ് ഔട്ട്പുട്ട്

ടെക്സ്റ്റ് വിവരങ്ങൾ പ്രദർശിപ്പിക്കാൻ ഉപയോഗിക്കുന്ന വിഡ്ജറ്റുകളുടെ ഒരു വലിയ സംഖ്യ ലൈബ്രറിയിലുണ്ട്. സബ്ക്ലാസ്സുകളുള്ള XmLabel, XmText മുതലായവയാണ് ഇവ. വരകൾ വരയ്ക്കുമ്പോൾ ഉപയോഗിക്കാവുന്ന ഫോണ്ടുകൾ വ്യക്തമാക്കുന്നതിന്, XmNfontlist റിസോഴ്സ് ഉപയോഗിക്കുന്നു. ഇത് XmFontlist തരത്തിലുള്ളതാണ്. അതിന്റെ അർത്ഥം "ഫോണ്ട്"/"ഫോണ്ട് ടാഗ്" ജോഡികളുടെ ഒരു കൂട്ടമാണ്.

ടാഗുകൾ (ലേബലുകൾ) പ്രോഗ്രാമുകളെ ഉപയോക്താവ് വ്യക്തമാക്കിയ നിർദ്ദിഷ്ട ഫോണ്ടുകളിൽ നിന്ന് സ്വതന്ത്രമാക്കാൻ ഉദ്ദേശിച്ചുള്ളതാണ്. ഇത് ഇനിപ്പറയുന്ന രീതിയിൽ ചെയ്യുന്നു: ടെക്സ്റ്റ് ലൈനുകളിൽ പ്രവർത്തിക്കുന്ന എല്ലാ ഫംഗ്ഷനുകളിലും ഫോണ്ടുകളല്ല, അവയുടെ ലേബലുകൾ അടങ്ങിയിരിക്കുന്ന തരത്തിലാണ് ആപ്ലിക്കേഷൻ സൃഷ്ടിച്ചിരിക്കുന്നത്. ടാസ്‌ക് സമാഹരിച്ച് ആരംഭിക്കുമ്പോൾ, ടാഗുകളും തമ്മിലുള്ള കത്തിടപാടുകളും നിർദ്ദിഷ്ട ഫോണ്ടുകൾ. രണ്ടാമത്തേത് വരയ്ക്കാൻ ഉപയോഗിക്കുന്നു.

ഒരൊറ്റ ഫോണ്ടിൽ പ്രദർശിപ്പിച്ചിരിക്കുന്ന ടെക്‌സ്‌റ്റുകളുടെ സ്‌ട്രിംഗുകൾക്കൊപ്പം പ്രവർത്തിക്കാൻ മാത്രമല്ല, “കോമ്പോസിറ്റ് സ്ട്രിംഗുകൾ” പോലുള്ള ഒബ്‌ജക്‌റ്റുകൾക്കൊപ്പം പ്രവർത്തിക്കാനും മോട്ടിഫിന് ടൂളുകൾ ഉണ്ട് - അതായത്. നിരവധി ഫോണ്ടുകൾ ഉപയോഗിക്കുന്ന വാചക വരികൾ. അത്തരം സ്ട്രിംഗുകൾ സൃഷ്ടിക്കുന്നതിനും അവരോടൊപ്പം പ്രവർത്തിക്കുന്നതിനും അവയെ സാധാരണ, "സിംഗിൾ-ഫോണ്ട്" സ്ട്രിംഗുകളിലേക്ക് പരിവർത്തനം ചെയ്യുന്നതിനും ഒരു കൂട്ടം ടൂളുകൾ ഉണ്ട്.

ചിത്രങ്ങളുമായി പ്രവർത്തിക്കുന്നു

മോട്ടിഫ് തന്നെ ഇമേജുകൾക്കൊപ്പം പ്രവർത്തിക്കുന്നു, അവ ഒരു ആന്തരിക ഫോർമാറ്റിൽ അവതരിപ്പിക്കുന്നു, ഇത് ഒരു ലളിതമായ ബിറ്റ്മാപ്പാണ്, ഇത് XImage ഘടന ഉപയോഗിച്ച് വ്യക്തമാക്കിയിരിക്കുന്നു.

ഇൻപുട്ട് ഫോക്കസ് നിയന്ത്രിക്കുക

മോട്ടിഫ് രണ്ട് ഇൻപുട്ട് ഫോക്കസ് മോഡലുകളെ പിന്തുണയ്ക്കുന്നു. അവയിൽ ആദ്യത്തേത് ഇംപ്ലിസിറ്റ് (പോയിന്റർ): മൗസ് കഴ്‌സർ നീങ്ങുന്ന വിജറ്റിന് ഫോക്കസ് നൽകുന്നു. രണ്ടാമത്തെ മോഡൽ വ്യക്തമാണ്: ഫോക്കസ് കൈമാറാൻ, നിങ്ങൾ വിജറ്റ് വിൻഡോയിൽ മൗസ് കഴ്സർ സ്ഥാപിക്കുകയും ഇടത് മൌസ് ബട്ടണിൽ ക്ലിക്ക് ചെയ്യുകയും വേണം. ഒരു വിജറ്റിനോ ഗാഡ്‌ജെറ്റിനോ ഇൻപുട്ട് ഫോക്കസ് ലഭിക്കുമ്പോൾ, അതിന്റെ ബോർഡർ ഹൈലൈറ്റ് ചെയ്യപ്പെടും.

ഇൻപുട്ട് ഫോക്കസ് കടന്നുപോകുന്നതിനും സ്വീകരിക്കുന്നതിനുമുള്ള ഈ മോഡലുകൾക്ക് പുറമേ, ഒരു വിജറ്റിൽ നിന്ന് മറ്റൊന്നിലേക്ക് ഇൻപുട്ട് ഫോക്കസ് കൈമാറുന്നതിനുള്ള ഒരു സംവിധാനവുമുണ്ട്. ഒബ്ജക്റ്റുകളെ ഗ്രൂപ്പുകളായി സംയോജിപ്പിക്കാൻ കഴിയും - അനുബന്ധ ഉറവിടങ്ങളുടെ ആവശ്യമായ മൂല്യങ്ങൾ സജ്ജീകരിച്ചുകൊണ്ട് ഇത് ചെയ്യാൻ കഴിയും, അല്ലെങ്കിൽ അത് സിസ്റ്റത്തിന് വിട്ടുകൊടുക്കാം. പിന്നീടുള്ള സന്ദർഭത്തിൽ, ബിൽറ്റ്-ഇൻ നിയമങ്ങൾ ഉപയോഗിച്ച് മോട്ടിഫ് സ്വയമേവ വിജറ്റ് ലിങ്ക് ചെയ്യുന്നു. ഉദാഹരണത്തിന്, XmMessageBox ക്ലാസിന്റെ ഒരു ഒബ്‌ജക്‌റ്റിൽ മൂന്ന് ഗ്രൂപ്പുകൾ അടങ്ങിയിരിക്കുന്നു: ഒന്ന് “പ്രധാന” ഡയലോഗ് ഒബ്‌ജക്റ്റ് (XmForm ക്ലാസ്), രണ്ടാമത്തേത് ഉപയോക്താവിന് സന്ദേശം അവതരിപ്പിക്കുന്ന “ലേബൽ”, മൂന്നാമത്തേത് അമർത്താവുന്നത് ബട്ടണുകൾ.

ഇൻപുട്ട് ഫോക്കസ് ഒരു ഒബ്ജക്റ്റിൽ നിന്ന് (ഒരു ഗ്രൂപ്പിൽ) മറ്റൊന്നിലേക്കും ഗ്രൂപ്പിൽ നിന്ന് ഗ്രൂപ്പിലേക്കും കൈമാറ്റം ചെയ്യപ്പെടുന്നു.

ഒരു ഗ്രൂപ്പിനുള്ളിൽ ഫോക്കസ് കൈമാറുന്നത് അമ്പടയാള കീകൾ ഉപയോഗിച്ചും ഗ്രൂപ്പിൽ നിന്ന് ഗ്രൂപ്പിലേക്ക് ടാബ് കീ ഉപയോഗിച്ചുമാണ് ചെയ്യുന്നത് (അതുകൊണ്ടാണ് ഗ്രൂപ്പുകളെ ടാബ് ഗ്രൂപ്പുകൾ എന്ന് വിളിക്കുന്നത്). ഒരു ഗ്രൂപ്പിന് ഫോക്കസ് നൽകുമ്പോൾ, ആ ഗ്രൂപ്പിലെ ഇൻപുട്ട് ഫോക്കസ് ഫോക്കസ് സ്വീകരിക്കാൻ കഴിയുന്ന ആദ്യത്തെ ഒബ്‌ജക്റ്റിന് നൽകുന്നു (അനുയോജ്യമായ ഉറവിടം ഉചിതമായ മൂല്യത്തിലേക്ക് സജ്ജീകരിച്ച് ഒരു വസ്തുവിനെ ഫോക്കസ് സ്വീകരിക്കുന്നതിൽ നിന്ന് തടയാൻ കഴിയും). ഒരു ഗ്രൂപ്പിനുള്ളിൽ ഇൻപുട്ട് ഫോക്കസ് കൈമാറ്റം ചെയ്യപ്പെടുന്ന ക്രമം അതിന്റെ വിജറ്റുകൾ സൃഷ്ടിക്കുന്ന ക്രമത്തിന് തുല്യമാണ്. ഈ സാഹചര്യത്തിൽ, സാധാരണയായി കീ കോമ്പിനേഷൻ എതിർ ദിശയിലേക്ക് ഫോക്കസ് നീക്കുന്നു.

ഇൻപുട്ട് ഫോക്കസ് നിയന്ത്രിക്കാൻ ഉപയോഗിക്കാവുന്ന നിരവധി ദിനചര്യകളും മോട്ടിഫ് നൽകുന്നു.

Lesstif അടുത്തിടെ മോട്ടിഫിന്റെ ഒരു ഫ്രീവെയർ അനലോഗ് പുറത്തിറക്കി, അതിനോട് പൂർണ്ണമായും പൊരുത്തപ്പെടുന്നു. Lesstif എന്നാണ് ഇതിന്റെ പേര്. ഇത് അതിന്റെ യഥാർത്ഥ രൂപത്തിൽ സൗജന്യമായി ലഭ്യമാണ് കൂടാതെ ഇന്റർനെറ്റിലെ വിവിധ പ്ലാറ്റ്ഫോമുകൾക്കായി സമാഹരിച്ചിരിക്കുന്നു.

Tk/tcl

Tcl - read: - എന്നതിന്റെ അർത്ഥം: "ടൂൾ കമാൻഡ് ലാംഗ്വേജ്" (ഇൻസ്ട്രുമെന്റൽ കമാൻഡ് ലാംഗ്വേജ്). അതിൽ രണ്ട് ഭാഗങ്ങളുണ്ട്: ഭാഷയും ലൈബ്രറിയും.

tcl ഭാഷയ്ക്ക് ലളിതമായ ഒരു വാക്യഘടനയുണ്ട്, അത് പ്രോഗ്രാം ചെയ്യാൻ എളുപ്പമാണ്. അതിന്റെ യഥാർത്ഥ രൂപത്തിൽ, tcl ഒരു വ്യാഖ്യാതാവാണ്. നൈപുണ്യമുള്ള പ്രോഗ്രാമർക്ക് അന്തിമ ആപ്ലിക്കേഷനുകൾ മാത്രമല്ല, ടിസിഎൽ ഭാഷയുടെ സ്വന്തം വിപുലീകരണവും സ്വന്തം ശൈലി സൃഷ്ടിക്കുന്നതിനും പരിപാലിക്കുന്നതിനും ഒരു ശക്തമായ ഉപകരണം നൽകുന്ന ഫംഗ്ഷനുകൾ അല്ലെങ്കിൽ പ്രോഗ്രാമുകൾ പോലുള്ള പുതിയ നിർമ്മാണങ്ങൾ സൃഷ്ടിക്കാൻ നിങ്ങളെ അനുവദിക്കുന്നു.

ആപ്ലിക്കേഷൻ പ്രോഗ്രാമുകളിൽ TCL ഭാഷാ വ്യാഖ്യാതാക്കളെ ഉപയോഗിക്കാനുള്ള കഴിവ് tcl ലൈബ്രറി നൽകുന്നു, അതിനാൽ പ്രോഗ്രാമുകളിൽ TCL കമാൻഡ് ഭാഷയിൽ എഴുതിയ സ്ക്രിപ്റ്റുകൾ ഉൾപ്പെടുന്നു. ലൈബ്രറിയിൽ TCL ഭാഷയ്‌ക്കായുള്ള ഒരു ലെക്സിക്കൽ അനലൈസർ അടങ്ങിയിരിക്കുന്നു, ബിൽറ്റ്-ഇൻ TCL കമാൻഡുകൾ നടപ്പിലാക്കുന്ന ഫംഗ്‌ഷനുകൾ, കൂടാതെ TCL കമാൻഡുകളിലേക്ക് ഉപയോക്തൃ സബ്‌റൂട്ടീനുകൾ (ഫംഗ്ഷൻ കോളുകൾ) അറ്റാച്ചുചെയ്യാൻ നിങ്ങളെ അനുവദിക്കുന്നു. C, C++ എന്നിവയ്‌ക്ക് ഈ ക്രമീകരണം സാധ്യമാണ്.

X വിൻഡോ എൻവയോൺമെന്റിൽ ഗ്രാഫിക്കൽ യൂസർ ഇന്റർഫേസുകൾ വികസിപ്പിക്കുന്നതിനുള്ള ഒരു മോട്ടിഫ്-അനുയോജ്യ ടൂൾകിറ്റാണ് Tk. ഇതിനുപുറമെ സ്റ്റാൻഡേർഡ് ഇന്റർഫേസ് C, C++ എന്നിവയ്‌ക്കൊപ്പം, tcl-ലേക്കുള്ള ഒരു ഇന്റർഫേസ് ഇതിൽ ഉൾപ്പെടുന്നു, tcl കമാൻഡ് ഇന്റർപ്രെറ്റർ പരിതസ്ഥിതിയിൽ നിന്ന് Tk സൗകര്യങ്ങൾ ഉപയോഗിക്കാനുള്ള കഴിവ് നൽകുന്നു. ഇതിനർത്ഥം, C, C++ എന്നിവയിലെ സ്റ്റാൻഡേർഡ് പ്രോഗ്രാമിംഗിന് പുറമേ, ആപ്ലിക്കേഷന്റെ ഇന്റർഫേസ് ഭാഗങ്ങൾ TCL ഭാഷയിൽ സ്ക്രിപ്റ്റുകളുടെ രൂപത്തിൽ നടപ്പിലാക്കാനും ഈ ഇന്റർഫേസ് ഭാഗങ്ങൾ (ഡയലോഗുകൾ, സ്ക്രീൻ ലേഔട്ടുകൾ മുതലായവ) ചലനാത്മകമായി എഡിറ്റുചെയ്യാനും കഴിയും. അവസാന പ്രോഗ്രാമിന്റെ പ്രവർത്തനം, tcl കമാൻഡുകൾ ഉപയോഗിച്ച്

ടിസിഎൽ ഭാഷ മാത്രം ഉപയോഗിച്ച് ഗ്രാഫിക്കൽ യൂസർ ഇന്റർഫേസുകളുള്ള ആപ്ലിക്കേഷനുകൾ സൃഷ്ടിക്കാൻ വിഷ് വിൻഡോ എൻവയോൺമെന്റ് നിങ്ങളെ അനുവദിക്കുന്നു.

സമാനമായ രേഖകൾ

    പ്രോഗ്രാമിംഗ് സിസ്റ്റങ്ങളും അവയുടെ ഗ്രാഫിക് കഴിവുകളും. "ഒരു പ്രോഗ്രാമിംഗ് ഭാഷയുടെ ഗ്രാഫിക്കൽ കഴിവുകൾ" (അടിസ്ഥാന, പാസ്കൽ പ്രോഗ്രാമിംഗ് ഭാഷകളുടെ ഉദാഹരണം ഉപയോഗിച്ച്) വിഷയത്തിന്റെ അടിസ്ഥാന സ്കൂൾ വിദ്യാർത്ഥികളുടെ ഫലപ്രദമായ പഠനം പ്രോത്സാഹിപ്പിക്കുന്ന ഒരു മൾട്ടിമീഡിയ കോഴ്സിന്റെ വികസനം.

    തീസിസ്, 12/29/2010 ചേർത്തു

    സ്‌ക്രീൻ ഗ്രാഫിക് ഘടകങ്ങൾ, സിസ്റ്റം ഒബ്‌ജക്‌റ്റുകൾ, ഫംഗ്‌ഷനുകൾ. ഒരു ഉപകരണവുമായുള്ള ഉപയോക്തൃ ഇടപെടലിനുള്ള മാർഗങ്ങളുടെ ഒരു സംവിധാനം. വ്യക്തിഗത കമ്പ്യൂട്ടറുകളുടെ ഗ്രാഫിക്കൽ യൂസർ ഇന്റർഫേസുകളുടെ ചരിത്രം, അവയുടെ വർഗ്ഗീകരണം. X വിൻഡോ സിസ്റ്റം.

    അവതരണം, 05/22/2012 ചേർത്തു

    പ്രോഗ്രാമിംഗ്, അടിസ്ഥാന ഗ്രാഫിക്സ് കഴിവുകൾ. കാഴ്‌ചയ്‌ക്കുള്ള അടിസ്ഥാന ഘടനകളും ആർഗ്യുമെന്റുകളുള്ള രണ്ട് കൺസ്‌ട്രക്‌ടറുകളും. പോയിന്റിന്റെ കൂടുതൽ കോർഡിനേറ്റുകളും ഒരു പുതിയതിന്റെ സമാരംഭവും. ദീർഘചതുരത്തിന്റെ മുകളിൽ ഇടത് മൂലയുടെ കോർഡിനേറ്റുകൾ സംഭരിക്കുകയും മാറ്റുകയും ചെയ്യുന്നു.

    ലബോറട്ടറി ജോലി, 12/01/2011 ചേർത്തു

    വെക്റ്റർ കമ്പ്യൂട്ടർ ഗ്രാഫിക്സ്. ഗ്രാഫിക് പ്രാകൃതങ്ങൾ. പാസ്കൽ പ്രോഗ്രാമിംഗ് ഭാഷയുടെ ഗ്രാഫിക്സ് കഴിവുകൾ. പാസ്കൽ പ്രോഗ്രാമിംഗ് ഭാഷയിൽ ഗ്രാഫിക്സ് പഠിക്കുന്നതിനുള്ള മാർഗ്ഗനിർദ്ദേശങ്ങൾ. പ്ലോട്ടിംഗ് ഫംഗ്ഷൻ ഗ്രാഫുകൾ.

    കോഴ്‌സ് വർക്ക്, 06/13/2007 ചേർത്തു

    VisualC++ (6.0, .NET) ഉപയോഗിച്ച് വിൻഡോസ് ഓപ്പറേറ്റിംഗ് സിസ്റ്റത്തിനായുള്ള ഒരു പ്രോഗ്രാമിന്റെ വികസനം. ഒരു ഉപകരണത്തിന്റെ (ഇലക്ട്രിക് കെറ്റിൽ) പ്രവർത്തനത്തിന്റെ സോഫ്റ്റ്വെയർ മോഡലിംഗിന്റെ അടിസ്ഥാനകാര്യങ്ങളുടെ പരിഗണന. ഉപകരണ ക്ലാസുകളും അതിന്റെ ഗ്രാഫിക്കൽ ഇന്റർഫേസും സൃഷ്ടിക്കുന്നതിനുള്ള നിയമങ്ങൾ.

    കോഴ്‌സ് വർക്ക്, 06/03/2014 ചേർത്തു

    കമ്പ്യൂട്ടർ ഗ്രാഫിക്സ്. ഒരു കമ്പ്യൂട്ടറിൽ ഗ്രാഫിക് വിവരങ്ങളുടെ അവതരണം. ഗ്രാഫിക് ഫോർമാറ്റുകൾ. ഗ്രാഫിക് എഡിറ്റർ. വെക്റ്റർ ഗ്രാഫിക്സ്. കോറൽ ഡ്രാ. പ്രോഗ്രാമിന്റെയും ഇന്റർഫേസിന്റെയും സവിശേഷതകൾ. CorelDraw പ്രോഗ്രാമിന്റെ സാങ്കേതിക കഴിവുകളും ഉപയോഗവും.

    കോഴ്‌സ് വർക്ക്, 05/19/2007 ചേർത്തു

    ആധുനിക പ്രശ്നങ്ങൾ പരിഹരിക്കുന്നതിൽ വിതരണം ചെയ്ത കമ്പ്യൂട്ടിംഗ് സിസ്റ്റങ്ങളുടെ പങ്ക്. ഉപകരണ സംവിധാനംസമാന്തര പ്രോഗ്രാമുകൾ വികസിപ്പിക്കുന്നതിനുള്ള ഡിവിഎം. ഒരു ഔപചാരിക ഗ്രാഫിക്കൽ ഇന്റർഫേസ് മോഡൽ നിർമ്മിക്കുന്നതിനുള്ള ഉപകരണങ്ങൾ. ഡിവിഎം സിസ്റ്റത്തിന്റെ ഗ്രാഫിക്കൽ ഇന്റർഫേസിന്റെ ആവശ്യകതകൾ.

    കോഴ്‌സ് വർക്ക്, 10/15/2010 ചേർത്തു

    ഡെൽഫി 7 പരിസ്ഥിതിയും അതിന്റെ അടിസ്ഥാന ഗ്രാഫിക്കൽ കഴിവുകളും ഉപയോഗിച്ചുള്ള പ്രോഗ്രാമിംഗിന്റെ സാരാംശം. ഒരു ഓഫ്‌ലൈൻ കംപൈൽ ചെയ്ത സോഫ്റ്റ്‌വെയർ മൊഡ്യൂളിന്റെ ഘടനയും അതിന്റെ തത്വങ്ങളും. ഗ്രാഫിക് നടപടിക്രമങ്ങൾ, ഒരു ആർക്ക്, വൃത്തം, ദീർഘവൃത്തം എന്നിവ നിർമ്മിക്കുന്നതിനുള്ള അടിസ്ഥാന സാങ്കേതിക വിദ്യകൾ.

    കോഴ്‌സ് വർക്ക്, 12/16/2011 ചേർത്തു

    കമ്പ്യൂട്ടർ ഗ്രാഫിക്സ് പ്രയോഗത്തിന്റെ മേഖലകൾ. കമ്പ്യൂട്ടർ ഗ്രാഫിക്‌സിന്റെ തരങ്ങൾ. വർണ്ണ മിഴിവും വർണ്ണ മോഡലുകളും. ഗ്രാഫിക് വിവരങ്ങൾ സൃഷ്ടിക്കുന്നതിനും കാണുന്നതിനും പ്രോസസ്സ് ചെയ്യുന്നതിനുമുള്ള സോഫ്റ്റ്വെയർ. വേഡ് പ്രോസസ്സറുകൾ, ഗ്രാഫിക് എഡിറ്റർമാർ എന്നിവയുടെ ഗ്രാഫിക് കഴിവുകൾ.

    ടെസ്റ്റ്, 06/07/2010 ചേർത്തു

    ഗ്രാഫിക്കൽ യൂസർ ഇന്റർഫേസുകളുടെ പരിണാമം. X വിൻഡോ സിസ്റ്റവും വിൻഡോ മാനേജർമാരും. കെഡിഇ, ഗ്നോം ഡെസ്ക്ടോപ്പിന്റെയും ആപ്ലിക്കേഷന്റെയും വിവരണം. ഇന്റർഫേസ് ഓർഗനൈസേഷന്റെ അടിസ്ഥാന തത്വങ്ങളുടെ അവലോകനം വിൻഡോസ് സിസ്റ്റം, അതിന്റെ ആപ്ലിക്കേഷൻ സോഫ്റ്റ്‌വെയർ പാക്കേജിന്റെ വിവരണം.

ആപ്ലിക്കേഷൻ പ്രോഗ്രാമുകൾ വികസിപ്പിക്കുമ്പോൾ, അത് തോന്നുന്നു ഉപയോഗപ്രദമായ സൃഷ്ടി GUI. വാസ്തവത്തിൽ, ഉപയോക്താവിന്റെ ഭാഗത്തുനിന്ന് പ്രോഗ്രാമിംഗ് ഇല്ലാതെ ഒരു നിശ്ചിത ക്ലാസിലെ പ്രശ്നങ്ങൾ കണക്കാക്കുന്നതിനുള്ള ഒരു അന്തരീക്ഷം സൃഷ്ടിക്കുന്നതാണ് ഇത്. ചട്ടം പോലെ, സമാനമായ പ്രശ്നങ്ങൾ ആവർത്തിച്ച് പരിഹരിക്കപ്പെടുമെന്ന് പ്രതീക്ഷിക്കുന്നെങ്കിൽ, നിരവധി പാരാമീറ്ററുകളുള്ള പ്രശ്നങ്ങൾക്കായി അത്തരം ഇന്റർഫേസുകൾ വികസിപ്പിക്കുന്നത് അർത്ഥമാക്കുന്നു. ഈ സാഹചര്യത്തിൽ, ഒരു നിശ്ചിത പാരാമീറ്ററുകൾ ഉപയോഗിച്ച് പ്രശ്നം പരിഹരിക്കുന്നതിന്റെ ഫലങ്ങൾ (സാധാരണയായി ഗ്രാഫിക്കൽ രൂപത്തിൽ) നേടുന്നതിന് ഉപയോക്താവിനെ സഹായിക്കുന്ന ഒരു ഗ്രാഫിക്കൽ ഇന്റർഫേസ് വികസിപ്പിക്കുന്നത് നല്ലതാണ്. വിദ്യാഭ്യാസപരമായ ജോലികൾ സൃഷ്ടിക്കുമ്പോൾ അത്തരമൊരു ഇന്റർഫേസ് സൗകര്യപ്രദമായിരിക്കും, കാരണം ഈ സാഹചര്യത്തിൽ വിദ്യാർത്ഥി പ്രധാന ശ്രദ്ധ പ്രോഗ്രാമിംഗിലോ പ്രശ്നം പരിഹരിക്കുന്നതിനോ അല്ല, മറിച്ച് ആവശ്യമായ പാരാമീറ്ററുകൾ തിരഞ്ഞെടുക്കുന്നതിലും ഫലമായുണ്ടാകുന്ന ഫലങ്ങൾ വിശകലനം ചെയ്യുന്നതിലും മനസ്സിലാക്കുന്നതിലും ചെലവഴിക്കുന്നു.

ശാസ്ത്രീയവും കൂടാതെ/അല്ലെങ്കിൽ വിദ്യാഭ്യാസപരവുമായ പ്രശ്നങ്ങൾ പരിഹരിക്കുമ്പോൾ ഒരു ഗ്രാഫിക്കൽ ഇന്റർഫേസിന്റെ നിർബന്ധിത ഘടകങ്ങൾ ഇതായിരിക്കണമെന്ന് മുകളിലുള്ള ഹ്രസ്വ ആമുഖത്തിൽ നിന്ന് വ്യക്തമാണ്:

1. ഗ്രാഫിക്കൽ കണക്കുകൂട്ടൽ ഫലങ്ങൾ പ്രദർശിപ്പിക്കുന്നതിന് ഒന്നോ അതിലധികമോ വിൻഡോകൾ.

2. നിങ്ങൾക്ക് ടാസ്‌ക് പാരാമീറ്ററുകളുടെ മൂല്യങ്ങൾ ക്രമീകരിക്കാനും കൂടാതെ/അല്ലെങ്കിൽ മാറ്റാനും കഴിയുന്ന നിരവധി എഡിറ്റ് ചെയ്യാവുന്ന വിൻഡോകൾ.

3. കണക്കുകൂട്ടൽ പ്രക്രിയ ആരംഭിക്കാനും നിർത്താനും നിങ്ങളെ അനുവദിക്കുന്ന നിയന്ത്രണ ബട്ടണുകൾ, ഫലങ്ങൾ വീണ്ടും വരയ്ക്കുക, ചുമതലയിൽ നിന്ന് പുറത്തുകടക്കുക.

4. വിശദീകരണ കുറിപ്പുകൾ (സ്റ്റാറ്റിക് ടെക്സ്റ്റ്).

തീർച്ചയായും, സ്ക്രോൾ ചെയ്യാവുന്ന ലിസ്റ്റുകൾ, നിരവധി ഓപ്ഷനുകളിലൊന്ന് തിരഞ്ഞെടുക്കുന്നതിനുള്ള റേഡിയോ ബട്ടണുകൾ മുതലായവ പോലുള്ള മറ്റ് നിയന്ത്രണങ്ങൾ സാധ്യമാണ്, എന്നാൽ ഈ ട്യൂട്ടോറിയലിൽ ഞങ്ങൾ ലിസ്റ്റുചെയ്തിരിക്കുന്ന നാല് തരങ്ങളിൽ മാത്രമേ വിശദമായി നോക്കൂ. ചിത്രം 8 കാണിക്കുന്നു ഏറ്റവും ലളിതമായ ഇന്റർഫേസ്, സമാനമായ ആവൃത്തികളുള്ള രണ്ട് ഹാർമോണിക് ആന്ദോളനങ്ങൾ കൂട്ടിച്ചേർത്ത് രൂപപ്പെടുന്ന ബീറ്റുകൾ പഠിക്കാൻ സൃഷ്ടിച്ചതാണ്. ചിത്രത്തിൽ നിന്ന് കാണാൻ കഴിയുന്നതുപോലെ, മുകളിൽ പറഞ്ഞ എല്ലാ ഘടകങ്ങളും അതിൽ ഉണ്ട്.

അത്തരമൊരു ഇന്റർഫേസ് സൃഷ്ടിക്കുന്നതിന്, നിങ്ങൾക്ക് ഗ്രാഫിക്കൽ ഔട്ട്പുട്ട് ഫംഗ്ഷനുകളും ഉപയോഗിക്കാം പ്രത്യേക പ്രവർത്തനം, ഡ്രോയിംഗുമായുള്ള സംവേദനാത്മക ഉപയോക്തൃ ഇടപെടലിനായി രൂപകൽപ്പന ചെയ്‌തിരിക്കുന്നു. ഈ പ്രവർത്തനത്തെ uicontrol എന്ന് വിളിക്കുന്നു. എന്നാൽ ജോലി ലളിതമാക്കുന്നതിനും സമാനമായ ഇന്റർഫേസ് ഘടകങ്ങൾ സൃഷ്ടിക്കുന്നതിനും, MATLAB സിസ്റ്റത്തിന് ഒരു പ്രത്യേക പ്രോഗ്രാം ഉണ്ട്, അത് കോഡ് എഴുതാതെ തന്നെ വിഷ്വൽ പ്രോഗ്രാമിംഗ് തലത്തിൽ ആവശ്യമായ ഘടകങ്ങൾ സൃഷ്ടിക്കാൻ നിങ്ങളെ അനുവദിക്കുന്നു.

അരി. 8. "ബീറ്റ്" പ്രശ്നം പരിഹരിക്കുന്നതിനുള്ള ഏറ്റവും ലളിതമായ ഗ്രാഫിക്കൽ യൂസർ ഇന്റർഫേസ്

9.1 ഇന്റർഫേസിന്റെ രൂപം സൃഷ്ടിക്കുന്നു

ഈ വിഭാഗത്തിൽ, ഗ്രാഫിക്കൽ (വിഷ്വൽ) പ്രോഗ്രാമിംഗ് ടൂളുകൾ ഉപയോഗിച്ച് ഒരു ഗ്രാഫിക്കൽ ഇന്റർഫേസിന്റെ (GUI -GraphicsUserInterface) രൂപം വികസിപ്പിക്കുന്നതിന് MATLAB ഉപയോഗിക്കുന്നത് ഞങ്ങൾ നോക്കും. വിളിക്കാൻ വിഷ്വൽ എഡിറ്റർനിങ്ങൾ MATLAB കമാൻഡ് വിൻഡോയിൽ കമാൻഡ് ഗൈഡ് ടൈപ്പ് ചെയ്യേണ്ടതുണ്ട്. ഒരു നിശ്ചിത സമയത്തിന് ശേഷം, നിങ്ങളുടെ കമ്പ്യൂട്ടറിന്റെ വേഗത അനുസരിച്ച്, രണ്ട് പുതിയ വിൻഡോകൾ ദൃശ്യമാകും, ചിത്രം 9 ൽ കാണിച്ചിരിക്കുന്നു. അവയിലൊന്നാണ് നിയന്ത്രണ പാനൽ ( നിയന്ത്രണ പാനൽ, ഇടതുവശത്തുള്ള ചിത്രത്തിൽ) ആകൃതി അല്ലെങ്കിൽ ഡ്രോയിംഗ് ഏരിയ (ചിത്രം, വലതുവശത്തുള്ള ചിത്രത്തിൽ). ഈ ജാലകങ്ങൾ ഓവർലാപ്പ് ചെയ്‌തേക്കാം, എന്നാൽ അവതരണത്തിന്റെ വ്യക്തതയ്ക്കായി ഞങ്ങൾ അവയെ വശങ്ങളിലായി സ്ഥാപിച്ചിരിക്കുന്നു. ഗൈഡ് വിളിക്കുന്നതിന് മുമ്പ് തുറന്ന ചിത്രം ഇല്ലെങ്കിൽ മുകളിൽ കാണിച്ചിരിക്കുന്ന ചിത്രം സ്ക്രീനിൽ ദൃശ്യമാകും. ഒരു ചിത്രം വരച്ചതിന് ശേഷം ഗൈഡ് ഫംഗ്ഷൻ വിളിക്കുകയാണെങ്കിൽ, അത് ശൂന്യമായതിന് പകരം തുറക്കും. ഞങ്ങൾ ആദ്യം മുതൽ ഒരു ഗ്രാഫിക്കൽ ഇന്റർഫേസ് സൃഷ്ടിക്കുന്നത് നോക്കും.

ഒരു GUI സൃഷ്‌ടിക്കുന്നതിന് മുമ്പ്, ഒരു ഇന്റർഫേസ് ആയി നിങ്ങൾ ആഗ്രഹിക്കുന്നത് "ബ്ലൂപ്രിന്റ്" ചെയ്യുന്നത് നല്ലതാണ്. നമുക്ക് മൂന്നിന്റെ ഒരു ഉദാഹരണ ഔട്ട്പുട്ട് നോക്കാം വ്യത്യസ്ത സിഗ്നലുകൾമൂന്ന് സബ്‌വിൻഡോകളിൽ, ഉയർന്ന തലത്തിലുള്ള ഗ്രാഫിക്‌സിന്റെ അടിസ്ഥാനത്തിൽ ഓപ്പറേറ്റർമാർ സബ്‌പ്ലോട്ട് (3,1,k) നിർണ്ണയിക്കും, ഇവിടെ k എന്നത് പ്ലോട്ട് നമ്പറാണ്. കൂടാതെ,

അരി. 9. ദൃശ്യത്തിന്റെ പൊതുവായ കാഴ്ച ഗ്രാഫിക് എഡിറ്റർകൂടാതെ വിൻഡോകൾ എഡിറ്റുചെയ്യുന്നു

ഗ്രാഫുകളുള്ള യഥാർത്ഥ സിൽസിന്റെ വലതുവശത്ത്, മൂന്ന് എഡിറ്റ് ചെയ്യാനാകാൻ ഞങ്ങൾ ആഗ്രഹിക്കുന്നു

നിങ്ങൾക്ക് പ്രവേശിക്കാൻ/എഡിറ്റ് ചെയ്യാൻ കഴിയുന്ന ഫീൽഡുകൾ സംഖ്യാ മൂല്യങ്ങൾമൂന്ന്

വേരിയബിളുകൾ. ഈ വേരിയബിളുകൾ അനിയന്ത്രിതമായ മൂല്യങ്ങൾ എടുക്കട്ടെ.

ഈ അവതരണത്തിൽ, ഞങ്ങളുടെ എഡിറ്റ് ചെയ്യാവുന്ന ജാലകങ്ങൾ പരിശോധിക്കാൻ ഞങ്ങൾ സജ്ജമാക്കില്ല

നൽകിയ മൂല്യങ്ങൾ ഏതെങ്കിലും വ്യവസ്ഥകൾ പാലിക്കുന്നുണ്ടോ, ഇത് സാധ്യമാണെങ്കിലും

കഴിയും. നമുക്ക് ഈ വേരിയബിളുകളെ N, R, C എന്ന് വിളിക്കാം. ഈ ഉദാഹരണത്തിൽ നമ്മൾ അർത്ഥമാക്കുന്നത് കണക്കുകൂട്ടൽ എന്നാണ്

ടെർമിനലുകളിൽ N നമ്പറുള്ള ഒരു സിഗ്നൽ പ്രയോഗിക്കുമ്പോൾ RC സർക്യൂട്ടിലെ കറന്റ്, R, C എന്നിവ പ്രതിരോധമാണ്

സർക്യൂട്ടിലെ വോൾട്ടേജും കപ്പാസിറ്റൻസും ( വിശദമായ വിവരണംജോലികൾ പ്രധാനത്തിന്റെ 10-ാം ഖണ്ഡിക കാണുക

മാനുവൽ ടെക്സ്റ്റ്).

മൂല്യങ്ങൾ മാറ്റാൻ ഞങ്ങളുടെ ഇന്റർഫേസ് അനുവദിക്കണം

N, R, C എന്നിവയുടെ മൂല്യങ്ങൾ, മൂന്നിൽ ലഭിക്കുന്നു

ഒന്ന് ഉപജാലക സിഗ്നലിന് മുകളിൽ മറ്റൊന്ന് (വോൾട്ടേജ്,

ടെർമിനലുകളിലേക്ക് വിതരണം ചെയ്തു), സിഗ്നലിന്റെ ഡെറിവേറ്റീവ്

ലാ, പ്രതിരോധ വോൾട്ടേജ് യു ആർ. കൂടാതെ

ഗ്രാഫുകളും എഡിറ്റ് ചെയ്യാവുന്ന വിൻഡോകളും പ്രദർശിപ്പിക്കുന്നതിനുള്ള വിൻഡോകൾ

R u n E x i t

ഇൻപുട്ട് ഇന്റർഫേസ് പാനലിൽ സ്ഥാപിക്കണം

രണ്ട് ബട്ടണുകൾ കൂടി ഉണ്ട് - RUN - പ്രോഗ്രാം ആരംഭിക്കുക

അരി. 10. ഇന്റർഫേസ് കാഴ്ച

അക്കൗണ്ടും എക്സിറ്റും - അവസാനിപ്പിക്കലും ഇല്ലാതാക്കലും

ഗ്രാഫിക്സ് വിൻഡോ.

ആദ്യ ഘട്ടത്തിൽ അത് വികസിപ്പിക്കേണ്ടത് ആവശ്യമാണ് രൂപംഇന്റർഫേസ്. അങ്ങനെ സംഭവിക്കട്ടെ

ഞങ്ങളുടെ പ്രാഥമിക സ്കെച്ച് അനുസരിച്ച്, ഇന്റർഫേസ് ഏകദേശം നോക്കണം

താഴെ (ചിത്രം 10). ഈ ഇന്റർഫേസിന്റെ ഘടകങ്ങൾ മൂന്ന് വിൻഡോകളാണ്

ഗ്രാഫുകളുടെ പ്രദർശനം (നിയന്ത്രണ പാനലിന്റെ അടിസ്ഥാനത്തിൽ അക്ഷങ്ങൾ), മൂന്ന് സ്റ്റാറ്റിക് ലിഖിതങ്ങൾ N, R, C (ടെക്സ്റ്റ്), ഡാറ്റ നൽകുന്നതിനുള്ള / എഡിറ്റ് ചെയ്യുന്നതിനുള്ള മൂന്ന് വിൻഡോകൾ (എഡിറ്റ്), രണ്ട് ബട്ടണുകൾ (പുഷ്).

ഗ്രാഫുകൾ പ്രദർശിപ്പിക്കുന്ന ഉപജാലകങ്ങൾ സൃഷ്ടിക്കുന്നതിന്, ചിത്രത്തിൽ വലതുവശത്ത് കാണിച്ചിരിക്കുന്ന ബട്ടൺ ഉപയോഗിക്കുക (വിൻഡോയും അച്ചുതണ്ടുകളും). നിയന്ത്രണ പാനലിലെ ഈ ഘടകത്തിൽ ക്ലിക്കുചെയ്‌ത് ഡ്രോയിംഗ് പാനലിലേക്ക് മൗസ് നീക്കുന്നതിലൂടെ, നിങ്ങൾ ഒരു ക്രോസ് സ്ഥാപിക്കേണ്ടതുണ്ട്, അത് മൗസിന്റെ അഗ്രഭാഗത്തായിരിക്കും.

ആദ്യത്തെ ഉപജാലകത്തിന്റെ മുകളിൽ ഇടത് മൂല ഉണ്ടായിരിക്കേണ്ട സ്ഥലം. ഇടത് മൌസ് ബട്ടൺ അമർത്തിപ്പിടിച്ചുകൊണ്ട്, ഫലമായുണ്ടാകുന്ന ദീർഘചതുരം നിങ്ങൾ വലിച്ചിടേണ്ടതുണ്ട് ആവശ്യമായ വലുപ്പങ്ങൾ. ഇതിനുശേഷം, മറ്റ് രണ്ട് വിൻഡോകൾ നിർമ്മിക്കുന്നതിനുള്ള നടപടിക്രമം സമാനമായ രീതിയിൽ ആവർത്തിക്കുന്നു.

എഡിറ്റ് ചെയ്യാവുന്ന ഇൻപുട്ട് വിൻഡോകൾ സൃഷ്ടിക്കാൻ, വലതുവശത്ത് കാണിച്ചിരിക്കുന്ന എഡിറ്റ് ബട്ടൺ ഉപയോഗിക്കുക. അച്ചുതണ്ടുകൾ ഉപയോഗിച്ച് സിൽസ് സൃഷ്ടിക്കുമ്പോൾ അതേ രീതിയിൽ ഇത് ഉപയോഗിക്കുന്നു. ആദ്യം, ഒരു ക്രോസ് ലോഡുചെയ്‌ത ഒരു മൗസ് ദൃശ്യമാകുന്നു, അതിനൊപ്പം ഒരു ഇൻപുട്ട് ദീർഘചതുരം നിർമ്മിക്കുന്നു.

ഡ്രോയിംഗ് പാനലിലെ ലേബലുകൾ ടെക്സ്റ്റ് ബട്ടൺ ഉപയോഗിച്ചാണ് സൃഷ്ടിച്ചിരിക്കുന്നത്, അത് മുകളിൽ വിവരിച്ച അതേ രീതിയിൽ നീക്കുകയും വിന്യസിക്കുകയും ചെയ്യുന്നു. സ്റ്റാറ്റിക് ടെക്സ്റ്റ് ഏരിയയ്ക്കുള്ളിൽ ഏതെങ്കിലും തരത്തിലുള്ള ടെക്സ്റ്റ് ദൃശ്യമാകുന്നതിന്

ലിഖിതം, നിങ്ങൾ പ്രോപ്പർട്ടി എഡിറ്ററുമായി പ്രവർത്തിക്കേണ്ടതുണ്ട്, അതിനെ ഒന്നുകിൽ പ്രോപ്പർട്ടി എഡിറ്റർ ബട്ടൺ ഉപയോഗിച്ച് അല്ലെങ്കിൽ ഉപയോഗിക്കുന്നു ഇരട്ട ഞെക്കിലൂടെഡ്രോയിംഗ് പാനലിലെ അനുബന്ധ ഒബ്‌ജക്റ്റിലെ ഇടത് മൌസ് ബട്ടൺ.

ബട്ടണുകൾ സൃഷ്‌ടിക്കാനും സ്ഥാപിക്കാനും, പുഷ് എന്ന് ലേബൽ ചെയ്‌തിരിക്കുന്ന പാനൽ ഉപയോഗിക്കുക. ഒരു ബട്ടൺ സ്ഥാപിക്കുകയും അതിന്റെ വലുപ്പം തിരഞ്ഞെടുക്കുകയും ചെയ്യുന്ന രീതി എഡിറ്റിംഗ് വിൻഡോയ്ക്കും സ്റ്റാറ്റിക് ടെക്സ്റ്റ് വിൻഡോയ്ക്കും മുകളിൽ വിവരിച്ച രീതിക്ക് സമാനമാണ്.

ഔട്ട്‌പുട്ട്, എഡിറ്റിംഗ് വിൻഡോകൾ, സ്റ്റാറ്റിക് ടെക്‌സ്‌റ്റ് വിൻഡോകൾ, ബട്ടണുകൾ, അതുപോലെ നിർമ്മിച്ച മറ്റ് ഒബ്‌ജക്‌റ്റുകൾ എന്നിവ അലൈൻമെന്റ് പാനൽ (അലൈൻമെന്റ് ടൂളുകൾ) ഉപയോഗിച്ച് അവയ്‌ക്കിടയിലുള്ള ചില സ്‌പെയ്‌സുകൾ ക്രമീകരിക്കാം.

ഇത് ചെയ്യുന്നതിന്, നിയന്ത്രണ പാനലിലെ അനുബന്ധ ബട്ടണിൽ ക്ലിക്കുചെയ്യുക, അലൈൻമെന്റ് പാനൽ ദൃശ്യമാകും. ഏതെങ്കിലും പ്രവർത്തനങ്ങൾ നടപ്പിലാക്കുന്ന നിരവധി ഒബ്‌ജക്റ്റുകൾ വ്യക്തമാക്കുന്നതിന്, Shift കീ അമർത്തിപ്പിടിച്ചുകൊണ്ട് അവയിൽ ഓരോന്നിലും ക്ലിക്കുചെയ്ത് നിങ്ങൾ അവ തിരഞ്ഞെടുക്കേണ്ടതുണ്ട്. തിരഞ്ഞെടുത്ത വസ്തുക്കൾ അടയാളപ്പെടുത്തിയിരിക്കുന്നു

ബന്ധപ്പെട്ട വസ്തുക്കൾക്ക് ചുറ്റും കറുത്ത കുത്തുകൾ. നിങ്ങൾക്ക് ഏതെങ്കിലും ഒബ്‌ജക്‌റ്റിന്റെ (ബട്ടണുകൾ, വിൻഡോകൾ മുതലായവ) വലുപ്പം മാറ്റണമെങ്കിൽ, നിങ്ങൾ ഇടത് മൌസ് ബട്ടൺ ഉപയോഗിച്ച് ഈ ഒബ്‌ജക്റ്റിൽ ക്ലിക്കുചെയ്‌ത് ഏതെങ്കിലും വിൻഡോസ് വിൻഡോയുടെ വലുപ്പം പോലെ ആവശ്യമായ വലുപ്പം മാറ്റാൻ മൗസ് ഉപയോഗിക്കണം. .

ഡ്രോയിംഗ് പാനലിലെ ഗ്രാഫിക് ഒബ്‌ജക്‌റ്റുകളിൽ പ്രവർത്തിക്കുമ്പോൾ, ഡ്രോയിംഗ് പാനൽ പൂർണ്ണ സ്‌ക്രീനിലേക്ക് വികസിപ്പിക്കുകയും (അനുബന്ധ വിൻഡോസ് വിൻഡോ ബട്ടൺ ഉപയോഗിച്ച്) ഡ്രോയിംഗ് പാനലിലെ എല്ലാ ഒബ്‌ജക്റ്റുകളുടെയും വലുപ്പം തിരഞ്ഞെടുക്കുകയും ചെയ്യുന്നത് നല്ലതാണ്.

സ്ഥിരസ്ഥിതിയായി എല്ലാ ഒബ്‌ജക്‌റ്റുകളുടെയും വലുപ്പങ്ങൾ പിക്‌സലുകളിൽ സജ്ജീകരിച്ചിരിക്കുന്നതിനാൽ, ഔട്ട്‌പുട്ട് വിൻഡോയുടെ വലുപ്പം മാറ്റുമ്പോൾ, ബട്ടണുകൾ കൂടാതെ/അല്ലെങ്കിൽ വിൻഡോകൾ പരസ്പരം കൂട്ടിയിടിച്ചേക്കാം എന്ന വസ്തുതയിലേക്ക് ഇത് നയിച്ചേക്കാം. ഇത് ഒഴിവാക്കാൻ പ്രതികൂല സംഭവംഎല്ലാ ഒബ്‌ജക്‌റ്റുകളുടെയും വലുപ്പ യൂണിറ്റുകൾ അളവില്ലാത്ത വേരിയബിളുകളിൽ സജ്ജീകരിക്കേണ്ടത് ആവശ്യമാണ് - വിൻഡോ വലുപ്പത്തിന്റെ ഭിന്നസംഖ്യകൾ. ഈ വലുപ്പത്തെ നോർമലൈസ്ഡ് എന്ന് വിളിക്കുന്നു. ഇത് ചെയ്യുന്നതിന്, നിയന്ത്രണ പാനലിലെ മുകളിലെ ബട്ടണുള്ള ബട്ടണിൽ ക്ലിക്കുചെയ്ത് നിങ്ങൾ പ്രോപ്പർട്ടി എഡിറ്ററെ വിളിക്കേണ്ടതുണ്ട്.

പ്രോപ്പർട്ടി എഡിറ്റർക്ക് എഴുതി. പ്രോപ്പർട്ടി എഡിറ്ററിന്റെ മുകളിലെ വിൻഡോയിൽ ഞങ്ങൾ നൽകിയ എല്ലാ ഒബ്‌ജക്റ്റുകളും തിരഞ്ഞെടുത്ത ശേഷം (Ctrl കീ അമർത്തിപ്പിടിച്ച് ഇടത് മൌസ് ബട്ടൺ ഉപയോഗിച്ച് ഒബ്‌ജക്റ്റുകൾ തിരഞ്ഞെടുത്ത്), പ്രോപ്പർട്ടി എഡിറ്ററിന്റെ താഴത്തെ വിൻഡോയിൽ ഞങ്ങൾ യൂണിറ്റ് പ്രോപ്പർട്ടി (അളവിന്റെ യൂണിറ്റുകൾ) കണ്ടെത്തുന്നു. ഇടത് മൌസ് ബട്ടണിൽ ക്ലിക്ക് ചെയ്ത് അത് തിരഞ്ഞെടുക്കുക. ഇതിനുശേഷം, എഡിറ്ററിന്റെ മധ്യഭാഗത്ത്, ഇടതുവശത്തുള്ള ഒരു പ്രത്യേക വിൻഡോയിൽ, യൂണിറ്റ് പ്രോപ്പർട്ടി ദൃശ്യമാകും, വലതുവശത്ത് - മൂല്യങ്ങൾ തിരഞ്ഞെടുക്കുന്നതിനുള്ള ഒരു വിൻഡോ, അതിൽ ഒരു ഡ്രോപ്പ്-ഡൗൺ ലിസ്റ്റ് ഉണ്ട്. സ്വീകാര്യമായ മൂല്യങ്ങൾപ്രോപ്പർട്ടികൾ. യൂണിറ്റ് പ്രോപ്പർട്ടി നോർമലൈസ് ചെയ്തിരിക്കണം. അതുപോലെ, നിങ്ങൾ FontUnits പ്രോപ്പർട്ടിയുടെ മൂല്യം സജ്ജീകരിക്കേണ്ടതുണ്ട് - ഫോണ്ട് വലുപ്പത്തിന്റെ യൂണിറ്റുകൾ. വിൻഡോ വലുപ്പം മാറുമ്പോൾ ഫോണ്ട് വലുപ്പം മാറുമെന്ന് ഇത് ഉറപ്പാക്കുന്നു.

ബട്ടണുകളിലും സ്റ്റാറ്റിക് ടെക്‌സ്‌റ്റ് ഏരിയയിലും ലേബലുകൾ സ്ഥാപിക്കുന്നതിന്, നിങ്ങൾ അനുബന്ധ ഒബ്‌ജക്‌റ്റ് തിരഞ്ഞെടുക്കേണ്ടതുണ്ട് (ഒന്നുകിൽ ഡ്രോയിംഗ് ഏരിയയിൽ നേരിട്ട് ഇരട്ട-ക്ലിക്കുചെയ്യുന്നതിലൂടെ, അല്ലെങ്കിൽ പ്രോപ്പർട്ടി എഡിറ്ററിന്റെ മുകളിലെ വിൻഡോയിൽ) പ്രോപ്പർട്ടി എഡിറ്ററിന്റെ താഴത്തെ വിൻഡോയിൽ , സ്ട്രിംഗ് പ്രോപ്പർട്ടി കണ്ടെത്തുക, അത് തിരഞ്ഞെടുത്ത ശേഷം, ഉദ്ധരണികൾക്കിടയിൽ ആവശ്യമായ വാചകം നൽകുക (ഉദാഹരണത്തിന്, അനുബന്ധ ബട്ടണിൽ 'ആരംഭിക്കുക'). ഓരോ ഔട്ട്‌പുട്ട് വിൻഡോകൾക്കും മുകളിൽ ലേബലുകൾ സജ്ജീകരിക്കുന്നതിന്, നിങ്ങൾ അനുബന്ധ വിൻഡോ തിരഞ്ഞെടുത്ത് പ്രോപ്പർട്ടി എഡിറ്റർ8-ലേക്ക് വിളിക്കേണ്ടതുണ്ട്, അതിന്റെ താഴത്തെ വിൻഡോയിൽ നിങ്ങൾ ടൈറ്റിൽ പ്രോപ്പർട്ടി കണ്ടെത്തേണ്ടതുണ്ട്.

8 കൺട്രോൾ പാനലിലെ ബട്ടൺ ഉപയോഗിച്ച് മാത്രമല്ല പ്രോപ്പർട്ടി എഡിറ്ററെ വിളിക്കാം

ഒപ്പം ബന്ധപ്പെട്ട ഒബ്ജക്റ്റിൽ ഡബിൾ ക്ലിക്ക് ചെയ്യുക.