添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
博学的领带  ·  Qt ...·  1 年前    · 

新建自定义类customQListWidgetItem,该类继承自QListWidgetItem。

新建窗口w(QWidget类)。

新建列表listWidget(QListWidget类)。

新建两个customQListWidgetItem实例,并将这连个实例加入到listWidget中。

import sys
from PyQt5.Qt import *;
from PyQt5.QtCore import *;
from PyQt5.QtWidgets import *;
# 自定义的item 继承自QListWidgetItem
class customQListWidgetItem(QListWidgetItem):
    def __init__(self, name, img):
        super().__init__()
        # 自定义item中的widget 用来显示自定义的内容
        self.widget = QWidget()
        # 用来显示name
        self.nameLabel = QLabel()
        self.nameLabel.setText(name)
        # 用来显示avator(图像)
        self.avatorLabel = QLabel()
        # 设置图像源 和 图像大小
        self.avatorLabel.setPixmap(QPixmap(img).scaled(50, 50))
        # 设置布局用来对nameLabel和avatorLabel进行布局
        self.hbox = QHBoxLayout()
        self.hbox.addWidget(self.avatorLabel)
        self.hbox.addWidget(self.nameLabel)
        self.hbox.addStretch(1)
        # 设置widget的布局
        self.widget.setLayout(self.hbox)
        # 设置自定义的QListWidgetItem的sizeHint,不然无法显示
        self.setSizeHint(self.widget.sizeHint())
if __name__ == "__main__":
    app = QApplication(sys.argv)
    # 主窗口
    w = QWidget()
    w.setWindowTitle("QListWindow")
    # 新建QListWidget
    listWidget = QListWidget(w)
    listWidget.resize(300, 300)
    # 新建两个自定义的QListWidgetItem(customQListWidgetItem)
    item1 = customQListWidgetItem("鲤鱼王", "liyuwang.jpg")
    item2 = customQListWidgetItem("可达鸭", "kedaya.jpg")
    # 在listWidget中加入两个自定义的item
    listWidget.addItem(item1)
    listWidget.setItemWidget(item1, item1.widget)
    listWidget.addItem(item2)
    listWidget.setItemWidget(item2, item2.widget)
    # 绑定点击槽函数 点击显示对应item中的name
    listWidget.itemClicked.connect(lambda item: print(item.nameLabel.text()))
    w.show()
    sys.exit(app.exec_())

四、最终效果

可以看到我自定义的item只包含两部分,图像和文字。点击选项会显示对应的名字。

五、注意的问题

1、QListWidget.itemClicked.connect()绑定槽函数时会传递一个QListWidgetItem参数。

2、在自定义的item(customQListWidgetItem类)中需要.setSizeHint()为self.widget.sizeHint()不然会无法显示。

3、使用QLabel.setPixmap(QPixmap(img).scaled(width, height))来设置QLabel中显示的图片源和图片大小

一、背景略。二、思路新建自定义类customQListWidgetItem,该类继承自QListWidgetItem。新建窗口w(QWidget类)。新建列表listWidget(QListWidget类)。新建两个customQListWidgetItem实例,并将这连个实例加入到listWidget中。三、代码import sysfrom PyQt5.Qt ...
近日,需要实现一个功能小而全的桌面版软件,所以选中并尝试了 PyQt5 这个GUI库。在 使用 中发现,其功能的确完备,但这方面的资料的确不多,有时自己想实现的功能相关资料找不到,有的还不得不阅读C++的实现代码。 PyQt5 的文档也都是指向C++版的文档。一段时间做下来,特将有关解决方法记录下来,以将来备查,也随手帮助下后来者。 一般来说,GUI软件都是需要不同的工作界面之间进行切换的,当然也少不了布局等功能的 使用 。Qt的布局功能理解起来也很容易, 使用 的基本方法是: 1.建立容器部件; 2.建立布局类,并设置为容器部件的布局; 3.在布局类中添加其他部件。 如果有需要嵌套的,那就是以上步骤的第3条中添
class QCustomQ Widget (QtGui.Q Widget ): def __init__ (self, parent = None): super(QCustomQ Widget , self).__init__(parent) self.textQVBoxLayout = Q...
QT——Q List Widget 使用 使用 Qt Creator5.14.0, 建立一个QMainWindow界面,在里面放入一个Q List Widget 窗口, 使用 三种方式添加子项。 1.add Item (QString& strText); Q List Widget * list Wgt = new Q List Widget ; list Wgt-> set Parent(this); list Wgt-> set FixedSize(300, 300); list Wgt->move
为了实现点击 item item 删除,当Q List Widget item 为空时,关闭窗口。 首先想到的是用remove Item Widget ,但是结果并不像我预期那样的。如下效果: remove Item Widget 不会删除 item ,而是删除 item widget 。从Q List Widget 中删除 item 的正确方法应该是take Item (row),效果如下: 代码示例: # -*- coding...
Q List Widget 简介 Q List Widget 继承自Q List View, 它提供与Q List View列表视图类似的外观布局,它可以方便地添加和删除部件(Q List Widget 可以很方便地为条目设置诸如QPushButton, QComboBox这样的部件)。Q List Widget 使用 Q List Widget Item 来管理条目,它可以设置成多选择模式。 有两种方法可以将条目( Item )添加到列表中,可以 使用 列表部件作为其父窗口部件来创建条目,也可以先创建,然后再将其添加到列表中。如果列表中已经存在一些条
PyQt5 使用 本地图片可以 使用 QPixmap类。首先需要导入QPixmap类,然后 使用 QPixmap.load()方法加载本地图片,最后 使用 set Pixmap()方法将图片设置到 自定义 组件上。 ```python from PyQt5 .QtGui import QPixmap pixmap = QPixmap() pixmap.load("local_image.png") custom_ widget . set Pixmap(pixmap) 或者 使用 QtGui.QImage 和QtGui.QPixmap.fromImage() ```python from PyQt5 .QtGui import QImage, QPixmap image = QImage() image.load("local_image.png") pixmap = QPixmap.fromImage(image) custom_ widget . set Pixmap(pixmap)