pyqt5 入门 简单的例子

本文介绍如何使用PyQt5的QListWidget组件创建一个动态列表界面,包括添加可自定义大小的项目,以及如何通过按钮清空列表。演示了如何在每个列表项中嵌入不同的QWidget,并展示了具体的代码实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

搭建好pycharm的 pyqt5 开发环境之后,

建立一个文件app.py

#!/usr/bin/python3
# -*- coding: utf-8 -*-

from PyQt5.QtCore import QSize

from PyQt5.QtWidgets import QApplication, QWidget, QHBoxLayout,QVBoxLayout

import sys

from PyQt5.QtWidgets import QPushButton

from PyQt5.QtWidgets import QFormLayout,QLineEdit,QLabel,QListWidget,QListWidgetItem

class Example(QWidget):

    def __init__(self):
        super().__init__()

        self.setGeometry(300, 300, 600, 620)

        # 列表
        self.listWidget = QListWidget(self)

        item1 = QListWidgetItem()  # 创建QListWidgetItem对象
        item1.setSizeHint(QSize(300, 150))  # 设置QListWidgetItem大小

        self.tab1 = QWidget()
        self.tab1UI()

        self.listWidget.addItem(item1)  # 添加item
        self.listWidget.setItemWidget(item1, self.tab1)  # 为item设置widget

        item2 = QListWidgetItem()  # 创建QListWidgetItem对象
        item2.setSizeHint(QSize(300, 150))  # 设置QListWidgetItem大小

        self.tab2 = QWidget()
        self.tab2UI()

        self.listWidget.addItem(item2)  # 添加item
        self.listWidget.setItemWidget(item2, self.tab2)  # 为item设置widget

        item3 = QListWidgetItem()
        item3.setSizeHint(QSize(300, 150))  # 设置QListWidgetItem大小
        widget = QWidget()

        layoutA = QHBoxLayout()
        label1 = QLabel("AAA")
        label2 = QLabel("BBB")
        layoutA.addWidget(label1)
        layoutA.addWidget(label2)

        widget.setLayout(layoutA)

        self.listWidget.addItem(item3)
        self.listWidget.setItemWidget(item3, widget)

        # 清空按钮
        self.clearBtn = QPushButton('清空', self)
        self.clearBtn.clicked.connect(self.clear_button)

        layout = QVBoxLayout(self)

        layout.addWidget(self.listWidget)

        layout.addWidget(self.clearBtn)

    def clear_button(self):
        pass
        windows = self.listWidget.currentItem()

        print('aaa')
        print(type(windows))

        widget = self.listWidget.itemWidget(windows)

        print(type(widget))
        print('bbb')
        print('111')
        print(type(str))
        print('ccc')

    def tab1UI(self):
        layout = QFormLayout()
        layout.addRow("姓名", QLineEdit())
        layout.addRow("地址", QLineEdit())
        self.tab1.setLayout(layout)

    def tab2UI(self):
        layout = QFormLayout()
        layout.addRow("年龄", QLineEdit())
        layout.addRow("性别", QLineEdit())
        self.tab2.setLayout(layout)

    def initUI(self):
        pass


if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = Example()
    ex.show()
    sys.exit(app.exec_())

生成的界面如下:

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值