From 6fd26e813877361aed526a18da8c0e1f16eb7f00 Mon Sep 17 00:00:00 2001 From: Michele Calgaro Date: Thu, 20 Jul 2023 15:04:17 +0900 Subject: [PATCH] Replace Q_OBJECT with TQ_OBJECT Signed-off-by: Michele Calgaro --- tde-i18n-ca/docs/tdebase/ksplashml/index.docbook | 6 +++--- tde-i18n-da/docs/tdebase/ksplashml/index.docbook | 6 +++--- tde-i18n-da/docs/tdevelop/kde_app_devel/index.docbook | 4 ++-- tde-i18n-de/docs/tdebase/ksplashml/index.docbook | 6 +++--- tde-i18n-en_GB/docs/tdebase/ksplashml/index.docbook | 6 +++--- tde-i18n-es/docs/tdebase/ksplashml/index.docbook | 6 +++--- tde-i18n-es/docs/tdevelop/kde_app_devel/index.docbook | 4 ++-- tde-i18n-et/docs/tdebase/ksplashml/index.docbook | 6 +++--- tde-i18n-et/docs/tdevelop/kde_app_devel/index.docbook | 4 ++-- tde-i18n-et/docs/tdewebdev/kommander/extending.docbook | 2 +- tde-i18n-fr/docs/tdebase/ksplashml/index.docbook | 6 +++--- tde-i18n-it/docs/tdebase/ksplashml/index.docbook | 6 +++--- tde-i18n-it/docs/tdevelop/kde_app_devel/index.docbook | 4 ++-- tde-i18n-nl/docs/tdebase/ksplashml/index.docbook | 6 +++--- tde-i18n-pl/docs/tdebase/ksplashml/index.docbook | 6 +++--- tde-i18n-pt/docs/tdebase/ksplashml/index.docbook | 6 +++--- tde-i18n-pt/docs/tdevelop/kde_app_devel/index.docbook | 4 ++-- tde-i18n-pt_BR/docs/tdebase/ksplashml/index.docbook | 6 +++--- tde-i18n-ru/docs/tdebase/ksplashml/index.docbook | 6 +++--- tde-i18n-ru/docs/tdevelop/kde_app_devel/index.docbook | 4 ++-- tde-i18n-sv/docs/tdebase/ksplashml/index.docbook | 6 +++--- tde-i18n-sv/docs/tdevelop/kde_app_devel/index.docbook | 4 ++-- tde-i18n-sv/docs/tdewebdev/kommander/extending.docbook | 2 +- 23 files changed, 58 insertions(+), 58 deletions(-) diff --git a/tde-i18n-ca/docs/tdebase/ksplashml/index.docbook b/tde-i18n-ca/docs/tdebase/ksplashml/index.docbook index b74832250b7..d5846b42568 100644 --- a/tde-i18n-ca/docs/tdebase/ksplashml/index.docbook +++ b/tde-i18n-ca/docs/tdebase/ksplashml/index.docbook @@ -623,7 +623,7 @@ class RotWidget; class Cfg2k: public ThemeEngineConfig { - Q_OBJECT + TQ_OBJECT public: Cfg2k( TDEConfig * ); }; @@ -631,7 +631,7 @@ public: class ObjKsTheme; class Theme2k: public ThemeEngine { - Q_OBJECT + TQ_OBJECT public: Theme2k( QWidget *, const char *, const QStringList& ); @@ -942,7 +942,7 @@ void Theme2k::readSettings() */ class RotWidget: public QWidget { - Q_OBJECT + TQ_OBJECT public: RotWidget( QWidget *, const QColor&, const QColor&, int ); ~RotWidget(); diff --git a/tde-i18n-da/docs/tdebase/ksplashml/index.docbook b/tde-i18n-da/docs/tdebase/ksplashml/index.docbook index c4ffe91875d..5cae581f7a2 100644 --- a/tde-i18n-da/docs/tdebase/ksplashml/index.docbook +++ b/tde-i18n-da/docs/tdebase/ksplashml/index.docbook @@ -623,7 +623,7 @@ class RotWidget; class Cfg2k: public ThemeEngineConfig { - Q_OBJECT + TQ_OBJECT public: Cfg2k( TDEConfig * ); }; @@ -631,7 +631,7 @@ public: class ObjKsTheme; class Theme2k: public ThemeEngine { - Q_OBJECT + TQ_OBJECT public: Theme2k( QWidget *, const char *, const QStringList& ); @@ -942,7 +942,7 @@ void Theme2k::readSettings() */ class RotWidget: public QWidget { - Q_OBJECT + TQ_OBJECT public: RotWidget( QWidget *, const QColor&, const QColor&, int ); ~RotWidget(); diff --git a/tde-i18n-da/docs/tdevelop/kde_app_devel/index.docbook b/tde-i18n-da/docs/tdevelop/kde_app_devel/index.docbook index 05abb50cc00..323a428a805 100644 --- a/tde-i18n-da/docs/tdevelop/kde_app_devel/index.docbook +++ b/tde-i18n-da/docs/tdevelop/kde_app_devel/index.docbook @@ -229,7 +229,7 @@ return a.exec(); Interaktion mellem objekt med signaler og slots Nu kommer vi til den mest åbenbare fordel ved QT-værktøjskassen: signal/slot-mekanismen. Den tilbyder en meget bekvem og nyttig løsning for kommunikation mellem objekter, som sædvanligvis løses med tilbagekaldsfunktioner i X-windows værktøjskasser. Eftersom kommunikationen kræver strikt programmering og ind imellem gør det meget svært at oprette brugergrænseflader (som beskrevet i QT-dokumentationen og forklaret i Programming with Qt af K. Dalheimer), opfandt TrollTech et nyt system hvor objekter kan sende signaler som kan forbindes til metoder som deklareres som slots. Som programmør af C++, behøver man kun at vide nogen ting om denne mekanisme: -klassedeklarationen af en klasse som bruger signaler og slots skal indeholde makroen Q_OBJECT i begyndelsen (uden et semikolon), og skal afledes fra klassen QObject +klassedeklarationen af en klasse som bruger signaler og slots skal indeholde makroen TQ_OBJECT i begyndelsen (uden et semikolon), og skal afledes fra klassen QObject et signal kan sendes med nøgleordet emit, f.eks. emit signal(parametre);, inde i en hvilken som helst medlemsfunktion i en klasse som tillader brug af signaler og slots alle signaler som bruges af klasser som ikke arves skal tilføjes i klassedeklarationen i en signalsektion @@ -471,7 +471,7 @@ return a.exec(); Som du kan se, har vi puttet linjenumre foran hver linje som ikke vises i udskriften, men som gør det nemmere at beskrive hvad der sker under bygningen. For det første virker byggeprogrammet rekursivt. Det betyder at det begynder i mappen hvor det startes, først går ned i undermapper, en af gangen, og derefter går tilbage til mappen hvor det startedes, behandler den, og derefter afslutter. Den første interessante linje er 24. Bemærk at g++, som er vores C++ oversætter, kaldes af make på denne linje for at kompilere den første kildekodefilen i vores projekt - i dette tilfælde main.cpp. Mange yderligere kommandolinjeflag bruges også med g++ oversætteren. Visse er standard, mens andre kan indstilles via &tdevelop;. -Inden næste fil (kscribble.cpp, linje 29) kompileres, køres først moc (metaobjektoversætteren) for kscribble.h (linje 25). Det sker fordi KScribble-klasser bruger signaler og slots, så makroen Q_OBJECT skal ekspanderes, og moc gør det for os. Resultatfilen, kscribble.moc, bruges af kscribble.cpp via udsagnet #include i filen. +Inden næste fil (kscribble.cpp, linje 29) kompileres, køres først moc (metaobjektoversætteren) for kscribble.h (linje 25). Det sker fordi KScribble-klasser bruger signaler og slots, så makroen TQ_OBJECT skal ekspanderes, og moc gør det for os. Resultatfilen, kscribble.moc, bruges af kscribble.cpp via udsagnet #include i filen. diff --git a/tde-i18n-de/docs/tdebase/ksplashml/index.docbook b/tde-i18n-de/docs/tdebase/ksplashml/index.docbook index 8ec4f62f8aa..01521aeaae6 100644 --- a/tde-i18n-de/docs/tdebase/ksplashml/index.docbook +++ b/tde-i18n-de/docs/tdebase/ksplashml/index.docbook @@ -623,7 +623,7 @@ class RotWidget; class Cfg2k: public ThemeEngineConfig { - Q_OBJECT + TQ_OBJECT public: Cfg2k( TDEConfig * ); }; @@ -631,7 +631,7 @@ public: class ObjKsTheme; class Theme2k: public ThemeEngine { - Q_OBJECT + TQ_OBJECT public: Theme2k( QWidget *, const char *, const QStringList& ); @@ -942,7 +942,7 @@ void Theme2k::readSettings() */ class RotWidget: public QWidget { - Q_OBJECT + TQ_OBJECT public: RotWidget( QWidget *, const QColor&, const QColor&, int ); ~RotWidget(); diff --git a/tde-i18n-en_GB/docs/tdebase/ksplashml/index.docbook b/tde-i18n-en_GB/docs/tdebase/ksplashml/index.docbook index 31cd751cdbd..95349cff6ef 100644 --- a/tde-i18n-en_GB/docs/tdebase/ksplashml/index.docbook +++ b/tde-i18n-en_GB/docs/tdebase/ksplashml/index.docbook @@ -583,7 +583,7 @@ class RotWidget; class Cfg2k: public ThemeEngineConfig { - Q_OBJECT + TQ_OBJECT public: Cfg2k( TDEConfig * ); }; @@ -591,7 +591,7 @@ public: class ObjKsTheme; class Theme2k: public ThemeEngine { - Q_OBJECT + TQ_OBJECT public: Theme2k( QWidget *, const char *, const QStringList& ); @@ -895,7 +895,7 @@ void Theme2k::readSettings() */ class RotWidget: public QWidget { - Q_OBJECT + TQ_OBJECT public: RotWidget( QWidget *, const QColor&, const QColor&, int ); ~RotWidget(); diff --git a/tde-i18n-es/docs/tdebase/ksplashml/index.docbook b/tde-i18n-es/docs/tdebase/ksplashml/index.docbook index 98371785f35..8cc1bdbc328 100644 --- a/tde-i18n-es/docs/tdebase/ksplashml/index.docbook +++ b/tde-i18n-es/docs/tdebase/ksplashml/index.docbook @@ -619,7 +619,7 @@ class RotWidget; class Cfg2k: public ThemeEngineConfig { - Q_OBJECT + TQ_OBJECT public: Cfg2k( TDEConfig * ); }; @@ -627,7 +627,7 @@ public: class ObjKsTheme; class Theme2k: public ThemeEngine { - Q_OBJECT + TQ_OBJECT public: Theme2k( QWidget *, const char *, const QStringList& ); @@ -936,7 +936,7 @@ void Theme2k::readSettings() */ class RotWidget: public QWidget { - Q_OBJECT + TQ_OBJECT public: RotWidget( QWidget *, const QColor&, const QColor&, int ); ~RotWidget(); diff --git a/tde-i18n-es/docs/tdevelop/kde_app_devel/index.docbook b/tde-i18n-es/docs/tdevelop/kde_app_devel/index.docbook index 124afaa8a5c..f39709f31c2 100644 --- a/tde-i18n-es/docs/tdevelop/kde_app_devel/index.docbook +++ b/tde-i18n-es/docs/tdevelop/kde_app_devel/index.docbook @@ -229,7 +229,7 @@ return a.exec(); Interacción entre objetos mediantes señales y slots Estamos llegando a una de las ventajas más obvias del juego de herramientas Qt: el mecanismo señal/objeto, que ofrece una solución útil y provechosa para la interacción de objetos (que normalmente se resuelve mediante funciones «callback» de las herramientas del sistema X-Window). Como esta comunicación requiere una programación estricta y a menudo dificulta la creación de interfaces de usuario (como se dice en la documentación de Qt y se explica en «Programando con Qt», de K. Dalheimer), Trolltech creó un nuevo sistema en el que los objetos pueden emitir señales que se pueden conectar a métodos declarados como «slots». Desde el punto de vista del programador de C++, solo es necesario saber ciertas cosas sobre este mecanismo: -la declaración de una clase que use señales y slots debe contener la macro Q_OBJECT al principio (sin punto y coma); también debe derivar de la clase QObject +la declaración de una clase que use señales y slots debe contener la macro TQ_OBJECT al principio (sin punto y coma); también debe derivar de la clase QObject se puede emitir una señal mediante la palabra clave «emit»; por ejemplo, «emit señal(parámetros);», desde dentro de cualquier función miembro de una clase que permita señales y slots todas las señales usadas por las clases que no sean heredadas deben ser añadidas a la declaración de la clase mediante una sección «signals» @@ -471,7 +471,7 @@ return a.exec(); Como puede ver, hemos colocado números al comienzo de cada línea que no aparecerán cuando realice este proceso; aquí nos ayudarán a describir qué está ocurriendo durante el proceso de construcción. En primer lugar, «gmake» trabaja recursivamente. Esto significa que comienza en la carpeta donde fue llamado y entra primero en las subcarpetas, de una en una, y luego vuelve a la carpeta en la que se inició, la procesa, y luego finaliza su ejecución. La primera línea de interés es la 24. Vea que «g++» (que se refiere a nuestro compilador de C++) ha sido llamado por «make» para compilar el primer archivo de código fuente de nuestro proyecto (en este caso, «main.cpp»). En la línea de comando del compilador «g++» se usan muchas opciones extra, algunas de ellas de forma predeterminada y otras configuradas mediante &tdevelop;. -Antes de compilar el siguiente archivo («kscribble.cpp», en la línea 29), el compilador de metaobjetos «moc» se llama por primera vez sobre «kscribble.h» (línea 25). Esto se debe a que las clases de KScribble usan señales y slots, de modo que la macro Q_OBJECT debe ser expandida antes de ser usada, y esto es lo que «moc» hace por nosotros. El archivo resultante («kscribble.moc»), se usa en «kscribble.cpp» mediante una sentencia #include dentro de él. +Antes de compilar el siguiente archivo («kscribble.cpp», en la línea 29), el compilador de metaobjetos «moc» se llama por primera vez sobre «kscribble.h» (línea 25). Esto se debe a que las clases de KScribble usan señales y slots, de modo que la macro TQ_OBJECT debe ser expandida antes de ser usada, y esto es lo que «moc» hace por nosotros. El archivo resultante («kscribble.moc»), se usa en «kscribble.cpp» mediante una sentencia #include dentro de él. diff --git a/tde-i18n-et/docs/tdebase/ksplashml/index.docbook b/tde-i18n-et/docs/tdebase/ksplashml/index.docbook index a2c1c861ff4..db2673554d1 100644 --- a/tde-i18n-et/docs/tdebase/ksplashml/index.docbook +++ b/tde-i18n-et/docs/tdebase/ksplashml/index.docbook @@ -623,7 +623,7 @@ class RotWidget; class Cfg2k: public ThemeEngineConfig { - Q_OBJECT + TQ_OBJECT public: Cfg2k( TDEConfig * ); }; @@ -631,7 +631,7 @@ public: class ObjKsTheme; class Theme2k: public ThemeEngine { - Q_OBJECT + TQ_OBJECT public: Theme2k( QWidget *, const char *, const QStringList& ); @@ -942,7 +942,7 @@ void Theme2k::readSettings() */ class RotWidget: public QWidget { - Q_OBJECT + TQ_OBJECT public: RotWidget( QWidget *, const QColor&, const QColor&, int ); ~RotWidget(); 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 7c060c73b2d..e40f89894bd 100644 --- a/tde-i18n-et/docs/tdevelop/kde_app_devel/index.docbook +++ b/tde-i18n-et/docs/tdevelop/kde_app_devel/index.docbook @@ -229,7 +229,7 @@ return a.exec(); Objekti interaktsioon signaalide ja pesadega 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: -signaale/pesasid kasutava klassi deklaratsiooni alguses peab seisma makro Q_OBJECT (ilma semikoolonita) ja see peab olema tuletatud klassist QObject +signaale/pesasid kasutava klassi deklaratsiooni alguses peab seisma makro TQ_OBJECT (ilma semikoolonita) ja see peab olema tuletatud klassist QObject signaali võib emiteerida võtmesõna emit, nt. emit signaal(parameetrid), mis tahes klassi liikmesfunktsioonist, mis võimaldab signaale/pesasid kõik signaalid, mida kasutavad klassid, mis ei ole päritud, tuleb lisada klassi deklaratsiooni signaalide sektsiooni @@ -471,7 +471,7 @@ return a.exec(); Nagu näed, panime siin iga rea ette järjekorranumbri. Teadeteaknas neid ei näe, kuid nii on sul lihtsam meie edasist arutlust jälgida. Kõigepealt tuleb tähele panna, et gmake töötab rekursiivselt. See tähendab, et see alustab kataloogist, kus see välja kutsuti ning läheb üksteise järel selle alamkataloogidesse, naaseb seejärel kataloogi, kus tööd alustas, töötleb seda ja seejärel lõpetab. Esimene huvipakkuv rida on 24. Pane tähele, et sel real kutsub make välja meie C++ kompilaatori g++, et kompileerida meie projekti esimene lähtekoodifail, antud juhul main.cpp. g++ kompilaatorile saab anda terve rea käsureavõtmeid, millest mõningaid kasutatakse vaikimisi, teiste kasutamist saab aga &tdevelop;is seadistada. -Enne järgmise faili (kscribble.cpp, rida 29) kompileerimist kutsutakse moc (metaobjekti kompilaator) välja kscribble.h jaoks (rida 25). Põhjuseks on see, et KScribble klassid kasutavad signaale/pesasid, mistõttu makro Q_OBJECT tuleb laiendada, mida meie eest teebki moc. Tekkinud faili kscribble.moc kasutab kscribble.cpp failis leiduva #include-lausega. +Enne järgmise faili (kscribble.cpp, rida 29) kompileerimist kutsutakse moc (metaobjekti kompilaator) välja kscribble.h jaoks (rida 25). Põhjuseks on see, et KScribble klassid kasutavad signaale/pesasid, mistõttu makro TQ_OBJECT tuleb laiendada, mida meie eest teebki moc. Tekkinud faili kscribble.moc kasutab kscribble.cpp failis leiduva #include-lausega. diff --git a/tde-i18n-et/docs/tdewebdev/kommander/extending.docbook b/tde-i18n-et/docs/tdewebdev/kommander/extending.docbook index 58cf5bf71b4..bd5e935ee0d 100644 --- a/tde-i18n-et/docs/tdewebdev/kommander/extending.docbook +++ b/tde-i18n-et/docs/tdewebdev/kommander/extending.docbook @@ -29,7 +29,7 @@ class QShowEvent; class KomLineEdit : public KLineEdit, public KommanderWidget { - Q_OBJECT + TQ_OBJECT TQ_PROPERTY(QString populationText READ populationText WRITE setPopulationText DESIGNABLE false) TQ_PROPERTY(QStringList associations READ associatedText WRITE setAssociatedText DESIGNABLE false) diff --git a/tde-i18n-fr/docs/tdebase/ksplashml/index.docbook b/tde-i18n-fr/docs/tdebase/ksplashml/index.docbook index 8f0560a722d..c49f0612528 100644 --- a/tde-i18n-fr/docs/tdebase/ksplashml/index.docbook +++ b/tde-i18n-fr/docs/tdebase/ksplashml/index.docbook @@ -623,7 +623,7 @@ class RotWidget; class Cfg2k: public ThemeEngineConfig { - Q_OBJECT + TQ_OBJECT public: Cfg2k( TDEConfig * ); }; @@ -631,7 +631,7 @@ public: class ObjKsTheme; class Theme2k: public ThemeEngine { - Q_OBJECT + TQ_OBJECT public: Theme2k( QWidget *, const char *, const QStringList& ); @@ -942,7 +942,7 @@ void Theme2k::readSettings() */ class RotWidget: public QWidget { - Q_OBJECT + TQ_OBJECT public: RotWidget( QWidget *, const QColor&, const QColor&, int ); ~RotWidget(); diff --git a/tde-i18n-it/docs/tdebase/ksplashml/index.docbook b/tde-i18n-it/docs/tdebase/ksplashml/index.docbook index 761075304c1..4269eb97ac5 100644 --- a/tde-i18n-it/docs/tdebase/ksplashml/index.docbook +++ b/tde-i18n-it/docs/tdebase/ksplashml/index.docbook @@ -619,7 +619,7 @@ class RotWidget; class Cfg2k: public ThemeEngineConfig { - Q_OBJECT + TQ_OBJECT public: Cfg2k( TDEConfig * ); }; @@ -627,7 +627,7 @@ public: class ObjKsTheme; class Theme2k: public ThemeEngine { - Q_OBJECT + TQ_OBJECT public: Theme2k( QWidget *, const char *, const QStringList& ); @@ -931,7 +931,7 @@ void Theme2k::readSettings() */ class RotWidget: public QWidget { - Q_OBJECT + TQ_OBJECT public: RotWidget( QWidget *, const QColor&, const QColor&, int ); ~RotWidget(); diff --git a/tde-i18n-it/docs/tdevelop/kde_app_devel/index.docbook b/tde-i18n-it/docs/tdevelop/kde_app_devel/index.docbook index d77bf6ead06..74850d44b43 100644 --- a/tde-i18n-it/docs/tdevelop/kde_app_devel/index.docbook +++ b/tde-i18n-it/docs/tdevelop/kde_app_devel/index.docbook @@ -229,7 +229,7 @@ return a.exec(); Interazione degli oggetti attraverso segnali e slot Si è giunti al più ovvio vantaggio degli strumenti Qt: il meccanismo dei segnali e degli slot. Questi offrono una comoda soluzione all'interazione tra oggetti, che in X-Window viene normalmente risolta con funzioni di callback. Siccome questa comunicazione richiede una programmazione rigorosa e a volte rende la creazione di interfacce grafiche molto difficile (come riportato della documentazione Qt e dimostrato in Programming with Qt di K.Dalheimer), Troll Tech ha inventato un nuovo sistema, dove gli oggetti emettono segnali che possono essere connessi ai metodi dichiarati come slot. Il programmatore C++ deve solamente conoscere alcune cose riguardo questo meccanismo: -la dichiarazione di una classe che usa i segnali e gli slot deve contenere la macro Q_OBJECT all'inizio (senza il punto e virgola) e deve ereditare dalla classe QObject +la dichiarazione di una classe che usa i segnali e gli slot deve contenere la macro TQ_OBJECT all'inizio (senza il punto e virgola) e deve ereditare dalla classe QObject un segnale può essere emesso tramite la parola chiave emit, es: emit signal(parametri); dall'interno di qualunque membro di una classe che permette l'uso di segnali e slot tutti i segnali utilizzati dalle classi che non sono ereditati devono essere aggiunti alla dichiarazione di classe in una sezione dedicata ai segnali @@ -471,7 +471,7 @@ return a.exec(); Come si può notare sono stati aggiunti i numeri di riga, che non appaiono nella finestra di output, utili per descrivere quello che succede durante la compilazione. Prima di tutto si può osservare che gmake funziona ricorsivamente. Questo significa che esso parte dalla directory nella quale è stato chiamato e prosegue all'interno di tutte le sottodirectory, una per volta, quindi ritorna alla directory di partenza, la elabora e termina. La prima linea interessante è la 24. Notare che g++, il compilatore C++, viene chiamato da make per compilare il primo file di codice sorgente del progetto - in questo caso main.cpp. Il compilatore g++ usa molte altre opzioni, alcune delle quali sono predefinite mentre altre possono essere configurate con &tdevelop;. -Prima che venga compilato il prossimo file (kscribble.cpp, linea 29), il moc (compilatore dei meta oggetti) viene chiamato per kscribble.h (linea 25). Le classi di KScribble utilizzano i segnali e gli slot, quindi il moc deve espandere la macro Q_OBJECT. Il file risultante, kscribble.moc, verrà utilizzato da kscribble.cpp tramite la direttiva #include all'interno del file. +Prima che venga compilato il prossimo file (kscribble.cpp, linea 29), il moc (compilatore dei meta oggetti) viene chiamato per kscribble.h (linea 25). Le classi di KScribble utilizzano i segnali e gli slot, quindi il moc deve espandere la macro TQ_OBJECT. Il file risultante, kscribble.moc, verrà utilizzato da kscribble.cpp tramite la direttiva #include all'interno del file. diff --git a/tde-i18n-nl/docs/tdebase/ksplashml/index.docbook b/tde-i18n-nl/docs/tdebase/ksplashml/index.docbook index 9b8e3950e37..08452385ef6 100644 --- a/tde-i18n-nl/docs/tdebase/ksplashml/index.docbook +++ b/tde-i18n-nl/docs/tdebase/ksplashml/index.docbook @@ -623,7 +623,7 @@ class RotWidget; class Cfg2k: public ThemeEngineConfig { - Q_OBJECT + TQ_OBJECT public: Cfg2k( TDEConfig * ); }; @@ -631,7 +631,7 @@ public: class ObjKsTheme; class Theme2k: public ThemeEngine { - Q_OBJECT + TQ_OBJECT public: Theme2k( QWidget *, const char *, const QStringList& ); @@ -942,7 +942,7 @@ void Theme2k::readSettings() */ class RotWidget: public QWidget { - Q_OBJECT + TQ_OBJECT public: RotWidget( QWidget *, const QColor&, const QColor&, int ); ~RotWidget(); diff --git a/tde-i18n-pl/docs/tdebase/ksplashml/index.docbook b/tde-i18n-pl/docs/tdebase/ksplashml/index.docbook index 4236c8f5586..6df1e2c97ed 100644 --- a/tde-i18n-pl/docs/tdebase/ksplashml/index.docbook +++ b/tde-i18n-pl/docs/tdebase/ksplashml/index.docbook @@ -623,7 +623,7 @@ class RotWidget; class Cfg2k: public ThemeEngineConfig { - Q_OBJECT + TQ_OBJECT public: Cfg2k( TDEConfig * ); }; @@ -631,7 +631,7 @@ public: class ObjKsTheme; class Theme2k: public ThemeEngine { - Q_OBJECT + TQ_OBJECT public: Theme2k( QWidget *, const char *, const QStringList& ); @@ -942,7 +942,7 @@ void Theme2k::readSettings() */ class RotWidget: public QWidget { - Q_OBJECT + TQ_OBJECT public: RotWidget( QWidget *, const QColor&, const QColor&, int ); ~RotWidget(); diff --git a/tde-i18n-pt/docs/tdebase/ksplashml/index.docbook b/tde-i18n-pt/docs/tdebase/ksplashml/index.docbook index bde884cd419..ac23cc72947 100644 --- a/tde-i18n-pt/docs/tdebase/ksplashml/index.docbook +++ b/tde-i18n-pt/docs/tdebase/ksplashml/index.docbook @@ -619,7 +619,7 @@ class RotWidget; class Cfg2k: public ThemeEngineConfig { - Q_OBJECT + TQ_OBJECT public: Cfg2k( TDEConfig * ); }; @@ -627,7 +627,7 @@ public: class ObjKsTheme; class Theme2k: public ThemeEngine { - Q_OBJECT + TQ_OBJECT public: Theme2k( QWidget *, const char *, const QStringList& ); @@ -935,7 +935,7 @@ void Theme2k::readSettings() */ class RotWidget: public QWidget { - Q_OBJECT + TQ_OBJECT public: RotWidget( QWidget *, const QColor&, const QColor&, int ); ~RotWidget(); diff --git a/tde-i18n-pt/docs/tdevelop/kde_app_devel/index.docbook b/tde-i18n-pt/docs/tdevelop/kde_app_devel/index.docbook index 31cd7442d1c..ec09cd92b61 100644 --- a/tde-i18n-pt/docs/tdevelop/kde_app_devel/index.docbook +++ b/tde-i18n-pt/docs/tdevelop/kde_app_devel/index.docbook @@ -229,7 +229,7 @@ return a.exec(); Interacção de Objectos através de 'Signals' e 'Slots' Agora chegámos às vantagens mais óbvias da plataforma do Qt: o mecanismo de 'signals'/'slots'. Isto oferece uma solução bastante útil e fácil de os objectos interagirem entre si, o que normalmente é resolvido por funções de resposta ('callback') pelas bibliotecas do X-Window. Dado que esta documentação necessita de uma programação restrita e normalmente torna a criação de interface do utilizador muito complicada (como é referido pela documentação do Qt e é explicado no texto 'Programming with Qt' de K.Dalheimer), a Troll Tech inventou um novo sistema onde os objectos podem emitir sinais ('signals') que podem estar associados a métodos denominados por 'slots'. Para a parte de C++ do programador, ele só terá de conhecer algumas coisas sobre este mecanismo: -a declaração de uma classe que utilize 'signals'/'slots' tem que ter a macro Q_OBJECT no início (sem ponto e vírgula); e tem que ser derivada da classe QObject +a declaração de uma classe que utilize 'signals'/'slots' tem que ter a macro TQ_OBJECT no início (sem ponto e vírgula); e tem que ser derivada da classe QObject um 'signal' pode ser emitido através da palavra chave 'emit', por exemplo, emit signal(parâmetros);, de qualquer método membro de uma classe que permite 'signals'/'slots' todos os 'signals' utilizados pelas classes que não são herdados tem que ser adicionados à declaração da classe numa secção 'signals' @@ -471,7 +471,7 @@ return a.exec(); Como pode ver, foram colocados números de linhas antes de cada linha, os quais não aparecem no resultado que irá obter mas tornará mais simples de descrever o que se está a passar durante a compilação. Primeiro que tudo, o 'gmake' funciona recursivamente. Isto significa que ele começa a partir da directoria em que é invocado e vai percorrendo as sub-pastas primeiro, uma de cada vez, e depois regressa à directoria em que foi invocado, processa-a e depois termina. A primeira linha de interesse é a 24. Repare nesta linha que o 'g++', que é o nosso compilador de C++, é chamado pelo 'make' para compilar o primeiro ficheiro de código do projecto - neste caso, o 'main.cpp'. São usadas também várias opções da linha de comandos com o compilador 'g++'; algumas das quais são predefinidas e outras podem ser configuradas através do &tdevelop;. -Antes do próximo ficheiro ('kscribble.cpp', linha 29) ser compilado, o 'moc' (compilador de meta-objectos) é primeiro invocado sobre o 'kscribble.h' (linha 25). Isto é porque as classes do KScribble usam 'signals'/'slots', por isso a macro Q_OBJECT precisa de ser expandida, e o 'moc' faz isso por nós. O ficheiro resultante, o 'kscribble.moc', é usado pelo 'kscribble.cpp' através de um comando #include dentro do ficheiro. +Antes do próximo ficheiro ('kscribble.cpp', linha 29) ser compilado, o 'moc' (compilador de meta-objectos) é primeiro invocado sobre o 'kscribble.h' (linha 25). Isto é porque as classes do KScribble usam 'signals'/'slots', por isso a macro TQ_OBJECT precisa de ser expandida, e o 'moc' faz isso por nós. O ficheiro resultante, o 'kscribble.moc', é usado pelo 'kscribble.cpp' através de um comando #include dentro do ficheiro. diff --git a/tde-i18n-pt_BR/docs/tdebase/ksplashml/index.docbook b/tde-i18n-pt_BR/docs/tdebase/ksplashml/index.docbook index 8d29d49db27..e0aaec12aa8 100644 --- a/tde-i18n-pt_BR/docs/tdebase/ksplashml/index.docbook +++ b/tde-i18n-pt_BR/docs/tdebase/ksplashml/index.docbook @@ -619,7 +619,7 @@ class RotWidget; class Cfg2k: public ThemeEngineConfig { - Q_OBJECT + TQ_OBJECT public: Cfg2k( TDEConfig * ); }; @@ -627,7 +627,7 @@ public: class ObjKsTheme; class Theme2k: public ThemeEngine { - Q_OBJECT + TQ_OBJECT public: Theme2k( QWidget *, const char *, const QStringList& ); @@ -935,7 +935,7 @@ void Theme2k::readSettings() */ class RotWidget: public QWidget { - Q_OBJECT + TQ_OBJECT public: RotWidget( QWidget *, const QColor&, const QColor&, int ); ~RotWidget(); diff --git a/tde-i18n-ru/docs/tdebase/ksplashml/index.docbook b/tde-i18n-ru/docs/tdebase/ksplashml/index.docbook index f35d913b650..25a1c19ff6e 100644 --- a/tde-i18n-ru/docs/tdebase/ksplashml/index.docbook +++ b/tde-i18n-ru/docs/tdebase/ksplashml/index.docbook @@ -623,7 +623,7 @@ class RotWidget; class Cfg2k: public ThemeEngineConfig { - Q_OBJECT + TQ_OBJECT public: Cfg2k( TDEConfig * ); }; @@ -631,7 +631,7 @@ public: class ObjKsTheme; class Theme2k: public ThemeEngine { - Q_OBJECT + TQ_OBJECT public: Theme2k( QWidget *, const char *, const QStringList& ); @@ -942,7 +942,7 @@ void Theme2k::readSettings() */ class RotWidget: public QWidget { - Q_OBJECT + TQ_OBJECT public: RotWidget( QWidget *, const QColor&, const QColor&, int ); ~RotWidget(); diff --git a/tde-i18n-ru/docs/tdevelop/kde_app_devel/index.docbook b/tde-i18n-ru/docs/tdevelop/kde_app_devel/index.docbook index 70e32db4856..29987b7b73c 100644 --- a/tde-i18n-ru/docs/tdevelop/kde_app_devel/index.docbook +++ b/tde-i18n-ru/docs/tdevelop/kde_app_devel/index.docbook @@ -229,7 +229,7 @@ return a.exec(); Взаимодействие объектов через сигналы и слоты Теперь переходим к основному отличию Qt: механизму сигнал/слот. Это быстрое и удобное решение реализации взаимодействия объектов, которое обычно решается посредством callback-функций в библиотеках, работающих с X-Window. Так как такое взаимодействие требует аккуратного программирования и иногда делает создание пользовательского интерфейса очень сложным (что описано в документации по Qt и объяснено в книге К.Дальхеймера [K.Dalheimer] 'Programming with Qt'), Troll Tech придумала новую систему, где объекты могут посылать сигналы, которые можно связывать с методами, объявленными как слоты. Программисту на C++ нужно знать только некоторые вещи о механизме: -объявление класса, использующего сигналы/слот должно содержать макрос Q_OBJECT в начале (без точки с запятой); и должно быть унаследовано от класса QObject +объявление класса, использующего сигналы/слот должно содержать макрос TQ_OBJECT в начале (без точки с запятой); и должно быть унаследовано от класса QObject сигнал может быть послан ключевым словом emit (например, emit signal (параметры...)) из любого метода класса, поддерживающего сигналы/слоты все сигналы, использующиеся не наследуемыми классами, должны быть добавлены в объявление класса в разделе signals @@ -471,7 +471,7 @@ return a.exec(); Мы пронумеровали строки для простоты их описания. Прежде всего, gmake работает рекурсивно. Это значит, что сначала он находит самый глубоковложенный каталог, обрабатывает его, затем подымается на уровень выше, обрабатывает этот каталог и так далее до самого верхнего. Первая, интересующая нас строка - 24. В ней make обращается к GNU C++ компилятору g++ для компиляции файла main.cpp. При этом используется некоторое количество дополнительных ключей, многие из которых можно настроить через &tdevelop;. -Перед компилированием следующего файла (kscribble.cpp, строка 29) вызывается команда moc (meta object compiler, компилятор мета-объектов) для kscribble.h (строка 25). Это из-за того, что классы KScribble используют механизм сигналов/слотов. Она подставляет вместо макроса Q_OBJECT действительный код. Получившийся файл, kscribble.moc, используется kscribble.cpp через #include. +Перед компилированием следующего файла (kscribble.cpp, строка 29) вызывается команда moc (meta object compiler, компилятор мета-объектов) для kscribble.h (строка 25). Это из-за того, что классы KScribble используют механизм сигналов/слотов. Она подставляет вместо макроса TQ_OBJECT действительный код. Получившийся файл, kscribble.moc, используется kscribble.cpp через #include. diff --git a/tde-i18n-sv/docs/tdebase/ksplashml/index.docbook b/tde-i18n-sv/docs/tdebase/ksplashml/index.docbook index 20deebecf81..90f14b6fb3e 100644 --- a/tde-i18n-sv/docs/tdebase/ksplashml/index.docbook +++ b/tde-i18n-sv/docs/tdebase/ksplashml/index.docbook @@ -623,7 +623,7 @@ class RotWidget; class Cfg2k: public ThemeEngineConfig { - Q_OBJECT + TQ_OBJECT public: Cfg2k( TDEConfig * ); }; @@ -631,7 +631,7 @@ public: class ObjKsTheme; class Theme2k: public ThemeEngine { - Q_OBJECT + TQ_OBJECT public: Theme2k( QWidget *, const char *, const QStringList& ); @@ -942,7 +942,7 @@ void Theme2k::readSettings() */ class RotWidget: public QWidget { - Q_OBJECT + TQ_OBJECT public: RotWidget( QWidget *, const QColor&, const QColor&, int ); ~RotWidget(); diff --git a/tde-i18n-sv/docs/tdevelop/kde_app_devel/index.docbook b/tde-i18n-sv/docs/tdevelop/kde_app_devel/index.docbook index 1199f3dd570..4b4dad3adb5 100644 --- a/tde-i18n-sv/docs/tdevelop/kde_app_devel/index.docbook +++ b/tde-i18n-sv/docs/tdevelop/kde_app_devel/index.docbook @@ -229,7 +229,7 @@ return a.exec(); Interaktion mellan objekt med signaler och slots Nu kommer vi till den mest uppenbara fördelen med QT-verktygslådan: signal/slot-mekanismen. Den erbjuder en mycket bekväm och användbar lösning för kommunikation mellan objekt, som oftast löses med återanropsfunktioner i X-windows verktygslådor. Eftersom kommunikationen kräver strikt programmering och ibland gör det mycket svårt att skapa användargränssnitt (som beskrivs i QT-dokumentationen och förklaras i Programming with Qt av K. Dalheimer), uppfann TrollTech ett nytt system där objekt kan skicka signaler som kan anslutas till metoder som deklareras som slots. Som programmerare av C++, behöver man bara veta några saker om mekanismen: -klassdeklarationen av en klass som använder signaler och slots måste innehålla makrot Q_OBJECT i början (utan ett semikolon), och måste härledas från klassen QObject +klassdeklarationen av en klass som använder signaler och slots måste innehålla makrot TQ_OBJECT i början (utan ett semikolon), och måste härledas från klassen QObject en signal kan skickas med nyckelordet emit, t.ex. emit signal(parametrar);, inne i vilken medlemsfunktion som helst i en klass som tillåter användning av signaler och slots alla signaler som används av klasser som inte ärvs måste läggas till i klassdeklarationen i en signalsektion @@ -471,7 +471,7 @@ return a.exec(); Som du kan se, har vi lagt till radnummer framför varje rad som inte visas i utmatningen, men som gör det enklare att beskriva vad som sker under byggningen. För det första fungerar byggprogrammet rekursivt. Det betyder att det börjar i katalogen där det startas, först går ner i underkataloger, en i taget, och därefter återgår till katalogen där det startades, behandlar det, och sedan avslutas. Den första intressanta raden är 24. Observera att g++, som är vår C++ kompilator, anropas av make på den här raden för att kompilera den första källkodsfilen i vårt projekt - i det här fallet main.cpp. Många ytterligare kommandoradsväljare används också med g++ kompilatorn.Vissa är förvalda, medan andra kan anpassas via &tdevelop;. -Innan nästa fil (kscribble.cpp, rad 29) kompileras, körs först moc (metaobjektkompilatorn) för kscribble.h (rad 25). Det sker därför att KScribble-klasser använder signaler och slots, så att makrot Q_OBJECT måste expanderas, och moc gör det åt oss. Resultatfilen, kscribble.moc, används av kscribble.cpp via satsen #include i filen. +Innan nästa fil (kscribble.cpp, rad 29) kompileras, körs först moc (metaobjektkompilatorn) för kscribble.h (rad 25). Det sker därför att KScribble-klasser använder signaler och slots, så att makrot TQ_OBJECT måste expanderas, och moc gör det åt oss. Resultatfilen, kscribble.moc, används av kscribble.cpp via satsen #include i filen. diff --git a/tde-i18n-sv/docs/tdewebdev/kommander/extending.docbook b/tde-i18n-sv/docs/tdewebdev/kommander/extending.docbook index feea978bffc..8a0604eff06 100644 --- a/tde-i18n-sv/docs/tdewebdev/kommander/extending.docbook +++ b/tde-i18n-sv/docs/tdewebdev/kommander/extending.docbook @@ -29,7 +29,7 @@ class QShowEvent; class KomLineEdit : public KLineEdit, public KommanderWidget { - Q_OBJECT + TQ_OBJECT TQ_PROPERTY(QString populationText READ populationText WRITE setPopulationText DESIGNABLE false) TQ_PROPERTY(QStringList associations READ associatedText WRITE setAssociatedText DESIGNABLE false)