QWidgetAction溢出菜单图标列

时间:2015-08-13 22:12:32

标签: qt qmenu

在Windows上使用Qt 4.8.2。

我将用户信息放在QWidgetAction中以获取下拉菜单。但是QWidgetAction的小部件正在溢出左侧列,通常会显示操作图标:

QWidgetAction spills over

以下是代码:

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的图标,则小部件仍会溢出左列,并且不会显示图标。

我想找出其中一个解决方案:

  1. 让QWidgetAction不会溢出到菜单的图标列中
  2. 设置QWidgetAction的图标并将其显示在图标列中
  3. 完全删除菜单的图标列

由于

0 个答案:

没有答案