• 16871阅读
  • 4回复

[已经解决]如何设置QMenu中菜单项的高度? [复制链接]

上一主题 下一主题
离线vaqeteart
 

只看楼主 倒序阅读 楼主  发表于: 2010-05-07
如题所示,我建立一个菜单,代码如下,但是菜单项的高度太小了,
    {
        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);

ok!!!
[ 此帖被vaqeteart在2010-05-10 18:13重新编辑 ]
离线shiroki

只看该作者 1楼 发表于: 2010-05-07
可以用QWidgetAction
--
shiro is White
ki is tree
http://www.cuteqt.com
论坛 http://www.cuteqt.com/bbs
博客 http://www.cuteqt.com/blog
博客镜像: http://sites.cuteqt.com/cuteqt
Linux/Qt/嵌入式讨论群 http://qun.qq.com/air/5699823
离线vaqeteart

只看该作者 2楼 发表于: 2010-05-10
QAction没有办法吗?
离线抠涕
只看该作者 3楼 发表于: 2010-05-10
只改item 高度, 不改字体可以用  styleSheet

QMenu::item { padding: xx xx xx xx;}

要在你 exec 之前设置。
离线vaqeteart

只看该作者 4楼 发表于: 2010-05-10
引用第3楼抠涕于2010-05-10 10:38发表的  :
只改item 高度, 不改字体可以用  styleSheet
QMenu::item { padding: xx xx xx xx;}
要在你 exec 之前设置。



多谢!这个是正解!!太谢谢了!!
快速回复
限100 字节
 
上一个 下一个