Qt自定義類之自由移動的mainwindow

2021-08-15 13:54:56 字數 1025 閱讀 2068

先要清楚,只是拖動mainwindow你是拖不動那個介面的,但是又想要設計漂亮的無標題欄的控制項時,那就需要加自己的重寫函式了

壯膽在qt上寫下了那個函式名。結果發現那玩意是可以突然變成了斜體!!!

就像這樣

這時我就意識到了,這玩意會不會是在基類上定義了模板函式的…我們就直接覆蓋掉了原來的那個函式,其實內部實現的時候,會檢測到東西的。只不過以前的版本(基類)中,這個函式很可能是個虛函式還是什麼的,所以….(好吧,其實還有可能在於使用了event作為引數)

帶著這份猜測,我寫看懂了網上的很多**之後,寫下下面這段**

mmoving :bool值,判斷滑鼠是否移動

mlastmouseposition:qpoint型別,記錄以前的位置

思路其實很簡單:

1. 當按下滑鼠左鍵的時候,將滑鼠移動給啟用起來。同時記錄當前位置的座標

2. 要表現那種拖動,我們就要記錄滑鼠是否還在被拖動中。那只要mmoving是true我們就知道滑鼠還在拖動中。否則我們肯定是會檢測到滑鼠鬆動(release)那麼mmoving就被設定為了false。那也就不是移動的狀態了。

3.其實學好了這個還可以改寫其他的類,這樣就可以使得所有的類都可以被設定為可以拖動的狀態了(當然啦,是可拖動,就拖動整個框)

void quicksearch::mousemoveevent(qmouseevent* event)

}void quicksearch::mousepressevent(qmouseevent* event)

}void quicksearch::mousereleaseevent(qmouseevent* event)

Qt之自定義QEvent

2 如何定義個事件型別。qt中提供了 static int qevent registereventtype int hint 1 用來定義程式中唯一的事件型別。4 postevent和sendevent的區別 1 sendevent使用notify 函式直接給receiver傳送事件。不支援多執行...

Qt之自定義介面(實現無邊框 可移動)

ui設計是指對軟體的人機互動 操作邏輯 介面美觀的整體設計。好的ui設計不僅是讓軟體變得有個性 有品位,還要讓軟體的操作變得舒適簡單 自由,充分體現軟體的定位和特點。愛美之心人皆有之。其實軟體介面就像工業造型一樣,是產品的重要賣點。乙個產品擁有美觀的介面會給人帶來舒適的視覺享受,拉近人與產品的距離,...

Qt練習之自定義時鐘

在qtproject中自學qt時,上面有乙個例項是編寫時鐘的,其中用到了qtimer,訊號和槽以及事件的知識,是練習qt的好例子,本人在例項上新增了秒鐘的設定,從而更加像乙個使用的時鐘錶了,下面展示一下執行結果。下面我來和大家分享一下,具體實現,類analogclock是自定義類,它繼承於qwidg...