子視窗跟隨主視窗進行移動,需要獲取子視窗相對于父視窗的位置。然後在mousemove 的時候,始終獲取相對位置,然後移動子視窗即可。
**:.h
protected
:void
resizeevent
(qresizeevent *e)
;void
mousepressevent
(qmouseevent *event)
;void
mousemoveevent
(qmouseevent *event)
;void
mousereleaseevent
(qmouseevent *event)
;
.cpp
//-----------初始化子視窗
qpoint pos =
maptoparent
(m_pwebengineview-
>
pos())
;int width = m_pwebengineview-
>
width()
; pos.
setx
(pos.x(
)+ width -
200)
; pos.
sety
(pos.y(
)); testwgt =
newqdialog
(this);
testwgt-
>
setwindowopacity
(0.7);
testwgt-
>
move
(pos)
; testwgt-
>
setfixedsize
(200
,400);
testwgt-
>
show()
;this
->
showmaximized()
;//預設最大化窗體
//------------------
void mainwindow::
mousepressevent
(qmouseevent * event)
}void mainwindow::
mousemoveevent
(qmouseevent * event)}}
void mainwindow::
mousereleaseevent
(qmouseevent * event)
但是放大和縮小窗體就又是乙個不同的概念,如果放大和縮小再去獲取子視窗相對于父視窗的位置,那就不對了,這個時候我們需要獲取子視窗相對於螢幕的位置。
**:
void mainwindow::
resizeevent
(qresizeevent * e)
執行效果:
ヾ( ̄▽ ̄)byebye
QT 主視窗大小改變,子視窗大小不能跟隨變化
開始使用qt,在mainwindow中動態新增乙個widget的子視窗,想主視窗大小改變的時候,比如最大化。結果子視窗的大小不能改變。從網上查詢資料,說主視窗需要過載 protected virtual void resizeevent qresizeevent event override 然後我...
Qt控制項大小跟隨視窗調整
來自qq群 linux 技術分享 311078264 通過qt creator的設計模式實現,無需增加 如下圖,實現對最下層tableview大小跟隨視窗調整 1 介面空白處右擊,選擇布局 柵格布局,這會使centralwidget布局設定為gridlayout。然後介面中的部件會自動新增到柵格布局...
主視窗中處理模態子視窗的狀態
做的專案,主視窗顯示乙個介面,然後再建立幾個非模態視窗顯示,如果使用者按鍵盤的乙個cancel鍵,系統會給主視窗傳送乙個訊息,主視窗需要處理這個訊息,關閉當前的非模態子視窗,然後顯示上乙個子視窗,在主視窗的pretranslatemessage中捕獲到了這個訊息,然後呼叫下面的模組進行了處理 定義了...