【问题标题】:Qt5: QPushButon size settingQt5:QPushButton 大小设置
【发布时间】:2017-09-13 09:28:57
【问题描述】:

这有点令人沮丧,但我找不到设置 QPushButton 大小的正确方法。根据我的阅读,我认为这段代码应该可以工作:

// SEND BUTTON
sendButton = new QPushButton(this);
sendButton->setText("Send");
sendButton->setMinimumSize(QSize(0,0));
sendButton->setMaximumSize(QSize(10000,10000));
sendButton->setGeometry(QRect(QPoint(30, 100),QSize(10, 20)));
connect(sendButton, &QPushButton::released, this, &MainWindow::handleSendButton);


// CENTRAL WIDGET
QWidget* centralWidget = new QWidget(this);
centralWidget->setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding);

// LAYOUT
QGridLayout* layout = new QGridLayout(centralWidget);
layout->addWidget(sendButton,0,0,0,0);

但按钮总是扩展到整个应用程序窗口。你能帮忙吗?

【问题讨论】:

  • 你确实将它的最大尺寸设置得相当大(减少这个)。它将在网格布局中最大化,因为它没有 Spacers 作为邻居。尝试在设计器中构建它,在那里你可以看到发生了什么以及生成了什么代码。
  • 谢谢,现在我对布局有了更深入的了解。

标签: c++ qt qt5


【解决方案1】:

小部件默认的策略是QSizePolicy::Preferred,但在您的情况下,您应该使用QSizePolicy::Fixed

QSizePolicy::Preferred:sizeHint() 是最好的,但小部件可以 缩小了,仍然有用。小部件可以展开,但有 它比 sizeHint() 大没有优势(默认的 QWidget 政策)。

QSizePolicy::Fixed:QWidget::sizeHint() 是唯一可接受的 替代方案,因此小部件永远不会增长或缩小(例如垂直 按钮的方向)。

此外,您必须建立居中对齐,以便从上面得到以下内容:

sendButton->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
layout->addWidget(sendButton,0,0,0,0, Qt::AlignCenter);

【讨论】:

    猜你喜欢
    • 2014-03-08
    • 2023-03-08
    • 1970-01-01
    • 2018-04-23
    • 2013-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-24
    相关资源
    最近更新 更多