Qt Hilfe
-
Hallo erstmal,
also ich hab seit neuem angefangen Qt zu lernen und versteht eines nicht
bei klassen
im Buch steht mann kann signale und slots nur in klassen definiert werden
die von der klasse QObject abgeleitet sindund im nächsten schritt bisschen danach erstellt er noch ne klasse von der Klasse
QWidget abgeleitet und definiert slotsalso meine frage worauf kommst an von welcher Klasse man Ableitet ??
kommst drauf an was man in der klasse definieren will ??
ich würd mich freuen wenn mir das jemand eklären könnte
-
ali-g schrieb:
im Buch steht mann kann signale und slots nur in klassen definiert werden
die von der klasse QObject abgeleitet sindund im nächsten schritt bisschen danach erstellt er noch ne klasse von der Klasse
QWidget abgeleitet und definiert slotsDie Qt-Doku ist eigentlich ziemlich schön
Schau mal bei QWidget gleich in die ersten Zeilen, da findest du so etwas:Inherits QObject and QPaintDevice.
Das bedeutet in C++: "Ein QWidget ist auch/verhält sich wie ein QObject." Für dich ist wichtig, dass es die Fähigkeiten von QObject beherrscht - in dem Fall SIGNAL-SLOT-Verbindungen.
Das SIGNAL/SLOT-Konzept wird nicht erst bei QWidget angesetzt, da z.B. auch Sachen wie TcpSocket usw. mit SIGNALs seinen State bekannt gibt, und dafür ist kein Widget (= grafisches Element) nötig.also meine frage worauf kommst an von welcher Klasse man Ableitet ??
kommst drauf an was man in der klasse definieren will ??
ich würd mich freuen wenn mir das jemand eklären könnteEs kommt darauf an, was deine Klasse darstellen soll. Willst du z.B. ein recht spezielles Gerät ansprechen, das an einer ganz eigenen Hardware-Schnittstelle hängt, wirst du wohl von QIODevice ableiten. Wenn du hingegen einen tollen "Wunderbutton" schreiben willst, der auf ein "click" rotiert, wirst du von QPushButton erben. Wenn du ein ganz eigenes Widget für irgendwelche Anzeigen brauchst (z.B. Wahlbarometer) wirst du dir ein komplett eigenes Widget schreiben und damit von QWidget ableiten müssen.
-
ok sehr vielen Dank
ich habs verstanden danke nochmals