【发布时间】:2011-07-10 03:33:32
【问题描述】:
我创建了 2 行按钮,每行都在 QHBoxLayout 内。
我在代码中创建按钮:
static const char* buttonText = "23456789TJQKA";
for (int ii = 0; buttonText[ii]; ii++)
{
QPushButton* pushButton = new QPushButton(this);
pushButton->setText(QString(buttonText[ii]));
ui->horizontalLayout_1->addWidget(pushButton);
}
for (int ii = 0; buttonText[ii]; ii++)
{
QPushButton* pushButton = new QPushButton(this);
pushButton->setText(QString(buttonText[ii]));
ui->horizontalLayout_2->addWidget(pushButton);
}
问题是它们不能缩小(当用户调整对话框大小时)超出该大小,即使它们的文本可以适应更小的宽度。如果我在资源编辑器中而不是在代码中手动创建按钮,它们的宽度可能会比这更小。
【问题讨论】:
-
成功了!谢谢。如果您将此作为答案发布,我可以选择它作为接受的答案。但是为什么调整大小对 QToolButton 有效,而对 QPushButton 无效?
-
QToolButton 和 QPushButton 具有不同的默认“样式”。例如,QPushButton 的最小宽度约为 6em。意思是 6 个字符的宽度(在您使用的字体中)。 QToolButton,因为它通常用于图像或“...”之类的东西,所以它的最小宽度要小得多——比如 2em。 QPushButton,通常也有更多的左边距/右边距。如果你开始使用样式表,这是你可以修改的。
-
您也可以使用 setMinimumSize(QSize&) 来定义最小范围。