mat*_*ata 12
QLabel没有setIcon方法,但它有setPixmap.但如果您使用它来设置QPixmap它会覆盖您的文本.但是有一些可能实现你想要的东西:
QLabel来显示文本+图像我知道我参加聚会有点晚了,但这是我解决这个问题的方法:
import qtawesome as qta
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
class IconLabel(QWidget):
IconSize = QSize(16, 16)
HorizontalSpacing = 2
def __init__(self, qta_id, text, final_stretch=True):
super(QWidget, self).__init__()
layout = QHBoxLayout()
layout.setContentsMargins(0, 0, 0, 0)
self.setLayout(layout)
icon = QLabel()
icon.setPixmap(qta.icon(qta_id).pixmap(self.IconSize))
layout.addWidget(icon)
layout.addSpacing(self.HorizontalSpacing)
layout.addWidget(QLabel(text))
if final_stretch:
layout.addStretch()
Run Code Online (Sandbox Code Playgroud)
我用来QtAwesome获取所需的图标。
现在您可以轻松地将图标标签插入到您自己的 PyQt5 布局中。例子。
mylayout.addWidget(IconLabel("fa.scissors", "Slicer Limit:"))
Run Code Online (Sandbox Code Playgroud)
它看起来像什么:
请注意,我包含了一个选项final_stretch。在垂直布局中,您需要保持final_stretch = True正确的左对齐(参见上图)。然而,在水平布局中(即,IconLabels在同一行中彼此相邻放置多个时),您可能需要进行设置final_stretch = False以节省空间。
| 归档时间: |
|
| 查看次数: |
11756 次 |
| 最近记录: |