QT 對話方塊QDialog
PS:
1.關閉主視窗並退出程式是 QApplication::exit()
2.如果是QDialog,就accept() 或 reject()
3.對於所有QWidget:close()
PPS:
show()與exec()區別:
show():
顯示一個非模式對話方塊。控制權即刻返回給呼叫函式。
彈出視窗是否模式對話方塊,取決於modal屬性的值。
exec():
顯示一個模式對話方塊,並且鎖住程式直到使用者關閉該對話方塊為止。函式返回一個DialogCode結果。
在對話方塊彈出期間,使用者不可以切換同程式下的其它視窗,直到該對話方塊被關閉。
先簡單說一下我對模式和非模式對話方塊的一點點理解:
模式對話方塊,就是在彈出視窗的時候,整個程式就被鎖定了,處於等待狀態,直到對話方塊被關閉。這時往往是需要對話方塊的返回值進行下面的操作。如:確認視窗(選擇“是”或“否”)。
非模式對話方塊,在呼叫彈出視窗之後,呼叫即刻返回,繼續下面的操作。這裡只是一個呼叫指令的發出,不等待也不做任何處理。如:查詢框。
如果要固定對話方塊的大小可以用兩種方法:
一種方法是設定它的最大大小和最小大小,並且使它們的值相等,都等於當前你設定的視窗尺寸。
簡單的示例:
setMinimumSize(370, 150);
setMaximumSize(370, 150);
其他如height和width一般可以不理會。
另一種方法是使用setFixedSize(),這樣一句話就可以解決問題。
簡單的示例:
setFixedSize(365,240);
一個實際的例子:
//這樣設定的結果,連對話方塊的最大最小按鈕都沒有了
this->setFixedSize( this->width (),this->height ());