Qt 設置窗口屬性setWindowFlags函數


說明:setWindowFlags函數就是設置窗口屬性,本博客主要分析此函數的參數

本博客轉載CSDN博主「hjhomw」的原創文章。
原文鏈接:https://blog.csdn.net/hejun_haitao/java/article/details/50815695

主要是記錄一下項目中遇到的問題。

主要使用的是WindowsType枚舉
enum WindowType {
        Widget = 0x00000000,
        Window = 0x00000001,
        Dialog = 0x00000002 | Window,
        Sheet = 0x00000004 | Window,
        Drawer = 0x00000006 | Window,
        Popup = 0x00000008 | Window,
        Tool = 0x0000000a | Window,
        ToolTip = 0x0000000c | Window,
        SplashScreen = 0x0000000e | Window,
        Desktop = 0x00000010 | Window,
        SubWindow =  0x00000012,

        WindowType_Mask = 0x000000ff,
        MSWindowsFixedSizeDialogHint = 0x00000100,
        MSWindowsOwnDC = 0x00000200,
        X11BypassWindowManagerHint = 0x00000400,
        FramelessWindowHint = 0x00000800,
        WindowTitleHint = 0x00001000,
        WindowSystemMenuHint = 0x00002000,
        WindowMinimizeButtonHint = 0x00004000,
        WindowMaximizeButtonHint = 0x00008000,
        WindowMinMaxButtonsHint = WindowMinimizeButtonHint | WindowMaximizeButtonHint,
        WindowContextHelpButtonHint = 0x00010000,
        WindowShadeButtonHint = 0x00020000,
        WindowStaysOnTopHint = 0x00040000,
        // reserved for Qt3Support:
        // WMouseNoMask = 0x00080000,
        // WDestructiveClose = 0x00100000,
        // WStaticContents = 0x00200000,
        // WGroupLeader = 0x00400000,
        // WShowModal = 0x00800000,
        // WNoMousePropagation = 0x01000000,
        CustomizeWindowHint = 0x02000000,
        WindowStaysOnBottomHint = 0x04000000,
        WindowCloseButtonHint = 0x08000000,
        MacWindowToolBarButtonHint = 0x10000000,
        BypassGraphicsProxyWidget = 0x20000000,
        WindowOkButtonHint = 0x00080000,
        WindowCancelButtonHint = 0x00100000,
        WindowSoftkeysVisibleHint = 0x40000000,
        WindowSoftkeysRespondHint = 0x80000000
}

Qt::Widget: QWidget構造函數的默認值,如果新的窗口部件沒有父窗口部件,則它是一個獨立的窗口,否則就是一個子窗口部件
Qt::Window: 無論是否有父窗口部件,新窗口部件都是一個窗口,通常有一個窗口邊框和一個標題欄
Qt::Dialog: 新窗口部件是一個對話框,它是QDialog構造函數的默認值
Qt::Sheet: 新窗口部件是一個Macintosh表單(sheet)
Qt::Drawer: 新窗口部件是一個Macintosh抽屜(drawer)
Qt::Popup: 新窗口部件是一個彈出式頂層窗口
Qt::Tool: 新窗口部件是一個工具(tool)窗口,它通常是一個用於顯示工具按鈕的小窗口。如果一個工具窗口有父窗口部件,則它將顯示在父窗口的部件上面,否則相當於使用了Qt::WindowStaysOnTopHint提示。
Qt::ToolTip: 新窗口部件是一個提示窗口,沒有標題欄和窗口邊框
Qt::Desktop: 新窗口部件是桌面,它是QDesktopWidget構造函數的默認值
Qt::SplashScreen: 新窗口部件是一個歡迎窗口,它是SplashScreen構造函數的默認值。
Qt::SubWindow: 新窗口部件是一個子窗口,而無論窗口部件是否有父窗口部件。此外,Qt還定義了一些控制窗口外觀的窗口提示(這些窗口提示僅對頂層窗口有效)
Qt::MSWindowFiredSizeDialogHint: 為Windows系統上的窗口裝飾一個窄的對話框邊框,通常這個提示用於固定大小的對話框
Qt::MSWindowOwnDC: 為Windows系統上的窗口添加自身的顯示上下文菜單
Qt::X11BypassWindowManagerHint: 完全忽視窗口管理器,它的作用是產生一個根本不被管理的無窗口邊框的窗口(此時,用戶無法使用鍵盤進行輸入,除非手動調用QWidget::activateWindow()函數)
Qt::FramelessWindowHint: 產生一個無窗口邊框的窗口,此時用戶無法移動該窗口和改變它的大小
Qt::CustomizeWindowHint: 關閉默認的窗口標題提示
Qt::WindowTitleHint: 為窗口裝飾一個標題欄
Qt::WindowSystemMenuHint: 為窗口添加一個窗口系統系統菜單,並盡可能地添加一個關閉按鈕
Qt::WindowMinimizeButtonHint: 為窗口添加一個“最小化”按鈕
Qt::WindowMaximizeButtonHint: 為窗口添加一個“最大化”按鈕
Qt::WindowMinMaxButtonHint: 為窗口添加一個“最小化”按鈕 和一個“最大化”按鈕
Qt::WindowContextHelpButtonHint: 為窗口添加一個“上下文幫助”按鈕
Qt::WindowStaysOnTopHint: 告知窗口系統,該窗口應該停留在所有其他窗口的上面。
Qt::WindowType_Mask: 一個用於提示窗口標識的窗口類型部分的掩碼
注:藍色為主要使用的類型。

項目中的問題:繪制一個窗口顯示一個lineEdit,操作lineEdit內容,光標消失。

方法:添加Qt::Dialog(本窗口繼承QDialog類)

    //設置窗口無邊框且窗口顯示在最頂層
    this->setWindowFlags(Qt::Dialog|Qt::FramelessWindowHint|Qt::WindowStaysOnTopHint);

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM