首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >特定QPushButton风格

特定QPushButton风格
EN

Stack Overflow用户
提问于 2012-12-01 00:13:12
回答 2查看 1.3K关注 0票数 2

我如何自定义QPushButton或QToolButton的外观,使其看起来类似elementaryos的网页“按钮”?

我真正想要的是特征图像位置和它旁边的文本,也许如果幸运的话,我也可以得到这样的边框,但我真的不需要标题下面的小描述:)我可以只使用StyleSheets吗,或者我必须子类QPushButton/QAbstractButton/类似的东西?我已经到处搜索了,但是没有在固定的地方画东西的话,我就没有发现那种程度的定制,这正是我不想要的。

编辑:我真的很想要一个解决方案,可以给我一个可定制的按钮,而不是固定的图像按钮,

代码语言:javascript
运行
复制
MainWindowButton(QString(title), /*opt*/QString(description), QImage(icon));
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-12-01 02:03:05

有一些办法可能会奏效。

首先,您可能会考虑使用一个普通的QPushButton并在其上添加一个QVBoxLayout来组成一个解决方案。您可以添加三个QLabels;一个用于标题文本,一个用于标题文本,另一个用于图像。一些CSS可能被用来呈现按钮的背景图像,向上和向下显示,更多CSS用于在两个标签中对文本进行样式化,并将图像放置在第三个标签上,但是当单击按钮时,您会发现标签不会向下移动。

我认为最好的解决办法是直接油漆。您可以通过子类QWidget和重写paintEvent()来实现这一点。为向上状态呈现所有内容,并为向下状态将所有内容来回移动。

您可以通过将向上和向下的状态呈现为QImage,并使用CSS对QPushbutton进行样式化,而无需子类就可以实现这一点。

这些方法也有许多组合。

票数 1
EN

Stack Overflow用户

发布于 2012-12-01 01:48:46

您可以将背景设置为白色,图标位于右角,可以创造性地使用边框图像样式表属性,其中底部边框与图标一样高,顶部、左侧和右侧边框宽为0像素。您将需要制作一个自定义图像,它基本上像图标一样,左边和顶部有几个像素宽度是白色的。

http://doc.qt.digia.com/qq/qq20-qss.html#theboxmodel

您可能需要重写paintEvent的文本。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13655018

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档