笔记:QT的模态对话框、非模态对话框及QLineEdit的验证器和补全器
1.调用模态对话框
(1)调用dialog->exec()方法;
1 QDialog dialog; 2 dialog.exec(); 3 int x = 4+5;//dialog窗口关闭后才会执行
(2)dialog->setModal(true);
dialog->show();
1 QDialog *dialog = new QDialog(this); 2 dialog->setModal(true); 3 dialog->show(); 4 int x = 4+5;//不用等dialog关闭,执行完dialog->show()马上执行 5 ... 6 delete dialog;
2.调用非模态对话框
(1)dialog->show();
3.如何在关闭窗口同时销毁窗口
只有当剩下最后一个主界面时调用close()时程序才会退出,其他情况下界面只是隐藏,要想close()的同时销毁窗口,调用dialog->setAttribute(Qt::WA_DeleteOnClose, true);
4.setWindowModality(Qt::WindowModality windowModality)
Qt::NonModal:非模态;
Qt::WindowModal:阻塞父窗口和所有祖先窗口及它们的子窗口;
Qt::ApplicationModal:阻塞整个应用程序。
5.QLineEdit的验证器
1 QLineEdit edit; 2 QValidator *validator = new QIntValidator(10, 100, &edit); 3 edit.setValidator(validator);
6.QLineEdit的补全器
1 QLineEdit edit; 2 QStringList words; 3 words << "Hello" << "World" << "欢迎"; 4 QCompleter *completer = new QCompleter(words, &edit); 5 completer->setCaseSensitivity(Qt::CaseInsensitive); 6 edit.setCompleter(completer);