我有这段代码:
#include <QApplication>
#include <QPushButton>
int main(int argc, char **argv) {
QApplication a(argc, argv);
QWidget *widget = new QWidget();
widget->setFixedWidth(600);
widget->setFixedHeight(600);
QPushButton* button = new QPushButton(widget);
button->setText("Test");
button->setStyleSheet("QPushButton { background: red; width: 400px; height: 200px; }");
int w = button->width();
int h = button->height();
QObject::connect(button, &QPushButton::clicked, button, [=]() { button->setText("W: " + QString::number(w) + " H: " + QString::number(h)); });
widget->show();
return a.exec();
}
按钮显示正确(颜色为红色且尺寸正确),但w
和h
变量分别为100
和30
。应用样式表后,width()
和height()
似乎没有采用更新后的值。
如何在应用样式表后正确检索QPushButton
的尺寸?
我在Visual Studio 2017(64位)上使用Qt 5.11.0。
编辑:我在按下时添加了一个lambda插槽来显示按钮文本的宽度和高度,以便在输入exec()后检查它们是否相同。