wie QActions zu KERBT mit Qt Designer verbinden
-
10-10-2019 - |
Frage
Ich habe eine gut aussehende Werkzeugleiste qt Designer erstellt und es mit einigen Aktionen bevölkert.
Ich habe versucht, auf die Aktionen Schlitze optisch von qt Designer verbinden , indem Sie auf Bearbeiten> Signale und Slots . Das hat nicht funktioniert , weil ich keine QAction Signale nicht finden konnten.
Frage.
Gibt es eine Möglichkeit, das QAction SIGNAL (ausgelöst ()) auf meine Slots innerhalb QT Designer zu verbinden?
Bitte Hilfe.
PS:
Ich bin derzeit gezwungen, durch den Code zu verbinden:
QObject::connect(myAction, SIGNAL(triggered()),this, SLOT(myActionWasTriggered()))
aber ia ist faul und ich wünsche mit qt-Designern verbinden.
Lösung
Sehen Sie hier in Docs Designer Connection Mode . .. Wie im Designer
autconnectAndere Tipps
Es gibt "Signal / Slot-Editor" koppelte Panel (Toggled mit View-> Signal / Slot-Editor). Sie können Ihre Aktionen dort anschließen. Sie können auch Ihre individuelle Schlitze über das „Change Signale / Slots“ -Form Kontextmenü hinzufügen müssen.
Sie sich etwas Arbeit speichern, verwenden Sie die automatische Verbindungsfunktion (siehe QMetaObject: : connectSlotsByName ). Grundsätzlich sind alle mit einem bestimmten Muster von on_objectName_signalName
genannt Slots Auto-angeschlossen werden.
Mit dem "Aktionseditor" Panel. Sie können es in der Nähe von "Signale & Slots Editor" finden.
Wenn Sie Menü haben, bitte nennen Sie uns Ihre Aktionen Objekt nach Menüs Angenommen, Sie haben:
File Edit View Tools Help
Sie haben 5 Menüs bar,
So haben Sie eine Reihe von action_x haben werden, x eine number.please Benennung Ihrer x entsprechend Ihrem Menü.
mehr explaintion:
File = 1
Edit = 2
View = 3
Tools = 4
Help = 5
Und angenommen:
File---> Open ..Close
Edit---> find...replace
View---> ZoomIn ... ZoomOut
Tools--->calender... prefrences
help---> help... about
Sie haben 5x2 = 10, Sie 10 Aktion haben, verwalten Sie wie:
action_11 == File>Open
action_12 == File>close
action_21 == Edit>find
and so on..
Vor Art von Make Verwaltung einfach Ihre Codierung .....