QT中使用QDialog實作對話框。
- 建立對話框,如果其parent為NULL,則對話框作為頂層視窗,否則則作為父元件的子對話框(預設出現在parent的中心)
- 對話框分為模态和非模态(能不能操作除了對話框以外的位置)
标準對話框
所謂标準對話框,是Qt 内置的一系列對話框,用于簡化開發。
事實上,有很多對話框都是通用的,比如打開檔案、設定顔色、列印設定等。
這些對話框在所有程式中幾乎相同,是以沒有必要在每一個程式中都自己實作這麼一個對話框。
Qt 的内置對話框大緻分為以下幾類:
QColorDialog | 選擇顔色; |
QFileDialog | 選擇檔案或者目錄; |
QFontDialog | 選擇字型; |
QInputDialog | 允許使用者輸入一個值,并将其值傳回; |
QMessageBox | 模态對話框,用于顯示資訊、詢問問題等; |
QPageSetupDialog | 為列印機提供紙張相關的選項; |
QPrintDialog | 列印機配置; |
QPrintPreviewDialog | 列印預覽; |
QProgressDialog | 顯示操作過程。 |
模态對話框
//定義一個對話框
QDialog dialog;
dialog.setwindowTitle(tr("Hello,dialog! "));//設定對話框标題
dialog.exec() ;//阻塞對話框
非模态對話框
QDialog *dialog = nlew QDialog;
dialog->setAttribute(Qt:: wA_DeleteOnclose);//關閉視窗自動釋放
dialog-> setwindowTitle(tr( "Hello, dialog ! "));
dialog->show ) ;
消息對話框
//消息對話框
QMessageBox::about(this ,"标題", "内容");
//詢問對話框
int ret = QMessageBox::question(this,"标題","你需要嗎",QMessageBox::Open|QMessageBox: Save);
if(ret == QMessageBox: :Open)
{
qDebug()<<"open" ;
}
else
qDebug()<<"save" ;