Qt 在QFileDialog布局中调整按钮小部件的大小

Qt 在QFileDialog布局中调整按钮小部件的大小,qt,qt5,Qt,Qt5,如何更改QFileDialog中按钮的大小?我试过下面的代码;它会编译,但如果我尝试加载文件对话框,应用程序会意外退出 请告诉我出了什么问题。我是新来的( QFileDialog*fdiag=newQFileDialog(); QGridLayout*glayout=静态_cast(fdiag->layout()); QLayoutItem*li=glayout->itemAtPosition(3,3); QRect按钮rect=li->geometry(); int newHeight=按钮r

如何更改QFileDialog中按钮的大小?我试过下面的代码;它会编译,但如果我尝试加载文件对话框,应用程序会意外退出

请告诉我出了什么问题。我是新来的(

QFileDialog*fdiag=newQFileDialog();
QGridLayout*glayout=静态_cast(fdiag->layout());
QLayoutItem*li=glayout->itemAtPosition(3,3);
QRect按钮rect=li->geometry();
int newHeight=按钮rect.height()+20;
int newWidth=buttonRect.height()+20;
按钮删除设置高度(新建高度);
按钮rect.setWidth(newWidth);
li->setGeometry(按钮删除);
fdiag->调整大小(720480);
fdiag->setWindowTitle(“媒体文件夹”);
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);
    }
}
QDialogButtonBox*box=fdiag->findChild();
如果(方框)
{
QPushButton*按钮=框->按钮(QDialogButtonBox::打开);
如果(按钮)
{
按钮->设置最小高度(40);
按钮->设置最小宽度(200);
}
}

您可以使用样式表:

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);
    }
}
QDialogButtonBox*box=fdiag->findChild();
如果(方框)
{
QPushButton*按钮=框->按钮(QDialogButtonBox::打开);
如果(按钮)
{
按钮->设置最小高度(40);
按钮->设置最小宽度(200);
}
}

由于我最近遇到了这个问题,在Qt5中——由于Qt4中的某些原因,它起作用了——您需要确保Qt从layout()返回非Null


您需要使用选项
QFileDialog::DontUseNativeDialog
初始化系统对话框,例如,使用
dlg->setOption(QFileDialog::DontUseNativeDialog,true);

因为我最近遇到了这个问题,在Qt5中——由于Qt4中的某些原因,它起作用了——您需要确保Qt从布局()返回非Null


您需要使用选项
QFileDialog::DontUseNativeDialog
初始化系统对话框,例如使用
dlg->setOption(QFileDialog::DontUseNativeDialog,true);

如何使用setStyleSheet更改QFileDialog的字体属性?如果可以发布代码,那就太好了。@bBush您需要更具体一些。什么字体?按钮?或者整个对话框?如何使用setStyleSheet更改QFileDialog的字体属性?如果可以发布代码,那就太好了。@bBush您需要这样做更具体一点。什么字体?按钮?还是整个对话框?