QMenu添加了图标就不显示文本怎么办
时间: 2024-01-24 14:04:18 浏览: 92
如果您使用的是Qt Designer,则可以在属性编辑器中将“文本可见性”设置为“不可见”,然后在“图标”字段中添加图标。
如果您是在代码中手动创建QMenu,则可以使用以下代码将文本和图标添加到菜单项中:
```python
menu.addAction(QIcon("icon.png"), "菜单项文本")
```
请注意,如果您使用的是SVG格式的图标,则需要确保您的应用程序已经加载了QtSvg模块。可以在应用程序的初始化代码中添加以下行:
```python
from PyQt5.QtSvg import QSvgRenderer
```
相关问题
QMenu QSS 有图标和无图标时让文字对齐
在 QMenu 中,如果设置了图标,那么文字会默认垂直居中对齐,但是如果没有设置图标,那么文字会默认顶部对齐。这种差异导致了在 QMenu 中设置了图标和不设置图标时,无法通过一套 QSS 样式实现文字居中对齐。
不过,我们可以利用 QMenu 的子控件 QAbstractItemView 来实现统一的对齐方式。具体来说,可以在 QSS 样式中设置 QAbstractItemView 的对齐方式,然后将 QMenu 的子控件设置为 QAbstractItemView。
以下是一个例子,演示了如何在设置了图标和不设置图标时,让 QMenu 中的文字都居中对齐:
```python
menu = QMenu()
# 设置 QAbstractItemView 的对齐方式
menu.setStyleSheet("QAbstractItemView { padding: 5px; alignment: center; }")
# 添加带图标的 QAction
action1 = QAction(QIcon("icon.png"), "Action with Icon", menu)
menu.addAction(action1)
# 添加不带图标的 QAction
action2 = QAction("Action without Icon", menu)
menu.addAction(action2)
# 将 QMenu 的子控件设置为 QAbstractItemView
menu.view().setUniformItemSizes(True)
```
在上面的例子中,我们通过设置 QAbstractItemView 的 alignment 属性为 center,来实现子控件居中对齐。然后,通过设置 QMenu 的子控件为 QAbstractItemView,来让 QMenu 中所有子控件都继承 QAbstractItemView 的对齐方式。最后,通过设置 QMenu 的 uniformItemSizes 属性为 True,来让 QAbstractItemView 中的所有子控件都具有相同的大小。
这样,在 QMenu 中设置了图标和不设置图标时,就都可以实现文字居中对齐了。
QPushButton设置添加一个下拉菜单,删除默认添加的下拉菜单指示器图标后,如何调整按钮上文本的位置
可以通过设置QPushButton的StyleSheet来调整按钮上文本的位置。具体操作如下:
1. 在StyleSheet中设置按钮的padding属性,将左右内边距设置得足够大,以容纳下拉菜单的图标和文本内容;
2. 在StyleSheet中设置按钮的text-align属性为left,让文本内容靠左显示;
3. 在StyleSheet中设置按钮的icon-size属性为0,将下拉菜单的图标大小设置为0,从而达到删除默认添加的下拉菜单指示器图标的效果。
例如,下面的代码将一个名为dropBtn的QPushButton添加了一个下拉菜单,并调整了按钮上文本的位置:
```
QMenu *menu = new QMenu(this);
menu->addAction("Action 1");
menu->addAction("Action 2");
QPushButton *dropBtn = new QPushButton("Dropdown Button", this);
dropBtn->setMenu(menu);
dropBtn->setStyleSheet("QPushButton { padding: 0 20px; text-align: left; icon-size: 0; }");
```
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)