Qt中的佈局淺析與彈簧的使用,以及Qt居中的兩種方法

進擊的汪sir發表於2021-06-14

1. 佈局

為什麼要佈局:

  1. 佈局之後視窗的排列是有序的
  2. 佈局之後視窗的大小發生變化, 控制元件的大小也會對應變化
  3. 如果不對控制元件佈局, 視窗顯示出來之後有些控制元件的看不到的

佈局是可以巢狀使用

常用的佈局方式:

  • 水平佈局 -> 所有的控制元件水平排列 -> 一行多列
  • 垂直佈局 -> 所有控制元件垂直排列 -> 多行一列
  • 網格(柵格)佈局 -> 多行多列

在Qt中設定佈局的兩種方式

  • 使用Qt提供的佈局
    在這裡插入圖片描述
    在這裡插入圖片描述
  • 使用QWidget進行佈局 -> 推薦
  1. 首先需要從工具欄中拖拽一個QWidget視窗

  2. 將要佈局的控制元件放到這個QWidget中

  3. 對這個QWidget進行佈局

比如我先放一個widget到ui中(我把主題換成了黑色,所以可能有些看不太清)
在這裡插入圖片描述
然後我放兩個按鈕到裡面
在這裡插入圖片描述
看得出來,我是隨意放在裡面的
現在我們選中widget,看上面的Layouts
在這裡插入圖片描述

選擇水平佈局,就是上面圖片的第一個,第二個是垂直佈局
在這裡插入圖片描述
然後現在他們就排列成水平的了

2. 彈簧

我現在有一個水平佈局的widget,但是我覺得角色離服務端和客戶端太遠了,想拉進一點,怎麼辦呢?
在這裡插入圖片描述
答案就是用彈簧
這是加一根彈簧的效果
在這裡插入圖片描述
然後再加一根
在這裡插入圖片描述
你會發現確實拉近了角色,而且因為是彈簧,所以會隨著你的視窗而變化,非常方便。

3. 設定居中的兩種方法(1.屬性,2.彈簧)

3.1 方法一,屬性

這是標籤Label居中後的效果,怎麼實現的呢?
在這裡插入圖片描述
答案是在右下角的屬性中
在這裡插入圖片描述
將水平方向的屬性值改為AlignHCenter

3.2 方法二,彈簧

加兩根彈簧也能夠解決問題
注意是水平方向的彈簧,下面這個
在這裡插入圖片描述
下面插入兩根彈簧

用彈簧的時候記得將標籤放入widget中,widget設定成水平佈局,效果如下圖
在這裡插入圖片描述

相關文章