diff options
Diffstat (limited to 'tde-i18n-et/docs/tdevelop/kde_app_devel/index.docbook')
-rw-r--r-- | tde-i18n-et/docs/tdevelop/kde_app_devel/index.docbook | 44 |
1 files changed, 22 insertions, 22 deletions
diff --git a/tde-i18n-et/docs/tdevelop/kde_app_devel/index.docbook b/tde-i18n-et/docs/tdevelop/kde_app_devel/index.docbook index e40f89894bd..420c5da0b0f 100644 --- a/tde-i18n-et/docs/tdevelop/kde_app_devel/index.docbook +++ b/tde-i18n-et/docs/tdevelop/kde_app_devel/index.docbook @@ -160,15 +160,15 @@ return a.exec(); </orderedlist> </para> <para>Meie programmi teine objekt on nupp ehk klassi <classname>QPushButton</classname> eksemplar. Kahest eksemplari loomiseks mõeldud konstruktorist kasutame teist: see aktsepteerib teksti, mis on nupu sisu ehk antud juhul tekstistring "Hello world!" Seejärel kutsume välja meetodi <methodname>resize()</methodname>, et muuta nupu suurust vastavalt selle sisule - nupp peab olema suurem, et kogu string oleks näha. </para> -<para>Aga meetod <methodname>show()</methodname>? Siin näed, et nagu enamiku vidinate korral, tugineb <classname>QPushButton</classname> üheleainsale pärilusele ehk nagu ütleb dokumentatsioon: Inherits <classname>QButton</classname>. Klõpsa lingile <classname>QButton</classname>. Nüüd näed veel õige mitut vidinat, mis tuginevad klassile <classname>QButton</classname>, mida me kasutame hiljem signaali/pesa mehhanismi selgitamisel. Igal juhul ei ole siin kirjas meetodit <methodname>show()</methodname>, mis tähendab, et ka selle peab tagama pärilus. Klass, mille järglane on <classname>QButton</classname>, kannab nime <classname>QWidget</classname>. Klõpsa taas lingile ja näed tervet rida meetodeid,mida pakub klass QWidget. Nende hulka kuulub ka meetod <methodname>show()</methodname>. Nüüd on võimalik mõista, mida meie näidises nupuga ette võetakse: <orderedlist> +<para>Aga meetod <methodname>show()</methodname>? Siin näed, et nagu enamiku vidinate korral, tugineb <classname>QPushButton</classname> üheleainsale pärilusele ehk nagu ütleb dokumentatsioon: Inherits <classname>QButton</classname>. Klõpsa lingile <classname>QButton</classname>. Nüüd näed veel õige mitut vidinat, mis tuginevad klassile <classname>QButton</classname>, mida me kasutame hiljem signaali/pesa mehhanismi selgitamisel. Igal juhul ei ole siin kirjas meetodit <methodname>show()</methodname>, mis tähendab, et ka selle peab tagama pärilus. Klass, mille järglane on <classname>QButton</classname>, kannab nime <classname>TQWidget</classname>. Klõpsa taas lingile ja näed tervet rida meetodeid,mida pakub klass TQWidget. Nende hulka kuulub ka meetod <methodname>show()</methodname>. Nüüd on võimalik mõista, mida meie näidises nupuga ette võetakse: <orderedlist> <listitem><para>Luuakse <classname>QPushButton</classname> eksemplar, kasutades teist konstruktorit nupu teksti määramiseks</para></listitem> <listitem><para>Muudetakse vidina suurust sisu mahutamiseks</para></listitem> <listitem><para>Määratakse vidin <classname>QApplication</classname> eksemplari a põhividinaks</para></listitem> -<listitem><para>Antakse vidinale korraldus näidata ennast ekraanil, kutsudes välja meetodi <methodname>show()</methodname>, mis on klassi <classname>QWidget</classname> järglane</para></listitem> +<listitem><para>Antakse vidinale korraldus näidata ennast ekraanil, kutsudes välja meetodi <methodname>show()</methodname>, mis on klassi <classname>TQWidget</classname> järglane</para></listitem> </orderedlist> </para> <para>Pärast meetodi <methodname>exec()</methodname> väljakutsumist on rakendus kasutajale nähtav: aken nupuga, millel on kiri "Hello world!" Märkus: GUI programmid käituvad mõnikord veidi teistmoodi protseduurrakendused. Peamiseks erinevuseks on asjaolu, et rakendus siseneb niinimetatud "põhisilmusesse". See tähendab, et programm peab ootama kasutaja tegevust ja seejärel sellele reageerima, samuti seda, et Qt rakenduse korral peab programm olema põhisilmuses, enne kui saab alustada sündmuste käsitlemist. Järgmises osas räägime lühidalt, mida see tähendab programmeerijale ja mida pakub Qt kasutaja sündmuste töötlemiseks. </para> -<note><para>Juba kogemustega kasutajatele: konstruktoris pole deklareeritud nupu eellast, seepärast on see tipptaseme vidin, mis töötab kohalikus silmuses, mistõttu ei pea ootama põhisilmust. Vaata klassi QWidget ja KDE teegi dokumentatsiooni.</para> +<note><para>Juba kogemustega kasutajatele: konstruktoris pole deklareeritud nupu eellast, seepärast on see tipptaseme vidin, mis töötab kohalikus silmuses, mistõttu ei pea ootama põhisilmust. Vaata klassi TQWidget ja KDE teegi dokumentatsiooni.</para> </note> </sect3> @@ -183,7 +183,7 @@ return a.exec(); </itemizedlist> </para> <para>Nüüd äratame oma rakenduse "ellu" kasutaja sündmusi töötlema asudes. Üldiselt on kasutajal kaks võimalust programmiga suhelda: hiir ja klaviatuur. Mõlemal juhul peab graafiline kasutajaliides pakkuma meetodeid, mis tuvastavad toimingud, ja meetodeid, mis neile toimingutele reageerides midagi ette võtavad. </para> -<para>X Window saadab kõik interaktsioonisündmused vastavale rakendusele. <classname>QApplication</classname> saadab need siis aktiivsele aknale klassina <classname>QEvent</classname>, misjärel vidinad peavad otsustama, mida nendega peale hakata. Vidin saab sündmuse ja töötleb meetodit <methodname>QWidget::event(QEvent*)</methodname>, mis otsustab, milline sündmus käivitati ja kuidas reageerida: niisiis on peamine sündmuste käsitleja <methodname>event()</methodname>. Nüüd suunab <methodname>event()</methodname> sündmuse niinimetatud sündmusefiltrisse, mis määrab, mis toimus ja mida sündmusega peale hakata. Kui ükski filter antud sündmusega ei tegele, kutsutakse välja spetsialiseeritud sündmuste käsitlejad. Need on järgmised: <itemizedlist> +<para>X Window saadab kõik interaktsioonisündmused vastavale rakendusele. <classname>QApplication</classname> saadab need siis aktiivsele aknale klassina <classname>QEvent</classname>, misjärel vidinad peavad otsustama, mida nendega peale hakata. Vidin saab sündmuse ja töötleb meetodit <methodname>TQWidget::event(QEvent*)</methodname>, mis otsustab, milline sündmus käivitati ja kuidas reageerida: niisiis on peamine sündmuste käsitleja <methodname>event()</methodname>. Nüüd suunab <methodname>event()</methodname> sündmuse niinimetatud sündmusefiltrisse, mis määrab, mis toimus ja mida sündmusega peale hakata. Kui ükski filter antud sündmusega ei tegele, kutsutakse välja spetsialiseeritud sündmuste käsitlejad. Need on järgmised: <itemizedlist> <listitem><para>Klaviatuurisündmused - klahvid TAB ja Shift:</para> <itemizedlist> <listitem><para><methodname>virtual void focusInEvent(QFocusEvent *)</methodname></para></listitem> @@ -224,12 +224,12 @@ return a.exec(); </itemizedlist> </para> -<para>Pane tähele, et kõik sündmuse funktsioonid on virtuaalsed ja kaitstud. Seepärast saad taasteostada sündmusi, mida vajad omaenda vidinates, ja määrata, kuidas vidin peab reageerima. <classname>QWidget</classname> sisaldab ka mõningaid virtuaalseid meetodeid, mis võivad sinu programmis kasuks tulla. Nii või teisiti on äärmiselt tulus klassi <classname>QWidget</classname> hästi tundma õppida. </para> +<para>Pane tähele, et kõik sündmuse funktsioonid on virtuaalsed ja kaitstud. Seepärast saad taasteostada sündmusi, mida vajad omaenda vidinates, ja määrata, kuidas vidin peab reageerima. <classname>TQWidget</classname> sisaldab ka mõningaid virtuaalseid meetodeid, mis võivad sinu programmis kasuks tulla. Nii või teisiti on äärmiselt tulus klassi <classname>TQWidget</classname> hästi tundma õppida. </para> </sect2> <sect2 id="c1s2s4"> <title>Objekti interaktsioon signaalide ja pesadega</title> <para>Nüüd jõuame Qt tööriistakomplekti kõige suurema eelise juurde, milleks on signaalide/pesade mehhanism. See pakub väga käepärase ja tulusa lahenduse objektide interaktsioonile, mis X Window tööriistakomplektides lahendatakse tavaliselt tagasikutsete (callback) funktsioonidega. Et selline kommunikatsioon eeldab väga ranget programmeerimist ning muudab mõnikord kasutajaliidese loomise üpris keerukaks (seda tutvustab ka Qt dokumentatsioon ning selgitab põhjalikult K. Dalheimeri raamat 'Programming with Qt'), leiutas Trolltech uue süsteemi, milles objektid emiteerivad signaale, mida saab siduda pesadena (slot) deklareeritud meetoditega. C++ programmeerija peab sellest teadma põhimõtteliselt vaid mõnda asja: <itemizedlist> -<listitem><para>signaale/pesasid kasutava klassi deklaratsiooni alguses peab seisma makro TQ_OBJECT (ilma semikoolonita) ja see peab olema tuletatud klassist <classname>QObject</classname> </para></listitem> +<listitem><para>signaale/pesasid kasutava klassi deklaratsiooni alguses peab seisma makro TQ_OBJECT (ilma semikoolonita) ja see peab olema tuletatud klassist <classname>TQObject</classname> </para></listitem> <listitem><para>signaali võib emiteerida võtmesõna emit, nt. emit signaal(parameetrid), mis tahes klassi liikmesfunktsioonist, mis võimaldab signaale/pesasid </para></listitem> <listitem><para>kõik signaalid, mida kasutavad klassid, mis ei ole päritud, tuleb lisada klassi deklaratsiooni signaalide sektsiooni </para></listitem> @@ -237,9 +237,9 @@ return a.exec(); <listitem><para>metaobjekti kompilaator moc peab töötlema päisefaili, et laiendada makrod ja luua teostus (mida pole tingimata vaja teadagi). moc'i väljundfailid kompileerib samuti C++ kompilaator. </para></listitem> </itemizedlist> </para> -<para>Veel üks viis kasutada signaale ilma klassist <classname>QObject</classname> tuletamata näeb ette klassi <classname>QSignal</classname> kasutamist. Uuri dokumentatsioonist ise täpsemalt, kuidas seda kasutada. Järgnevalt eeldame, et tuletatud on klassist <classname>QObject</classname>. </para> +<para>Veel üks viis kasutada signaale ilma klassist <classname>TQObject</classname> tuletamata näeb ette klassi <classname>QSignal</classname> kasutamist. Uuri dokumentatsioonist ise täpsemalt, kuidas seda kasutada. Järgnevalt eeldame, et tuletatud on klassist <classname>TQObject</classname>. </para> <para>Nii võib sinu klass saata kõikjale signaale ja pakkuda pesasid, millega signaalid saavad ühenduse luua. Signaale kasutades ei pruugi muretseda, kes neid saab: sa lihtsalt emiteerid signaali, millele reageerib see pesa, millega sa soovid signaali ühendada. Pesasid võib samas kasutada teostuse ajal tavaliste meetoditena. </para> -<para>Signaali ühendamiseks pesaga tuleb kasutada meetodit <methodname>connect()</methodname>, mida pakub <classname>QObject</classname>, või olemasolu korral spetsiaalseid meetodeid, mida objektid pakuvad ühenduse võimaldamiseks teatud signaalidega. </para> +<para>Signaali ühendamiseks pesaga tuleb kasutada meetodit <methodname>connect()</methodname>, mida pakub <classname>TQObject</classname>, või olemasolu korral spetsiaalseid meetodeid, mida objektid pakuvad ühenduse võimaldamiseks teatud signaalidega. </para> <sect3 id="c1s2s4s1"> <title>Näidiskasutamine</title> @@ -255,16 +255,16 @@ hello.resize( 100, 30 ); a.setMainWidget( &hello ); -QObject::connect(&hello, SIGNAL( clicked() ), &a, SLOT( quit() )); +TQObject::connect(&hello, SIGNAL( clicked() ), &a, SLOT( quit() )); hello.show(); return a.exec(); } </programlisting> </para> -<para>Nagu näed, saab üheainsa lisandusega anda nupule suurema interaktiivsuse. Selleks on vaja ainult lisada meetod <methodname>connect()</methodname>: <methodname>connect(&hello, SIGNAL( clicked() ), &a, SLOT( quit() ))</methodname>. Mida see tähendab? Klassi QObject deklaratsioon ütleb meetodi <methodname>connect()</methodname> kohta järgmist: </para> -<para><methodname>bool connect ( const QObject * sender, const char * signal, const QObject * receiver, const char * member ) </methodname></para> -<para>See tähendab, et sul tuleb määrata <classname>QObject</classname> eksemplari viit, mis on signaali saatja, mis tähendab, et sa emiteerid selle signaali esimese parameetrina. Seejärel tuleb määrata signaal, millega soovid ühenduse luua. Viimased kaks parameetrit on vastuvõttev objekt, mis pakub pesa, ning sellele järgneb liikmesfunktsioon, mis ongi tegelik pesa, mis käivitatakse signaali emiteerimisel. </para> +<para>Nagu näed, saab üheainsa lisandusega anda nupule suurema interaktiivsuse. Selleks on vaja ainult lisada meetod <methodname>connect()</methodname>: <methodname>connect(&hello, SIGNAL( clicked() ), &a, SLOT( quit() ))</methodname>. Mida see tähendab? Klassi TQObject deklaratsioon ütleb meetodi <methodname>connect()</methodname> kohta järgmist: </para> +<para><methodname>bool connect ( const TQObject * sender, const char * signal, const TQObject * receiver, const char * member ) </methodname></para> +<para>See tähendab, et sul tuleb määrata <classname>TQObject</classname> eksemplari viit, mis on signaali saatja, mis tähendab, et sa emiteerid selle signaali esimese parameetrina. Seejärel tuleb määrata signaal, millega soovid ühenduse luua. Viimased kaks parameetrit on vastuvõttev objekt, mis pakub pesa, ning sellele järgneb liikmesfunktsioon, mis ongi tegelik pesa, mis käivitatakse signaali emiteerimisel. </para> <para>Signaalide ja pesade abil saavad sinu programmi objektid üksteisega suhelda ilma vajaduseta otseselt sõltuda vastuvõtva objekti tüübist. Selle mehhanismi kasutamisest tuleb käsiraamatus veel pikemalt juttu. Rohkem infot signaalide ja pesade mehhanismi kohta leiab ka <ulink url="developer.kde.org/documentation/library/libraryref.html">KDE teegi</ulink> ja <ulink url="doc.trolltech.com">Qt dokumentatsioonist</ulink>. </para> </sect3> </sect2> @@ -304,7 +304,7 @@ hello.resize( 100, 30 ); a.setTopWidget( &hello ); -QObject::connect(&hello, SIGNAL( clicked() ), &a, SLOT( quit() )); +TQObject::connect(&hello, SIGNAL( clicked() ), &a, SLOT( quit() )); hello.show(); return a.exec(); @@ -313,7 +313,7 @@ return a.exec(); </para> <para>Kõigepealt asendasime klassi <classname>QApplication</classname> klassiga <classname>TDEApplication</classname>. Seejärel pidime muutma varasema meetodi <methodname>setMainWidget()</methodname> meetodiks <methodname>setTopWidget</methodname>, mida <classname>TDEApplication</classname> kasutab põhividina määramiseks. Ja ongi kõik! Sinu esimene KDE rakendus on valmis - pead veel ainult kompilaatorile teatama KDE kaasamise asukohta ja linkuriga linkima teegi tdecore võtmega -ltdecore. </para> <para>Nüüd, kus tead, mida funktsioon <function>main()</function> üldiselt pakub ja kuidas muuta rakendus nähtavaks ning võimaldada kasutaja ja objekti interaktsiooni, on aeg minna järgmise peatüki kallale, kus loome oma esimese rakenduse &tdevelop;iga. Samuti saab seal testida kõike, millest oleme juttu teinud, ning näha oma silmaga, mis kuidas toimib. </para> -<para>Usutavasti oled järginud juhiseid ning uurinud Qt dokumentatsiooni, eriti just klasside <classname>QApplication</classname>, <classname>QWidget</classname> ja <classname>QObject</classname> kohta, ning teegi tdecore dokumentatsiooni klassi <classname>TDEApplication</classname> kohta. <ulink url="developer.kde.org/documentation/library/libraryref.html">KDE teegi käsiraamat</ulink> sisaldab samuti põhjalikku kirjeldust konstruktorite <classname>QApplication</classname> ja <classname>TDEApplication</classname> väljakutsumise kohta, kaasa arvatud käsureaargumentide töötlemine. </para> +<para>Usutavasti oled järginud juhiseid ning uurinud Qt dokumentatsiooni, eriti just klasside <classname>QApplication</classname>, <classname>TQWidget</classname> ja <classname>TQObject</classname> kohta, ning teegi tdecore dokumentatsiooni klassi <classname>TDEApplication</classname> kohta. <ulink url="developer.kde.org/documentation/library/libraryref.html">KDE teegi käsiraamat</ulink> sisaldab samuti põhjalikku kirjeldust konstruktorite <classname>QApplication</classname> ja <classname>TDEApplication</classname> väljakutsumise kohta, kaasa arvatud käsureaargumentide töötlemine. </para> </sect2> </sect1> @@ -549,10 +549,10 @@ return a.exec(); 16 statusBar()->show(); 17 18 // allow the view to change the statusbar and caption -19 connect(m_view, SIGNAL(signalChangeStatusbar(const QString&)), -20 this, SLOT(changeStatusbar(const QString&))); -21 connect(m_view, SIGNAL(signalChangeCaption(const QString&)), -22 this, SLOT(changeCaption(const QString&))); +19 connect(m_view, SIGNAL(signalChangeStatusbar(const TQString&)), +20 this, SLOT(changeStatusbar(const TQString&))); +21 connect(m_view, SIGNAL(signalChangeCaption(const TQString&)), +22 this, SLOT(changeCaption(const TQString&))); 23 24 } </programlisting> @@ -584,7 +584,7 @@ return a.exec(); </itemizedlist> </para> <para>Ja ei pruugi mainidagi, et kujunduse üks peamisi sihte on stabiilsus. Vigu ei ole muidugi võimalik kunagi täielikult vältida, kuid oskuslikult seatud kujunduseesmärkide ja objektorienteeritud disaini agara kasutamisega võib saavutada väga palju. C++ muudab programmeerimise lõbuks, kui oskad ära kasutada selle võimalusi: pärilus, info peitmine, juba olemasoleva koodi korduvkasutus. </para> -<para>KDE või Qt projekti luues peab sul alati olema vaade, mis on klassi QWidget järglane kas otsese päriluse kaudu või siis teegividina kaudu, mida soovid tarvitada. Seepärast konstrueerib juba Rakenduse nõustaja vaate, mis on klassi sinurakendusView eksemplar ja klassi QWidget järglane. </para> +<para>KDE või Qt projekti luues peab sul alati olema vaade, mis on klassi TQWidget järglane kas otsese päriluse kaudu või siis teegividina kaudu, mida soovid tarvitada. Seepärast konstrueerib juba Rakenduse nõustaja vaate, mis on klassi sinurakendusView eksemplar ja klassi TQWidget järglane. </para> <para>See peatükk kirjeldabki, kuidas kasutada teegividinaid &tdevelop;is loodud KDE või Qt rakenduste vaadete loomiseks, seejärel aga vaatame teeke ja vaateid, mida nad pakuvad. </para> </sect1> <sect1 id="c4s2"> @@ -601,7 +601,7 @@ return a.exec(); <para>Qt võrgudokumentatsiooni avaleheküljelt leiab lingi "Widget Screenshots", millele klõpsates saab näha, kuidas näevad välja Qt pakutavad vidinad. Neid saab otsekohe kasutada ning kombineerida keerukamate vidinate loomiseks, mille alusel luua rakenduste vaateid või dialooge. Järgnevalt vaatleme mõningaid vidinaid, mida saab edukalt ära kasutada rakenduste vaadete loomiseks, kuid tasub meeles pidada, et ka KDE teegid sisaldavad vidinaid, mida saab samaks otstarbeks pruukida. Neist tuleb juttu järgmises osas. </para> <para>Anname mõned nõuanded, milliseid Qt komponente milleks kasutada: <orderedlist> <listitem><para>Kui sinu vaade pole piisavalt suur kõigi andmete näitamiseks, peab kasutajal olema võimalus kerida dokumenti vaate vasakus ja alumises servas asuvate ribadega. Selleks pakub Qt klassi <classname>QScrollView</classname>, mis tekitab keritava alampiirkonna. Nagu juba mainitud, tuleb oma vidin muuta <classname>QScrollView</classname> järglaseks või kasutada eksemplari oma dokumendi vaatevidina haldamiseks. </para></listitem> -<listitem><para>Et luua ise kerimisvaade, muuda vidin View klassi <classname>QWidget</classname> järglaseks ja lisa püstine ja rõhtne <classname>QScrollBars</classname> (seda teeb teha KDE vidinaga TDEHTMLView). </para></listitem> +<listitem><para>Et luua ise kerimisvaade, muuda vidin View klassi <classname>TQWidget</classname> järglaseks ja lisa püstine ja rõhtne <classname>QScrollBars</classname> (seda teeb teha KDE vidinaga TDEHTMLView). </para></listitem> <listitem><para>Tekstitöötluseks kasuta klassi <classname>QTextEdit</classname>. See pakub täieliku tekstiredaktori vidina, mis suudab juba teksti lõigata, kopeerida ja asetada ning mida haldab kerimisvaade. </para></listitem> <listitem><para>Tabelisse paigutatud andmete esitamiseks kasuta klassi <classname>QTable</classname>. Et ka klassi <classname>QTable</classname> haldab kerimisvaade, sobib see hästi tabelitöötlusrakendustele. </para></listitem> <listitem><para>Kahe erineva vidina või vidina eksemplari näitamiseks ühel ja samal ajal kasuta klassi <classname>QSplitter</classname>. See võimaldab paanida vaateid rõhtsate või püstiste eraldajate abil. Selle heaks näiteks on KMail: peavaade on eraldajaga jagatud vertikaalselt, parempoolne aken aga omakorda rõhtsalt. </para></listitem> @@ -653,7 +653,7 @@ return a.exec(); <title>Kiirklahvide seadistamine</title> <para>Rakendusele annab märksa professionaalsema ilme, kui lisad sellele kiirklahvid. Neid tarvitavad küll peamiselt kogenumad kasutajad, kes soovivad rakenduses tavapärasest veelgi kiiremini töötada ega pelga selleks väikest vaeva kiirklahvide meeldejätmise nimel. Selleks pakuvad KDE teegid klassi <classname>TDEAction</classname>, mis pakub kiirklahve ja ligipääsu globaalselt seadistatud standardsetele kiirklahvidele. </para> <para>Vaikimisi kasutavad &tdevelop;i genereeritud rakenduse raamistikud ainult standardseid kiirklahve, näiteks F1 abidokumendi avamiseks, Ctrl+N uue faili loomiseks jne. </para> -<para>Kui sinu rakenduses on hulk kiirklahve, tuleb need muuta seadistatavaks menüüsse Seadistused lisatava eraldi kirjega või vähemalt koos teiste rakenduste seadistustega dialoogis, mida pakub QWidget. KDE teek pakubki klassi <classname>KKeyChooser</classname> kaardidialoogide jaoks ning klassi <classname>KKeyDialog</classname> kiirklahvide seadistamise dialoogile. </para> +<para>Kui sinu rakenduses on hulk kiirklahve, tuleb need muuta seadistatavaks menüüsse Seadistused lisatava eraldi kirjega või vähemalt koos teiste rakenduste seadistustega dialoogis, mida pakub TQWidget. KDE teek pakubki klassi <classname>KKeyChooser</classname> kaardidialoogide jaoks ning klassi <classname>KKeyDialog</classname> kiirklahvide seadistamise dialoogile. </para> </sect1> </chapter> @@ -696,7 +696,7 @@ return a.exec(); <sect1 id="c8s4"> <title><guibutton>Mis see on?</guibutton> nupp</title> <para>Nupp <guibutton>Mis see on?</guibutton> palub abiakna, mis näitab kasutajale soovi korral abi teatud vidina kohta töövaates või tööriistaribal. See asub tööriistaribal ja aktiveerub, kui kasutaja nupule klõpsab. Kursor võtab küsimärgiga noole kuju, sarnanedes sel moel nupu enda ikoonile. Kasutaja saab sellega klõpsata huvipakkuva vidina peale, mis avabki abiakna. Võid näiteks katsetada, mida teeb nupp <guibutton>Mis see on?</guibutton> &tdevelop;is. </para> -<para>Mis see on? abi lisamiseks vidinale tuleb kasutada staatilist meetodit <methodname>QWhatsThis::add(QWidget *widget, const QString &text)</methodname> </para> +<para>Mis see on? abi lisamiseks vidinale tuleb kasutada staatilist meetodit <methodname>QWhatsThis::add(TQWidget *widget, const TQString &text)</methodname> </para> </sect1> </chapter> |