我有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,但它没有效果。
P.P.S。此行按钮 - &gt; setStyleSheet(&#34; border:1px solid black; background:white&#34;);给出这样的效果(精确尺寸)
答案 0 :(得分:4)
Card
这个和其他方法可以很好地设置QWidget的确切大小。
但你的问题不在Qt中,而是在Windows Styling中。
小部件的实际大小是准确的,但Windows为动画的边框预留空间,因此它看起来比您预期的要小。
要修复它,你需要编写自己的样式:
QWidget::setFixedSize
或使用此处提供的任何样式:
答案 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 )