QMenu Titel [gelöst]

Alles rund um die Programmierung mit Qt
Antworten
Strahlex
Beiträge: 158
Registriert: 23. Dezember 2008 15:49
Wohnort: Österreich

QMenu Titel [gelöst]

Beitrag von Strahlex »

Ich möchte gerne in mein Menü einen Titel einfügen, so wie es z.B. beim HPLIP Status Service gemacht wird.
Ich habe das jetzt mit einem QWidgetAction und einem QLabel versucht, funktioniert auch super, nur wie kann ich jetzt noch ein Icon hinzufügen?
Zuletzt geändert von Strahlex am 23. April 2009 23:52, insgesamt 1-mal geändert.
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Wem willst du jetzt ein QIcon hinzufügen, deinem QMenu oder deinem QLabel?
Strahlex
Beiträge: 158
Registriert: 23. Dezember 2008 15:49
Wohnort: Österreich

Beitrag von Strahlex »

So solls dann Aussehen:
Bild
Strahlex
Beiträge: 158
Registriert: 23. Dezember 2008 15:49
Wohnort: Österreich

Beitrag von Strahlex »

Ok, die Lösung ist einfach ein Widget erstellen und darauf ein HBoxLayout zu schmeißen, darauf dann zwei Labels (eines für Icon und das andere für den Text).
Das Widget dann als WidgetAction einfügen.
defenderLQ
Beiträge: 156
Registriert: 27. Juli 2006 20:53

Beitrag von defenderLQ »

ich habs auch hinbekommen:

Code: Alles auswählen

      QMenu contextMnu( this );
      QMouseEvent *mevent = new QMouseEvent( QEvent::MouseButtonPress, point, Qt::RightButton, Qt::RightButton, Qt::NoModifier );

      QWidget *widget = new QWidget();  
      
      QHBoxLayout *hbox = new QHBoxLayout();
      hbox->setMargin(0);
      hbox->setSpacing(6);
    
      iconLabel = new QLabel( this );
      iconLabel->setPixmap(QPixmap::QPixmap(":/images/icon.png"));
      hbox->addWidget(iconLabel);
       
      textLabel = new QLabel( tr("<strong>Title</strong>"), this );
      hbox->addWidget(textLabel);
       
      widget->setLayout( hbox );
    
      QWidgetAction *widgetAction = new QWidgetAction(this); 
      widgetAction->setDefaultWidget(widget); 

      contextMnu.clear();
      contextMnu.addAction( widgetAction);
      contextMnu.exec( mevent->globalPos() );
pfid
Beiträge: 535
Registriert: 22. Februar 2008 16:59

Beitrag von pfid »

Also bei mir geht das "automatisch", wenn ich dem Menü eine QAction hinzufüge welche ein QIcon besitzt.

Oder ich versteh die Frage falsch :?:
defenderLQ
Beiträge: 156
Registriert: 27. Juli 2006 20:53

Beitrag von defenderLQ »

Ja ich wusste schon das ich das QAction auch nehmen kann , aber das ist mehr für die Actions geeignet.

Ich meine für ein Titel ist es nicht so toll mit QAction, ein widget im Titel kann man auch besser stylen.

Ein QAction ist auch selektierbar aber beim Titel will ich keine selektierung.
Antworten