在Windows上使用Qt 4.8.2。
我将用户信息放在QWidgetAction中以获取下拉菜单。但是QWidgetAction的小部件正在溢出左侧列,通常会显示操作图标:
以下是代码:
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");
如果我从小部件中删除像素图并将其设置为QWidgetAction的图标,则小部件仍会溢出左列,并且不会显示图标。
我想找出其中一个解决方案:
由于