菜单栏(QMenu )中的工作通过QAction实现。 QAction的文字显示可能需要文字的左对齐显示、文字图标(QIcon )的上下左右位置等要求。
我们研究了QAction的方法,发现没有实现这样的属性,而且QAction本身的图标是强制的,即使不设置也占据位置(自己测试了,但找不到消除图标所占位置的方法)。 网络上许多QAction字符和图标的属性设置方法是“工具栏”(QToolBar )下的QAction (即QToolBar样式设置方法(setToolButtonStyle ) ),而菜单栏(q mmbar )
实际上,Qt提供了定制q操作样式的类,即QWidgetAction。 他有一种方法可以指定q部件:
语音构件(q构件*构件;
现在,您可以自己创建所需的效果窗口并将其设置为QAction。 自由度相对较高。
以下是我实现的一个例子。 仅供参考。
#包含
#包含
#包含
#包含
qactionwidgettest :3360 qactionwidgettest (q构件* parent ) ) ) ) ) ) ) ) )
3360q小部件(Parent ) ) ) ) ) ) )。
{
UI.setupUI(this;
resize (600,400;
QE nubar * p menubar=newq menubar (this );
qmenu*pmenu=newqmenu('menutest );
设置固定宽度(150;
qidgetaction * pactionleft=newqwidgetaction (pmenu );
qwidgetaction * pactioncenter=newqwidgetaction (pmenu;
qidgetaction * pactionright=newqwidgetaction (pmenu );
qlabel * PLA bleft=new qlabel (align left );
qlabel * plabcenter=new qlabel (对齐中心);
qlabel * PLA bright=new qlabel (align right );
PLA蓝牙- set alignment (Qt :3360 align left;
放置对齐(Qt :3360对齐中心);
PLA bright-set alignment (Qt :3360 align right;
paction left-set默认构件(PLA bleft;
pactioncenter-set default构件(plabcenter;
pactionright-set默认构件(PLA bright );
pmenu-addaction(pactionleft;
penu-addaction(pactioncenter;
pmenu-addaction(pactionright;
pmenubar-addmenu(pmenu;
}
效果图为以下: