Qt4 QT 4.5-无法将模态对话框设置为模态。有哪些陷阱需要小心?

Qt4 QT 4.5-无法将模态对话框设置为模态。有哪些陷阱需要小心?,qt4,modal-dialog,Qt4,Modal Dialog,所以我有一个模态对话框: class GraphChooser : public QDialog { Q_OBJECT public: GraphChooser(QWidget * parent = 0); virtual ~GraphChooser(); void addGraphItem(QString factoryKey, QString graphDescription); public slots: void graphConfirmed(voi

所以我有一个模态对话框:

class GraphChooser : public QDialog
{

Q_OBJECT

public:
    GraphChooser(QWidget * parent = 0);
    virtual ~GraphChooser();
    void addGraphItem(QString factoryKey, QString graphDescription);

public slots:
    void graphConfirmed(void);
    void showDialog(void) { exec(); };

private:
    QMap<QString, QString> graphNameToFactoryMap_;
    Ui::GraphChooser ui;


signals:
    void graphSelected(QString& selected);

};

对话框不是模态的。我还用一个简单的老show()尝试了setModal(true)。还有什么我应该注意的吗?

创建对话框时必须设置父窗口小部件。否则,对话框不知道它应该是模态的。

或者您可以使用Qt::ApplicationModal的SetModality(Qt::Modality)函数将QDialog设置为ApplicationModal
connect(dataForm_.btnAddWindow, SIGNAL(clicked()),
        &graphChooser_, SLOT(exec()));