我试图通过样式表在QPushButton上设置图标的大小。我无法从Qt文档中找到适当的语法,以便在实现样式表中的图标图像时修改图标的大小。此应用程序用于多个uis上的QPushButton图标上,样式表设置将在父ui上设置。
这是我的代码,基于这个建议。调整大小为64或256个没有改变对象的大小。
"QPushButton#pushButton_Calibration {image: url(:/images/toolkit.png); qproperty-iconSize: 128px;}"
这是我的另一段代码,基于另一个建议。将宽度/高度调整为64或256没有改变对象的大小。
"QPushButton#pushButton_Calibration {image: url(:/images/toolkit.png); width: 128px; height: 128px;}"
我知道这样的做法是一种选择:
ui->pushButton_Calibration->setIconSize(QSize(128, 128));
但是,我不确定如何用QPushButton#pushButton_Calibration格式实现它,或者如何使用它在全局上实现它到ui元素的子元素,因为这个语法直接指向特定ui文件上的元素(至少,这是我的理解)。
如果需要更多的信息来解决这个问题,请告诉我。我不熟悉更改图标大小所需的语法,也无法从文档中找到它。
发布于 2022-09-27 11:07:19
我建议使用QPushButton::setIcon()
和QPushButton::setIconSize()
成员函数,而不是使用样式表。
这背后的一个理由是,一旦您处理样式表,给定小部件的系统样式可能会完全混乱,您可能需要重新设计整个小部件的样式,即使您只想更改特定的部件或行为。
根据Qt文档,您可以阅读以下有关图标属性的注释:
“__备注:应用程序负责为按钮分配图标(使用QAbstractButton API),而不是样式。因此,除非样式表针对特定的应用程序,否则要小心设置它。”
如果希望将更改应用于应用程序的所有按钮,则可以创建继承QPushButton
并在构造函数中设置所需属性的自己的按钮类。
示例:
.hpp
class MyButton : public QPushButton
{
Q_OBJECT
public:
MyButton(const QIcon &icon, const QString &text, QWidget *parent = nullptr);
MyButton(const QString &text, QWidget *parent = nullptr);
MyButton(QWidget *parent = nullptr);
};
.cpp
MyButton::MyButton(const QIcon &icon, const QString &text, QWidget *parent) : QPushButton(icon, text, parent)
{
setIconSize({128, 128});
}
MyButton::MyButton(const QString &text, QWidget *parent) : QPushButton(text, parent)
{
setIconSize({128, 128});
}
MyButton::MyButton(QWidget *parent) : QPushButton(parent)
{
setIconSize({128, 128});
}
当然,您可以调整它以适应您的用例(也许您也希望在构造函数中设置图标,等等)
https://stackoverflow.com/questions/73864040
复制相似问题