LmT*_*oon 5 c++ user-interface qt 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);
}
}
Run Code Online (Sandbox Code Playgroud)
它包含 QPushButton,它具有大小(宽度:22,高度:22)和“<”标题。我有这个小部件的图片(SignatureEditorForm)。QPushButton 有大小(宽:20,高:20)。如何设置按钮的精确大小?
PS 我尝试使用 setMinimumSize,但它没有效果。
PPS 这一行 button->setStyleSheet("border: 1px solid black; background: white"); 产生这样的效果(精确的尺寸)
QWidget::setFixedSize
Run Code Online (Sandbox Code Playgroud)
这种方法和其他方法可以很好地设置 QWidget 的确切大小。
但是您的问题不在 Qt 中,而在 Windows 样式中。
小部件的实际大小是准确的,但 Windows 在边框上为动画保留了空间,因此它看起来比您预期的要小。
要修复它,您需要像这样编写自己的样式:
button->setStyleSheet("border: 1px solid black; background: white");
Run Code Online (Sandbox Code Playgroud)
或使用此处提供的任何样式:
http://doc.qt.io/qt-5/gallery.html
归档时间: |
|
查看次数: |
17428 次 |
最近记录: |