QT QDialog的設定簡述

2021-07-04 03:51:11 字數 3482 閱讀 2893

qdialog::qdialog ( qwidget * parent = 0, const char * name = 0, bool modal = false, wflags f = 0 ) 

構造乙個父物件為parent、名稱為name的對話方塊。 

1、如果modal為假(預設),這個對話方塊是非模式的並且應該使用show()來被顯示。

2、如果modal為真,這個對話方塊使用exec()來被顯示,則它是模式的,也就是說會阻塞這個應用程式中其它視窗的輸入。

3、如果modal為真並且使用show()來被顯示,則它是半模式的。 

視窗部件f將被傳遞給qwidget的建構函式。 

如果,例如,我們不想要對話方塊的標題欄中「這是什麼」按鈕,在f中傳遞wstyle_customize | wstyle_normalborder | wstyle_title | wstyle_sysmenu。

我們建議你傳遞乙個非空的父物件。 

請參考qwidget::setwflags()和qt::widgetflags。 

qt::widgetflags

這個列舉型別是用來指定視窗部件的視窗系統屬性的。它們通常情況下沒用,但是在一些場合是必需的。這些標記中的一些依賴於視窗管理器是否支援它們。 

主要型別有 

qt::wtype_toplevel - 表明這個視窗部件是頂級的,通常有乙個視窗系統框架和其它的。 

qt::wtype_dialog - 表明這個視窗部件是頂級的,並且應該被修飾為乙個對話方塊(比如,作為特色,在標題欄中沒有最大化和最小化按鈕)。如果你想使用它作為乙個模式對話方塊,它應該從另乙個視窗中被執行,或者有乙個父視窗並且這個標記必須和wshowmodal一起使用。如果你使用了模式對話方塊,這個對話方塊將會防止應用程式的其它頂級視窗獲得任何輸入。wtype_dialog隱含了wtype_toplevel。我們指的是作為乙個二級視窗作為頂級視窗需要有父視窗。(請參考wgroupleader。) 

qt::wtype_popup - 表明這個視窗部件是乙個彈出式的頂級視窗部件,比如它是模式的,但是供彈出選單使用的視窗系統框架。wtype_popup隱含了wtype_toplevel。 

qt::wtype_desktop - 表明這個視窗部件是著明。請參考下面的wpaintdesktop。wtype_desktop隱含了wtype_toplevel。 

這裡還有大量的標記可以用來自定義頂級視窗的外觀。這些對於其它視窗沒有任何效果的: 

qt::wstyle_customize - 表明wstyle_*標記應該被用來替換預設標記來構建視窗。 

qt::wstyle_normalborder - 給視窗乙個普通邊界。這個不能和wstyle_dialogborder或wstyle_noborder一起使用。 

qt::wstyle_dialogborder - 給視窗乙個窄的對話方塊邊界。這個不能和wstyle_normalborder或wstyle_noborder。 

qt::wstyle_noborder - 產生乙個沒有邊界的視窗。注意:使用者不可以通過視窗系統來移動或者重新定義無邊界視窗的大小。這個標記不可以和wstyle_normalborder或wstyle_dialogborder一起使用。在windows中,這個標記正常工作。在x11中,這個標記的結果取決於視窗管理器和它們對於motif和/或netwm提示的理解的能力:現在存在的現代視窗管理器中的絕大部分都可以處理這些。通過wx11bypasswm,你可以完全地繞過視窗管理器。這樣的結果就是無邊界視窗根本無法被管理了(比如,除非你手工地呼叫setactivewindow()就無法獲得鍵盤輸入)。 

qt::wstyle_noborderex - 這個值是廢棄的。它的效果和使用wstyle_noborder是一樣的。 

qt::wstyle_title - 給視窗乙個標題欄。 

qt::wstyle_sysmenu - 新增乙個視窗系統選單。 

qt::wstyle_minimize - 新增乙個最小化按鈕。注意:在windows下,為了使它能夠正常工作,它必須和wstyle_sysmenu一起組合使用。 

qt::wstyle_maximize - 新增乙個最大化按鈕。注意:在windows下,為了使它能夠正常工作,它必須和wstyle_sysmenu一起組合使用。 

qt::wstyle_minmax - 和wstyle_minimize|wstyle_maximize是一樣的。注意:在windows下,為了使它能夠正常工作,它必須和wstyle_sysmenu一起組合使用。 

