Qt之窗體拖拽 自適應解析度 自適應大小

2022-04-29 18:18:08 字數 907 閱讀 1514

在自定義無邊框、標題欄的介面中,需要自己實現最小化、最大化、關閉、窗體背景等功能。最小化、最大化、關閉等按鈕設計及功能比較簡單,這裡就不多做介紹。今天主要介紹一下繪製背景的問題,主要實現自適應螢幕解析度。

先看一下ui設計的圖(大小:1298*786):

如何自適應螢幕解析度呢?下面是常用的一些方案:

為每個解析度單獨做一張圖

將切分為九宮格形

在原圖基礎上進行實現

下面,我們分別對它們一一進行分析:

常用的解析度很多,800*600、1024*768、1280*800、1680*1050等等。。。那麼得需要多少張圖呢?而且資源一旦過多,會加大程式開銷。

需要將切分,而且如果切分不合適,還得來回重複切圖,加大ui工作量。。。

在原圖的基礎上實現,在**邏輯上處理!

綜上所述:很明顯,方案3是最好的,那麼如何實現呢?請繼續往下看!

由於介面存在縮放,所以如果窗體有圓角、或者存在陰影效果,縮放過程中會變形,所以需要進行特殊化處理!

左上角、左下角、右上角、右下角進行切分分別繪製(下面所說的切分都使用**實現)

左、上、右、下部位進行切分,計算出窗體的大小後,在原方向進行拉伸

**部分切分出一部分進行平鋪

讓ui將圓角及陰影部分標註出來,這裡需要標註寬和高,以便於實現切圖。

現在,來開始我們的**之旅吧!

void paintevent(qpaintevent *event)

關於縮放處理,請參考:

WPF窗體自適應解析度

使用wpf建立乙個窗體 window 時,如果設定了固定的高度 height 和寬度 width 一旦使用者的電腦解析度過低,就會使得窗體及其中的內容無法完整地顯示出來。要解決這個這個問題,有以下幾個方法可供參考 viewbox如下 window x class xmlns xmlns x titl...

c winform 窗體基於解析度自適應處理

參考資料 普通的winform屬性需要設定一下,盡量不要繼承cskin第三方用的話設定 this.canresize true label button這些控制項 autosize true 如果winform中嵌入 usercontrol使用者控制項,那這個窗體需要設定 load事件載入複製 re...

窗體控制項位置適應解析度

在mfc開發視窗應用程式時,需要對窗體 如cformview 中控制項進行布局,如圖1所示。特別在不同解析度顯示時,整個介面可能不盡人意,對所有控制項位置調整過程領人煩惱。如圖2為調整後的位置,看起來比圖1布局美觀。下面介紹控制項位置布局實現原理,以及在mfc使用迭代函式處理過程。解決方法 定義兩個...