1. 程式人生 > >Qt控制元件大小跟隨視窗調整

Qt控制元件大小跟隨視窗調整

來自QQ群 Linux && 技術分享 311078264
開啟連結加入QQ群:https://jq.qq.com/?_wv=1027&k=5Gr3bAx

UI介面 控制元件隨視窗自適應變化大小


通過Qt Creator的設計模式實現,無需增加程式碼。

如下圖,實現對最下層tableview大小跟隨視窗調整:


1、介面空白處右擊,選擇佈局-->柵格佈局,這會使centralWidget佈局設定為GridLayout。
然後介面中的部件會自動新增到柵格佈局中,此時的部件會根據視窗大小自動調整大小。

2、但是部件的大小卻不是我們希望的,極不協調,接下來就需要調整每個控制元件的設定。
調整控制元件Size的專案包括:sizePolicy、minimumSize、maxmumSize

比如將上面的第三行的lineEdit限制高度:


這樣,在調整視窗大小的時候,lineEdit控制元件只能任意改變寬度,而高度則被限制在30個畫素內。


(調整之後效果)
注意:
有些情況下設定了上面的操作步驟之後,但似乎沒有起作用。
比如上面例子中第一行的幾個空間,雖然設定了sizePolicy以及寬度、高度限制,但是還是隨著介面改變。


這個時候,就需要新增 Spacer(看起來像彈簧的控制元件),之後就能解決問題了。



這是因為GridLayout佈局的影響,他必須讓佈局之內的區域佈滿控制元件,而不能有空白,所以即使設定了大小限制,仍然會被拉伸。
新增Spacer就是為了填充多餘的區域。




相關推薦

Qt控制元件大小跟隨視窗調整

來自QQ群 Linux && 技術分享 311078264 開啟連結加入QQ群:https://jq.qq.com/?_wv=1027&k=5Gr3bAxUI介面 控制元件隨視窗自適應變化大小 通過Qt Creator的設計模式實現,無需增加程式碼

android 獲取控制元件大小和設定調整控制元件的位置XY

網上很多人對設定控制元件的位置都使用      view.setPadding(left, top, right, bottom) ,其實這玩意很差勁,它是設定自己本身位置的偏移,我們很少需要這種效果,我需要的設定控制元件相對螢幕左上角的X 、Y位置。眾裡尋他千百度,驀然回首,那人卻在燈火闌珊處!

VS2013 MFC 對話方塊控制元件大小視窗大小改變而改變

視窗大小改變後控制元件大小也隨之改變 在對話方塊標頭檔案中定義 標頭檔案名稱:專案名稱Dlg.h POINT Old;//存放對話方塊的寬和高。 對話方塊cpp中初始化 cpp檔名稱:專案名稱Dlg.cpp 在OnInitDialog()函

[MFC] 控制元件大小跟隨對話方塊大小比例變化 [大三TJB_708]

網上查閱有多種方法,選學一種筆記如步驟下。 1 搭建完成控制元件隨對話方塊變化比例變化的框架 1.1 在對話方塊類中的訊息對映巨集中新增對話方塊尺寸改變時的訊息巨集 [cpp] view plaincopyprint? BEGIN_MESSAGE_MAP

C#視窗控制元件大小視窗大小而改變

自己寫了個類,可以實現視窗大小發生改變時,視窗內的控制元件大小也隨之改變(等比例), 不過呼叫要有點小技巧,後面再說,類的程式碼如 /// <summary> /// 視窗控制元件大小變化隨視窗等比變化 /// </summary&g

控制元件大小視窗變化的方法(MFC)

