如何设置QPushButton的精确尺寸?

时间:2016-03-17 14:12:58

标签: c++ qt user-interface qt5

我有SignatureEditorForm类,它继承了QDialog类:

SignatureEditorForm(QWidget* parent_widget) : QDialog(parent_widget)
{
    resize(SIGNATURE_EDITOR_SIZE);
    setWindowTitle(QString("Signature Editor"));
    setWindowFlags(Qt::Window | Qt::MSWindowsFixedSizeDialogHint | Qt::WindowCloseButtonHint);
    setModal(true);
    {
        QPushButton* const button = new QPushButton(QString("<"), this);
        const QSize BUTTON_SIZE = QSize(22, 22);
        button->resize(BUTTON_SIZE);
    }
}

它包含QPushButton,其大小(宽度:22,高度:22)和&#34;&lt;&#34;字幕。 我有这个小部件的图片(SignatureEditorForm)。 QPushButton的大小(宽度:20,高度:20)。如何设置按钮的精确尺寸?

P.S。我尝试使用setMinimumSize,但它没有效果。

enter image description here

P.P.S。此行按钮 - &gt; setStyleSheet(&#34; border:1px solid black; background:white&#34;);给出这样的效果(精确尺寸)

enter image description here

2 个答案:

答案 0 :(得分:4)

Card

这个和其他方法可以很好地设置QWidget的确切大小。

但你的问题不在Qt中,而是在Windows Styling中。

小部件的实际大小是准确的,但Windows为动画的边框预留空间,因此它看起来比您预期的要小。

要修复它,你需要编写自己的样式:

QWidget::setFixedSize  

或使用此处提供的任何样式:

http://doc.qt.io/qt-5/gallery.html

答案 1 :(得分:0)

使用此:

QPushButton* const button = new QPushButton(QString("<"), this); 
const QSize BUTTON_SIZE = QSize(22, 22);
button->setMinimumSize(BUTTON_SIZE);

或:

button->setSize( BUTTON_SIZE )

或:

button->setMinimumSize( BUTTON_SIZE )