Using Qt 4.8.2, on Windows.
I'm putting user information in a QWidgetAction for a drop-down menu. But the QWidgetAction's widget is spilling over the left column where action icons are normally displayed:
Here's the code:
QMenu *menu = new QMenu;
QIcon icon(...);
QLabel *iconLabel = new QLabel;
iconLabel->setPixmap(icon.pixmap(32, 32)); // XXX what size?
QLabel *userName = new QLabel("user name");
QLabel *userEmail = new QLabel("Rfoo@bar.com");
// Layouts
QVBoxLayout* vbox = new QVBoxLayout();
vbox->addWidget(userName);
vbox->addWidget(userEmail);
QHBoxLayout* hbox = new QHBoxLayout;
hbox->addWidget(iconLabel);
hbox->addLayout(vbox);
// container widget
QWidget* widget = new QWidget;
widget->setLayout(hbox);
// Widget Action
QWidgetAction* widgetAction = new QWidgetAction(menu);
widgetAction->setDefaultWidget(widget);
menu->addAction(widgetAction);
menu->addSeparator();
menu->addAction("P....... P.......");
menu->addSeparator();
menu->addAction("Sign Out");
If I remove the pixmap from the widget and set it as the QWidgetAction's icon, the widget still spills over the left column and the icon is not displayed.
I'd like to figure out one of these solutions:
- keep the QWidgetAction from spilling into the menu's icon column
- set the QWidgetAction's icon and have it displayed in the icon column
- remove the menu's icon column completely
Thanks