• 6865阅读
  • 8回复

QStyle的自定义 [复制链接]

上一主题 下一主题
离线aoo7wangyan
 

只看楼主 倒序阅读 楼主  发表于: 2009-07-14
我子类化了QWindowsStyle,想通过重载pixelMetric()函数来改变菜单项QAction的高度,PixelMetric用哪个呢?
int Mstyle::pixelMetric(PixelMetric which, const QStyleOption* option, const QWidget * widget) const
{
    switch(which)
    {
    case PM_MenuHMargin:
        return 40;
    case PM_MenuVMargin:
        return 40;
    default:
        return QWindowsStyle::pixelMetric(which,option,widget);
    }
}
这个没效果的
离线shiroki

只看该作者 1楼 发表于: 2009-07-15
在code里翻了个遍, 发现没有地方设这个值。 这个高度是由icon的大小和文字、字体来决定的。 出个馊主意,你放个看不见的大icon上去。
--
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
离线aoo7wangyan

只看该作者 2楼 发表于: 2009-07-15
好的,谢谢,我试试看。
离线aoo7wangyan

只看该作者 3楼 发表于: 2009-07-15
图标可以修改
int Mstyle::pixelMetric(PixelMetric which, const QStyleOption* option, const QWidget * widget) const
{

    if (which == PM_SmallIconSize)
    {
        return 48;
    }
    else
    {
        return QWindowsStyle::pixelMetric (which, option, widget);
    }

}
在PixelMetric,没找到和字体相关的项,只能在QAction里赋值么?
离线shiroki

只看该作者 4楼 发表于: 2009-07-15
图标大了就可以了阿。 你是想把宽度和高度一起改掉?
又找到一个方法, 添加action的时候用QWidgetAction. 这个action里可以放个widget, 这样菜单项大小就可以通过控制widget的大小来控制了。
--
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
离线aoo7wangyan

只看该作者 5楼 发表于: 2009-07-15
恩,谢谢,我再看看。
离线aoo7wangyan

只看该作者 6楼 发表于: 2009-07-15
我看有人说可以用sizeFromContents(),请问这个函数怎么用?
离线foxyz

只看该作者 7楼 发表于: 2009-07-16
有相当多的widgets 有这个函数,这个函数是根据context来自动设置widgets大小的。比如:一些tableView等等的列宽根据
grid中的字符串长短来自动设置宽度。
离线foxgod

只看该作者 8楼 发表于: 2013-08-21
回 3楼(aoo7wangyan) 的帖子
能设置图标和菜单项文字之间的间距吗
快速回复
限100 字节
 
上一个 下一个