Qt介面根據大小裡面的控制項進行按比例縮小

2021-10-03 16:17:58 字數 1930 閱讀 1244

首先我們需要在你的主介面,也就是你main函式宣告物件的那個類裡面,重寫resizeevent()這個事件,這裡我把縮放的比例係數和縮放的類給寫成了全域性的變數和類:

這個widget是我直接在main函式進行宣告物件的主介面,你可以換成你自己的。

注意這個resizeevent需要寫在你的主介面裡面,因為尺寸修改他是第乙個觸發的:

void widget::resizeevent(qresizeevent *event)

接下來看一下我的全域性的類,按比例進行縮放的類,這個全域性的類,請自己宣告乙個.**件,然後寫在裡面,需要的包含一下就行了:

這裡需要注意一點:如果你的介面事動態布局的,也就是說需要根據互動進行delete和new新控制項的,你需要在你刪除的地方加上

widgetsize::m_resizemap.remove(widget);。然後還需要呼叫addwidget(qwidget *widget)
class widgetsize : public qwidget  //按比例進行縮放的類,是乙個全域性的類

static void getwidgetchildssize(qwidget *widget) //這個函式的目的是獲得所有需要縮放介面裡面的所有控制項的指標

}static void addwidget(qwidget *widget)//用於介面進行重布局時新增控制項,注意先要把你刪除的控制項移除,不然會造成野指標,程式會崩潰

static void resizewidget() //這個函式是進行,自動縮放

}static void fontautoresize(qwidget *obj,int fontsize) //這個函式是進行縮放字型的

}//set stylesheet to change font size

if(hastextstyle)

//set font pointsize to change font size

else

}//define a map to store the resize items

static qmapm_resizemap;

static int m_horratio; //靜態水平縮放係數

static int m_verratio; //靜態垂直縮放係數

static int m_fontratio;//靜態字型縮放係數

};

縮放的類我們寫好,接下來我們需要進行,讓需要縮放的介面進行呼叫了,首先看我的乙個需要縮放的介面裡面的呼叫順序:

widget_attributemanagement::widget_attributemanagement(qwidget *parent) :

qwidget(parent),

ui(new ui::widget_attributemanagement) //這個是我的乙個介面需要進行縮放的

然後我會重寫這個類的resizeevent()事件:

void widget_attributemanagement::resizeevent(qresizeevent *event)  //我這裡呼叫的就是我的全域性類的乙個全域性方法了resizewidget()

最後我們的這個子介面的resizeevent()需要被主介面的resizeevent()呼叫,才行,這也是開頭說的,要在主介面的resizeevent()裡面呼叫這個類物件的resizeevent()。

好了,剩下的就是你需要幾個介面在你改變主介面大小的時候進行按比例縮放的話,就去在那幾個介面的建構函式裡面加上widgetsize::getwidgetchildsize(this);

重寫這個類的resiezeevent()事件,並在裡面進行呼叫widgetsize::resizewidget();

大功告成!

列舉裡面的介面的實現

列舉式乙個類,這個類,同樣也有類改由的功能,今天來說說列舉來實現介面。下面還是來看看 吧.首先我們定義乙個介面 介面裡面由兩個抽象方法.如下.public inte ce enuminte ce下滿我們來定義我們的列舉型別的類,分別由三個物件,分別有自己的構造方法.如下.public enum de...

react裡面的介面呼叫方法

想要掌握介面呼叫的內裡邏輯,你得了解一下react redux generator dva的相關知識,當然react的相關知識也是必不可少的。react的特點就是元件化開發,所以它的封裝性比較好,下面是我專案的目錄結構 我只是個實習生,專案非我架構 pages資料夾裡的檔案就是前端檢視展示的頁面,也...

遍歷Qt介面控制項

2021 0408 最近發現qt中有乙個函式可以遍歷某種型別的介面控制項 qlistbtns findchildren 預設就是遞迴呼叫的,所以,如果只是提取某一類控制項,可以採用這種方式 檢視了網路上常用的遍歷控制項 很有啟發,不過,因為qt介面類往往有很多層,用網上提到的方法通常只能遍歷一層,也...