在 QFileDialog 布局中调整按钮小部件的大小
Posted
技术标签:
【中文标题】在 QFileDialog 布局中调整按钮小部件的大小【英文标题】:Resize the button widget in QFileDialog layout 【发布时间】:2013-12-13 09:55:14 【问题描述】:如何改变 QFileDialog 中按钮的大小?我尝试了以下代码;它可以编译,但如果我尝试加载文件对话框,应用程序会意外退出。
请让我知道出了什么问题。我是 QT 的新手。 :(
QFileDialog *fdiag = new QFileDialog();
QGridLayout *glayout = static_cast <QGridLayout*>(fdiag->layout());
QLayoutItem *li = glayout->itemAtPosition(3,3);
QRect buttonRect = li->geometry() ;
int newHeight = buttonRect.height() + 20;
int newWidth = buttonRect.height() + 20;
buttonRect.setHeight(newHeight);
buttonRect.setWidth(newWidth);
li->setGeometry(buttonRect);
fdiag->resize(720,480);
fdiag->setWindowTitle("Media Folder");
fdiag->exec();
【问题讨论】:
【参考方案1】:您可以只使用样式表:
QFileDialog *fdiag = new QFileDialog;
fdiag->setStyleSheet("QPushButtonmin-height: 40px; min-width: 200px;");
或者,如果您只想调整特定按钮的大小:
QDialogButtonBox *box = fdiag->findChild<QDialogButtonBox*>();
if(box)
QPushButton *button = box->button(QDialogButtonBox::Open);
if(button)
button->setMinimumHeight(40);
button->setMinimumWidth(200);
【讨论】:
如何使用 setStyleSheet 更改 QFileDialog 的字体属性?如果有人可以发布代码,那就太好了。 @Bhush 您需要更具体一些。什么字体?按钮?还是整个对话?【参考方案2】:由于我最近遇到了这个问题,使用 Qt5 - 由于某些原因在 Qt4 中它起作用了 - 你需要确保 Qt 从 layout() 返回的不是 Null。
您需要使用选项QFileDialog::DontUseNativeDialog
初始化系统对话框,例如dlg->setOption(QFileDialog::DontUseNativeDialog, true);
【讨论】:
以上是关于在 QFileDialog 布局中调整按钮小部件的大小的主要内容,如果未能解决你的问题,请参考以下文章