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

我真正想要的是特征图像位置和它旁边的文本,也许如果幸运的话,我也可以得到这样的边框,但我真的不需要标题下面的小描述:)我可以只使用StyleSheets吗,或者我必须子类QPushButton/QAbstractButton/类似的东西?我已经到处搜索了,但是没有在固定的地方画东西的话,我就没有发现那种程度的定制,这正是我不想要的。
编辑:我真的很想要一个解决方案,可以给我一个可定制的按钮,而不是固定的图像按钮,
MainWindowButton(QString(title), /*opt*/QString(description), QImage(icon));发布于 2012-12-01 02:03:05
有一些办法可能会奏效。
首先,您可能会考虑使用一个普通的QPushButton并在其上添加一个QVBoxLayout来组成一个解决方案。您可以添加三个QLabels;一个用于标题文本,一个用于标题文本,另一个用于图像。一些CSS可能被用来呈现按钮的背景图像,向上和向下显示,更多CSS用于在两个标签中对文本进行样式化,并将图像放置在第三个标签上,但是当单击按钮时,您会发现标签不会向下移动。
我认为最好的解决办法是直接油漆。您可以通过子类QWidget和重写paintEvent()来实现这一点。为向上状态呈现所有内容,并为向下状态将所有内容来回移动。
您可以通过将向上和向下的状态呈现为QImage,并使用CSS对QPushbutton进行样式化,而无需子类就可以实现这一点。
这些方法也有许多组合。
发布于 2012-12-01 01:48:46
您可以将背景设置为白色,图标位于右角,可以创造性地使用边框图像样式表属性,其中底部边框与图标一样高,顶部、左侧和右侧边框宽为0像素。您将需要制作一个自定义图像,它基本上像图标一样,左边和顶部有几个像素宽度是白色的。
http://doc.qt.digia.com/qq/qq20-qss.html#theboxmodel
您可能需要重写paintEvent的文本。
https://stackoverflow.com/questions/13655018
复制相似问题