QT去掉邊框後視窗拖放控制大小及移動視窗

來源:互聯網
上載者:User

標籤:qt 無邊框視窗 移動視窗 拖動視窗改變

收割者,適用平台:QT

在一般情況下,我們編寫的視窗,都有一個標準的視窗架構,這個標準架構提供了標題列及邊框,而邊框可以協助我們通過拖放來控制視窗的大小,例如,當把滑鼠指標放到上邊框的時候,指標滑鼠發生變化,這時按下滑鼠左鍵的同時拖動滑鼠,就可以改變視窗的大小,同樣,當把滑鼠指標放到左邊,右邊,四個角上等,滑鼠指標都會發生相應的變化,但是有的時候,我們不需要視窗的標準架構,這時候,我們可以對頂層視窗(top-level)設定屬性Qt::FramelessWindowHint,如果還需要保留點擊工作列時顯示或已最小化的視窗,在添加屬性Qt::WindowSystemMenuHint | Qt::WindowMinimizeButtonHint。這樣一來就去除了標準架構,只剩下客戶區(MFC,WIN32中概念),很多軟體的介面都去除了標準架構,然後進行美化,如QQ,迅雷,酷狗等,都沒有windows普通視窗上的邊框和標題列。

但是這樣一來卻失去了邊框帶給我們的功能,探測滑鼠的位置,改變指標的形狀,拖動改變視窗的大小。針對QT平台,我編寫了一個DLL,當中包含了代碼實現了表框架構的這些功能,另外,由於沒有了標題列,在視窗的標題列按下滑鼠移動視窗的功能也失去了,本DLL也完成了這個功能。

至於這個dll中輸出函數的使用方法,在標頭檔中已經有說明。

Debug版:http://download.csdn.net/detail/xinzhiyounizhiyouni/8521407
Release版:http://download.csdn.net/detail/xinzhiyounizhiyouni/8521413

本文原址:CSDN部落格

QT去掉邊框後視窗拖放控制大小及移動視窗

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.