如題所示,我建立一個菜單,代碼如下,但是菜單項的高度太小了,
{
popupMenu = new QMenu(this);
QAction *action1 = new QAction(tr("&New1"), this);
QAction *action2 = new QAction(tr("&New2"), this);
QAction *action3 = new QAction(tr("&New3"), this);
QAction *action4 = new QAction(QIcon("./load.png"), tr("Bookstore"), this);
popupMenu->addAction(action1);
popupMenu->addAction(action2);
popupMenu->addAction(action3);
popupMenu->addAction(action4);
popupMenu->exec();
}
我用如下的方法設置菜單項的高度,但是都不行:
popupMenu->setFixedHeight(300);//這樣只把菜單變大了,action還是那么小
popupMenu->setStyleSheet("QMenu::item { min-height: 100px }");//不好用?
究竟如何才好呢?
感謝大家的熱心解答,我把我的收獲貼在下面:
首先是簡單的方法:
popupMenu->setStyleSheet("QMenu::item{ padding:100px;}");
這一句話就夠。
其次使用QWidgetAction:
1)首先
class MyMenuItem:public QWidget
{
Q_OBJECT
public:
MyMenuItem(QWidget *parent)
{
new QLabel("test",this);
}
};
2)其次:
MyMenuItem *item1 = new MyMenuItem(this);
item1->setFixedSize(100,100);//這里可以設置大小
QWidgetAction *action1 = new QWidgetAction(popupMenu);
action1->setDefaultWidget(item1);
MyMenuItem *item2 = new MyMenuItem(this);
QWidgetAction *action2 = new QWidgetAction(popupMenu);
action2->setDefaultWidget(item2);
MyMenuItem *item3 = new MyMenuItem(this);
QWidgetAction *action3 = new QWidgetAction(popupMenu);
action3->setDefaultWidget(item3);