Qt中的對話框分爲:模態對話框和非模態對話框。
模態對話框:不可以對其他窗口進行操作,是阻塞的。
非模態對話框:可以對其他窗口進行操作。
模態對話框的創建:
QDialog dlg(this);
dlg.exec();
非模態對話框的創建:
防止對話框一閃而過 創建到堆區
QDialog *dlg = new QDialog(this);
dlg->show();
dlg->setAttribute(Qt::WA_DeleteOnClose);//55號屬性 在點擊×關閉對話框時 同時釋放資源
標準對話框 ------ 消息對話框
1:QMessageBox靜態成員函數 創建對話框
分別有critical錯誤 information信息 question問題 warning警告 四種。
//錯誤對話框
//QMessageBox::critical(this,"critical","錯誤");
//信息對話框
//QMessageBox::information(this,"information","信息");
//問題對話框
//參數1 parent 參數2 標題 參數3 顯示的信息 參數4 yes|no 也可以改成其他的 參數5 默認回車是哪個選項
// if(QMessageBox::Save == QMessageBox::question(this,"question","問題",QMessageBox::Save|QMessageBox::Cancel,QMessageBox::Cancel))
// {
// qDebug()<<"選擇的保存!";
// }
// else
// {
// qDebug()<<"選擇的取消!";
// }
//警告對話框
//QMessageBox::warning(this,"warning","警告");
其他標準對話框
1:顏色對話框 QColorDialog::getColor
// QColor color = QColorDialog::getColor(QColor(255,0,0));
// qDebug()<<"r= "<<color.red()<<"g= "<<color.green()<<"b= "<<color.blue();
2:文件對話框QFileDialog::getOpenFileName(父親,標題,默認路徑,過濾後所要看的文件類型)
//返回值是選取的路徑
// QString str = QFileDialog::getOpenFileName(this,"打開文件","C:\\Users\\LEN\\Desktop","(*.txt)");
// qDebug()<<str;
3:字體對話框 QFontDialog::getFont
bool flag;
QFont font = QFontDialog::getFont(&flag,QFont("華文彩雲",36));
qDebug()<<"字體:"<<font.family().toUtf8().data()<<"字號"<<font.pointSize()<<"是否加粗"<<font.bold()<<"是否傾斜"<<font.italic();