sách gpt4 ai đã đi

python - PyQt QListWidget 自定义项

In lại Tác giả: Space Dog 更新时间:2023-10-29 21:13:10 29 4
mua khóa gpt4 Nike

我如何创建一个 QListWidgetItem,它下面有 1 个图像和 2 个标签/字符串,支持 css?

这是我尝试过的最后一件事:

class CustomListWidgetItem(QListWidgetItem, QLabel):
def __init__(self, parent=None):
QListWidgetItem.__init__(self, parent)
QLabel.__init__(self, parent)

顺便说一句,我正在使用 PyQt

1 Câu trả lời

how can i create a QListWidgetItem that has 1 image and 2 labels/strings underneath, that have support for css?

在这种情况下,你不能(它实际上有一个 API 可以轻松添加图标,但两个标签/字符串是不可能的)。但是,您可以创建自己的自定义小部件并将其放入 QtGui.QListWidget.

  1. 创建您的自定义小部件。

  2. 在主应用程序中创建您的QtGui.QListWidget.

  3. QListWidgetItem hiện hữu QListWidgetItem 中创建自定义小部件对象并设置项在 QtGui.QListWidget Sử dụng trong QListWidget.setItemWidget (self, QListWidgetItem item, QWidget widget) phương pháp.

这是一个解释我的解决方案的例子:

nhập khẩu hệ thống
from PyQt4 import QtGui

class QCustomQWidget (QtGui.QWidget):
def __init__ (self, parent = None):
super(QCustomQWidget, self).__init__(parent)
self.textQVBoxLayout = QtGui.QVBoxLayout()
self.textUpQLabel = QtGui.QLabel()
self.textDownQLabel = QtGui.QLabel()
self.textQVBoxLayout.addWidget(self.textUpQLabel)
self.textQVBoxLayout.addWidget(self.textDownQLabel)
self.allQHBoxLayout = QtGui.QHBoxLayout()
self.iconQLabel = QtGui.QLabel()
self.allQHBoxLayout.addWidget(self.iconQLabel, 0)
self.allQHBoxLayout.addLayout(self.textQVBoxLayout, 1)
self.setLayout(self.allQHBoxLayout)
# setStyleSheet
self.textUpQLabel.setStyleSheet('''
color: rgb(0, 0, 255);
''')
self.textDownQLabel.setStyleSheet('''
color: rgb(255, 0, 0);
''')

def setTextUp (self, text):
self.textUpQLabel.setText(text)

def setTextDown (self, text):
self.textDownQLabel.setText(text)

def setIcon (self, imagePath):
self.iconQLabel.setPixmap(QtGui.QPixmap(imagePath))

class exampleQMainWindow (QtGui.QMainWindow):
def __init__ (self):
super(exampleQMainWindow, self).__init__()
# Create QListWidget
self.myQListWidget = QtGui.QListWidget(self)
for index, name, icon in [
('No.1', 'Meyoko', 'icon.png'),
('No.2', 'Nyaruko', 'icon.png'),
('No.3', 'Louise', 'icon.png')]:
# Create QCustomQWidget
myQCustomQWidget = QCustomQWidget()
myQCustomQWidget.setTextUp(index)
myQCustomQWidget.setTextDown(name)
myQCustomQWidget.setIcon(icon)
# Create QListWidgetItem
myQListWidgetItem = QtGui.QListWidgetItem(self.myQListWidget)
# Set size hint
myQListWidgetItem.setSizeHint(myQCustomQWidget.sizeHint())
# Add QListWidgetItem into QListWidget
self.myQListWidget.addItem(myQListWidgetItem)
self.myQListWidget.setItemWidget(myQListWidgetItem, myQCustomQWidget)
self.setCentralWidget(self.myQListWidget)

app = QtGui.QApplication([])
window = exampleQMainWindow()
window.show()
sys.exit(app.exec_())

Để ý:我有图像文件 icon.png,大小为 48 x 48 像素。

QListWidget.setItemWidget

实验结果

nhập mô tả hình ảnh ở đây

关于python - PyQt QListWidget 自定义项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25187444/

29 4 0
Bài viết được đề xuất: c# - 使第三方库实现接口(interface)的策略?
Bài viết được đề xuất: c++ - 不是默认析构函数导致不完整的类型错误
Bài viết được đề xuất: Triển khai lock()
Bài viết được đề xuất: c# - 使用对象
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com