应用qstylesheet后,QPushButton的宽度和高度不对应

时间:2018-06-02 10:01:20

标签: c++ qt qtstylesheets qpushbutton

我有这段代码:

#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();
}

按钮显示正确(颜色为红色且尺寸正确),但wh变量分别为10030。应用样式表后,width()height()似乎没有采用更新后的值。

如何在应用样式表后正确检索QPushButton的尺寸?

我在Visual Studio 2017(64位)上使用Qt 5.11.0。

编辑:我在按下时添加了一个lambda插槽来显示按钮文本的宽度和高度,以便在输入exec()后检查它们是否相同。

0 个答案:

没有答案