c++ 如何更改QMenu中操作的图标大小?

qoefvg9y  于 2022-12-30  发布在  其他
关注(0)|答案(3)|浏览(304)

我尝试用下面的代码调整QMenu中QAction图标的大小,但是没有效果。

QMenu *menu;
menu =new QMenu();
menu->setStyleSheet("QMenu::icon{height:20px;width:20px});"

如果有人能提供解决方案,我将非常感激。

monwx1rj

monwx1rj1#

以下是对我有效的解决方案:

QMenu *menu;
menu =new QMenu();

QToolButton *button=new QToolButton(menu);
button->setFixedSize(50,50);
QWidgetAction *action=new QWidgetAction(this);
action->setDefaultWidget(button);
menu->addAction(action);
gdrx4gfi

gdrx4gfi2#

我们可以设置样式表来管理图标大小,如下所示:

QAction *action = new QAction("Exit", this);
action->setIcon(QIcon(":/images/resources/exit.png"));

QMenu *menu = new QMenu("File");
menu->addAction(action);
menu->setStyleSheet("QMenu {icon-size: 200px;} QMenu::item {background: transparent;}");

ui->menubar->addMenu(menu);

但它会显示在一个不正确的大小,所以最好使用QToolBar .
在cpp文件中键入以下内容:

ui->ToolBarName->setIconSize(QSize(50,50));

在Designer中单击QToolbar并设置图标大小。

fae0ux8s

fae0ux8s3#

这么多年后,我偶然发现了这个问题。我记得我有过一次又一次的这个问题。这次我确实设法解决了一些问题。这有点奇怪,至少在记录方面应该得到一些爱。
关键是:您需要样式QMenu AND QMenu::item如果您只是通过以下方式设置图标大小:

QMenu {icon-size: 40px;}

它将保持被忽略状态,直到您还设置了类似

QMenu::item {background: transparent;}

不幸的是,这将重置菜单样式表,您需要对hover状态做一些处理以使其可用。但是,看起来这对我很有效。
also posted this on the qt forums

相关问题