qt::wstyle_contexthelp - 新增乙個上下文幫助按鈕到對話方塊上。 

qt::wstyle_tool - 使這個視窗變為乙個工具視窗。乙個工具視窗經常是乙個比含有正常標題欄和休息的視窗更小的視窗,很典型的用於工具按鈕的集合。如果它有乙個父視窗,工具視窗將總被放在它的上面。如果它沒有父視窗,你需要考慮同時傳遞乙個wstyle_staysontop。如果視窗系統支援它,乙個工具視窗將會被使用更亮的框架來修飾。它也可以和wstyle_noborder一起組合使用。 

qt::wstyle_staysontop - 通知視窗系統這個視窗應該放在所有其它視窗的上面。 

qt::wstyle_dialog - 表明這個視窗是它的父視窗(比如,乙個對話方塊)的邏輯子視窗。這個視窗將沒有自己的工作列條目並且通過視窗系統它將被保持在它的父視窗上面。通常當它的父視窗最小化時,它也最小化。如果沒有自定義,這個視窗將會被乙個稍微簡單一些的標題欄修飾。這個標記被qdialog使用。 

修飾標記: 

qt::wdestructiveclose - 當視窗部件已經接收到closeevent(),或者當視窗部件試圖忽略closeevent()但不能的時候,使qt刪除這個視窗部件。 

qt::wpaintdesktop - 把桌面的繪製事件給這個視窗部件。 

qt::wpaintunclipped - 使在這個視窗部件上的所有的繪製操作都不能被省略。在它前面的這個視窗部件的子視窗部件或者其它視窗部件不能把它上面的繪製區域省略掉。 

qt::wpaintclever - 表明qt不應該試圖優化重繪這個視窗部件,但是相反,在視窗系統上直接傳遞重繪事件。(這樣往往會產生更多的事件和更小的重繪區域。)

qt::wresizenoerase - 表明重新定義視窗部件的大小不應該刪除它。這樣允許比較聰明的重繪來避免閃爍。 

qt::wmousenomask - 表明即使這個視窗部件有乙個障板,它想獲得它的整個矩形區域內的滑鼠時間。 

qt::wstaticcontents - 表明這個視窗部件的內容是向西北方向對齊的並且是靜態度。當重新定義大小的時候,這個視窗部件將只接收它自己之內的新的可見的部分的繪製事件。 

qt::wrepaintnoerase - 表明這個視窗繪製所有的象素。更新、滾動和焦點改變都不會因此刪除這個視窗部件。這樣允許比較聰明的重繪來避免閃爍。 

qt::wgroupleader - 使這個視窗為乙個組領導。乙個組領導不應該有父視窗(比如,它應該是乙個頂級視窗)。組領導的任何子孫視窗(直接的或見解的)都在它這個組裡,其它視窗不在。如果你從乙個組中顯示乙個次要的視窗(比如,顯示乙個最上端父視窗為組領導的視窗),對於組內其它視窗它是模式的,但對於組外的它是非模式的。

outline屬性的設定和作用簡述

outline 輪廓 是繪製於元素周圍的一條線,位於邊框邊緣的外圍,可起到突出元素的作用。注釋 輪廓線不會佔據空間,也不一定是矩形。outline 簡寫屬性在乙個宣告中設定所有的輪廓屬性。簡單說,當我們直接單擊文字框裡面是,外部會出現乙個高亮的效果,對,這個就是outline 如果要設定乙個橢圓形的...

簡述Hyperledger Fabric的工作流程

說起來也是很巧合的一件事情,去年暑假自己乙個人在宿舍學習hyperledger fabric的相關東西,後來因為各種原因就放棄這個方向開始跟著老師做一些cv方面的工作,現在竟然又開始看區塊鏈的相關東西。去年開始學習區塊鏈的時候很多東西還沒有掌握,比如pki 密碼學,計算機網路當時也學得迷迷糊糊的,因...

簡述sqlldr的使用

我的專案有一張表,始終是手動匯入資料。我接手之前的同事總是喜歡用pl sql developer,但是我覺得還是黑框框看著有技術含量。這裡順便就寫一下有關sqlldr的簡單用法。有關sqlldr資料比較全面的應該就是幫助了,打出來看一下。sql loader release 11.2.0.1.0 p...