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

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

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

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

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

monwx1rj

monwx1rj1#

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

  1. QMenu *menu;
  2. menu =new QMenu();
  3. QToolButton *button=new QToolButton(menu);
  4. button->setFixedSize(50,50);
  5. QWidgetAction *action=new QWidgetAction(this);
  6. action->setDefaultWidget(button);
  7. menu->addAction(action);
gdrx4gfi

gdrx4gfi2#

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

  1. QAction *action = new QAction("Exit", this);
  2. action->setIcon(QIcon(":/images/resources/exit.png"));
  3. QMenu *menu = new QMenu("File");
  4. menu->addAction(action);
  5. menu->setStyleSheet("QMenu {icon-size: 200px;} QMenu::item {background: transparent;}");
  6. ui->menubar->addMenu(menu);

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

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

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

展开查看全部
fae0ux8s

fae0ux8s3#

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

  1. QMenu {icon-size: 40px;}

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

  1. QMenu::item {background: transparent;}

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

相关问题