Qt Designer: Problem mit QAction/QPopupMenu im QMainWindow

Alles rund um die Programmierung mit Qt
Antworten
baume
Beiträge: 9
Registriert: 23. Januar 2005 01:50
Wohnort: Stuttgart

Qt Designer: Problem mit QAction/QPopupMenu im QMainWindow

Beitrag von baume »

Hallo allerseits,

als Ein/Umsteiger (von SGI Viewkit/Motif) in die Programmierung mit Qt unter Linux habe ich folgendes Problem:

UI-Klasse (vom Qt Designer automatisch generiert):

Code: Alles auswählen

class myWindowUI : public QMainWindow
..........
    View = new QPopupMenu( this );
    popupMenu_81 = new QPopupMenu( this );
    viewDatasetAction = new QAction( this, "viewDatasetAction" );
    View->insertItem( viewDatasetAction->iconSet(), tr( "&Dataset" ), popupMenu_81 );
    viewDatasetFirstAction->addTo( popupMenu_81 );
..........

Abgeleitete Klasse:

Code: Alles auswählen

class myWindow : public myWindowUI
.........
 	popupMenu_81->insertTearOffHandle();
.........
Ich benutze den Qt Designer zur automatischen Generierierung von UI-Klassen, die ich mittels Vererbung in eigene, angepasste Klassen vermoste:

ClassUI (classui.[Ch]) -> Class (class.[Ch])

Generierte Basisklasse (UI):
Wenn ich im QMainWindow in ein Menü einen neuen Eintrag einfüge, erzeugt der Designer eine QAction, von der lediglich das QIconSet zusammen mit einem automatisch nummerierten QPopupMenu in das Elternmenü gepflanzt wird.

Abgeleitete Klasse:
Hier kenne ich namentlich nur das (public) QAction-Objekt im Voraus.

Frage:
Muss ich nun jedes Mal, wenn sich der UI-Code des Qt Designer implizit verändert hat - und damit auch evtl. die Benennung des QPopupMenus -, Zugriffe auf das QPopupMenu explizit anpassen?

Oder gibt es alternativ eine elegante Möglichkeit, dynamisch z.B. via Child/Parent-Aufrufe auf die Funktionalität des QPopupMenu zuzugreifen? Beispielsweise, um eine tear-off handle einzufügen etc., was mit einer QAction ja direkt nicht möglich ist.

Kann mir da jemand einen Tipp geben? Vielen Dank im Voraus.
Gruss, Martin
Antworten