QAction中的文字居中顯示

2021-10-08 22:22:26 字數 2939 閱讀 2539

沒找到直接設定文字居中的方式,查詢資料,可以使用setdefaultwidget()將乙個qlabel設定為qaction的預設視窗小部件。通過設定qlabel文字靠左,居中或者靠右,具體實現如下:

方法一:

auto

*btn =

newqpushbutton

("我是乙個按鈕");

btn-

>

setfixedsize

(200,60

);qgridlayout *layout =

newqgridlayout

(this);

layout-

>

addwidget

(btn)

; qmenu *menu =

newqmenu

(btn)

; qwidgetaction *action1 =

newqwidgetaction

(menu)

; qwidgetaction *action2 =

newqwidgetaction

(menu)

; qlabel *label1 =

newqlabel

("測試1");

qlabel *label2 =

newqlabel

("測試2");

label1-

>

setfixedwidth

(200);

label1-

>

setalignment

(qt::aligncenter)

; label2-

>

setalignment

(qt::alignhcenter)

; action1-

>

setdefaultwidget

(label1)

; action2-

>

setdefaultwidget

(label2)

; menu-

>

addaction

(action1)

; menu-

>

addaction

(action2)

; menu-

>

setfixedwidth

(200);

btn-

>

setmenu

(menu)

;//很重要,使按鈕變成選單按鈕

connect

(action1,

&qwidgetaction::triggered,

this,[

=]);

connect

(action2,

&qwidgetaction::triggered,

this,[

=]);

效果圖:

方法二:

由於使用方法一設定樣式的時候,不知道是不是因為姿勢不對的原因,qmenu下拉列表的樣式不能設定成功,又發現了乙個可以使qaction中的文字居中顯示的方法。

```cpp

//通過樣式表設定之後,也能實現使文字居中,效果挺好,使用padding-left在左側填充了80畫素..padding 就是內容與邊框的空隙

setstylesheet

("qmenu::item:selected"

"qmenu::item"

)auto

*btn =

newqpushbutton

("我是乙個按鈕");

btn-

>

setfixedsize

(200,60

);qgridlayout *layout =

newqgridlayout

(this);

layout-

>

addwidget

(btn)

; btn-

>

seticon

(qicon

(":/icon.png"))

;//設定圖示

btn-

>

setionsize

(qsize(40

,40))

;

qmenu *menu =

newqmenu

(btn)

; qaction *action1 =

newqaction

(menu)

; qaction *action2 =

newqaction

(menu)

; menu-

>

addaction

(action1)

; menu-

>

addaction

(action2)

; menu-

>

setfixedwidth

(200);

btn-

>

setmenu

(menu)

;//很重要,使按鈕變成選單按鈕

connect

(action1,

&qwidgetaction::triggered,

this,[

=]);

connect

(action2,

&qwidgetaction::triggered,

this,[

=]);

html css實現文字水平垂直居中顯示

這幾天在工作中遇到了乙個小問題 文字內容怎麼能在div裡水平垂直居中顯示呢?同時群裡的小夥伴恰巧也有提問這個問題的,所以我就總結了一下我知道的方法。一 利用行高 line height 和vertical align配合實現 具體做法如下 html 測試文字 css box box span 這個地...

css 如何讓文字垂直居中顯示

在css中,文字水平居中我們可以通過 text align center來實現,但在css中,並沒有指定的樣式可以讓文字在垂直方向居中,今天我就給大家說個小技巧來讓文字如何實現垂直方向居中 class title hello cssdiv 實現方式 設定文字高度等於行高就可以實現垂直居中 title...

div中的文字垂直居中

在說到這個問題的時候,也許有人會問css中不是有vertical align屬性來設定垂直居中的嗎?即使是某些瀏覽器不支援我只需做少許的css hack技術就可以啊!所以在這裡我還要囉嗦兩句,css中的確是有vertical align屬性,但是它只對 x html元素中擁有valign特性的元素才...