如何更改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();
您可以使用样式表:
QFileDialog *fdiag = new QFileDialog;
fdiag->setStyleSheet("QPushButton{min-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);
}
}
由于我最近遇到了这个问题,对于Qt5,由于Qt4中的一些原因,它起了作用,您需要确保Qt从layout()中返回的不是Null。
您需要使用选项QFileDialog::DontUseNativeDialog
初始化"系统"对话框,例如使用dlg->setOption(QFileDialog::DontUseNativeDialog, true);