沒找到直接設定文字居中的方式,查詢資料,可以使用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特性的元素才...