簡體   English   中英

在QFileDialog布局中調整按鈕小部件的大小

[英]Resize the button widget in QFileDialog layout

如何在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);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM