我有 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);
}
}
它包含具有大小(宽度:22,高度:22)和“<”标题的 QPushButton。 我有这个小部件(SignatureEditorForm)的图片。 QPushButton 有大小(宽度:20,高度:20)。如何设置按钮的精确尺寸?
附言我尝试使用 setMinimumSize,但没有效果。
附言这一行 button->setStyleSheet("border: 1px solid black; background: white");给出这样的效果(精确尺寸)
最佳答案
QWidget::setFixedSize
此方法和其他方法可以很好地设置 QWidget 的确切大小。
但您的问题不在 Qt 中,而是在 Windows 样式中。
小部件的实际大小是准确的,但 Windows 在边框上为动画保留了空间,因此它看起来比您预期的要小。
要修复它,您需要像这样编写自己的样式:
button->setStyleSheet("border: 1px solid black; background: white");
或使用此处可用的任何样式:
关于c++ - 如何设置 QPushButton 的精确大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36063103/