形式1:用於在單文件視窗中,或者是手動建立的listctrl void CTrade_MISView::OnSize(UINT nType, int cx, int cy) {  CView::OnSize(nType, cx, cy);  // TODO: Add your message handl

Qt控制元件視窗大小變化的設定方法(QTDesigner)

1 新建窗體(Dialog、MainWindow或Widget都行); 2 拖一個控制元件到窗體上(任何控制元件都可以:layout、button、或check box); 3 在窗體空白處右鍵→佈局→柵格佈局(G),即可; 4 如果第二步新增的layout控制元件,有時,

Qt Creator 窗體控制元件自適應視窗大小布局

常見的軟體視窗大小改變(最大化、手動改變時)需要視窗的部件能夠自適應佈局,而在Qt的應用程式介面設計中,對於像我一樣的初學者如何實現視窗自適應調整還是要繞點彎路的。網上百度了很多,多數說的很含糊,還有很多是用程式實現的,既然已經有Qt Creator那麼高整合度的工具了,我還是傾向於直接在Qt Crea

VISUAL C++根據父視窗變化調整控制元件大小

如果對話方塊或視類的大小調後,控制元件的大小和位置沒有變化,介面看起來會很不爽 控制元件是從CWnd派生的,但不能使用SetWindowPos()或OnSize()或OnSizing()來改變其大小,應在父視窗的WM_SIZE訊息中使用MoveWindow()

C#窗體設計:自動調整控制元件大小

新建一個C#應用程式,應用程式命名為Change 窗體介面設計如下 雙擊窗體新增Load()函式,函式中新增一下程式碼: private void Form1_Load(object sender, EventArgs e)      

QT控制元件視窗的透明度

QGraphicsOpacityEffect *effect = new QGraphicsOpacityEffect(this); effect->setOpacity(0.9); // 設定透明度 然後給需要透明的子控制元件設定該effect如: bt

QT控制元件中佈局QLabel讓其自適應大小自動換行遇到的問題

使用QLabel的時候總會有一些小問題,這裡記錄一下,如果您有更好的解決辦法請告訴我一下,3Q。 給QWidget控制元件新增邊框同時不影響其子控制元件QLabel:分別設定widget控制元件和la

VC MFC 獲取螢幕大小 程式視窗大小位置 控制元件大小位置

//下邊兩個函式獲取的是顯示螢幕的大小,但不包括工作列等區域int cx = GetSystemMetrics(SM_CXFULLSCREEN);int cy = GetSystemMetrics(SM_CYFULLSCREEN);printf("螢幕大小(不含工作列):寬

Qt 核心控制元件和浮動視窗的設定 筆記

//核心控制元件 QTextEdit *tEdit=new QTextEdit(this); setCentralWidget(tEdit); //浮動視窗 QDockWidget *dock=new QDockWidget(this)

Qt控制元件增加屬性並通過新增的屬性設定樣式

Qt控制元件增加屬性並通過新增的屬性設定樣式 1.應用場景         在Qt應用程式設計中經常要對應用的介面進行美化,這裡要用到樣式表qss。下面說的方法適用於對某一種控制元件在介面上有幾種不用的風格樣式,例如

MFC 控制元件大小隨窗體改變而改變大小-OnSize

轉載:https://blog.csdn.net/zhoxier/article/details/7776128 一個基於對話方塊的MFC介面,怎麼樣才能讓對話方塊裡的控制元件能和對話方塊同比例變小變大?今天我一直想解決這個問題,這是師姐留給我的任務。經過在網上的大量搜

C#控制元件大小隨窗體大小等比例變化

C#控制元件大小隨窗體大小等比例變化 轉載自:http://www.knowsky.com/898409.html 相信很多博友在開發初次接觸學習C# winForm時,當窗體大小變化時,窗體內的控制元件並沒有隨著窗體的變化而變化,最近因為一個專案工程的原因,也需要解

獲取控制元件相對父視窗的座標

首先說明幾個常用windows API函式 1.GetClientRect 該函式獲取視窗客戶區的大小。注意一下:視窗的客戶區為視窗中除標題欄、選單欄之外的地方。 在Win32 SDK, 該API函式原型為 BOOL GetClientRect( HWND hWnd, //

IOS控制元件-普通警告視窗的使用⚠️

func test6() {         let button = UIButton(frame: CGRect(x: 0, y: 0, width: 100, height: 50))         butt

QT控制元件大全

總圖: V20170901增加部分控制元件。 1:動畫按鈕 1:可設定顯示的影象和底部的文字 2:可設定普通狀態圖片 3:可設定進入狀態圖片 4:可設定離開狀態圖片 5:按照比例自動居中繪製 2:柱狀標尺控制元件 1:可設定精確度