PyQT5之QListWidget
1.PyQT5图像2.PyQT5水平垂直布局3.PyQT5之图片左右翻页4.PyQT5之QPushButton和布局5.PyQT5之label6.PyQT5之选择图片7.PyQT5之自定义信号8.PyQT5之窗口9.PyQT5之菜单栏和工具栏10.PyQT5之QComboBox11.PyQT5之Checkbox12.PyQT5之QRadioButton13.PyQT5之单行文本输入到多行显示窗14.PyQT5之网格布局多图片显示15.PyQtGraph绘制折线图16.PyQT5之PyQtGraph实时数据显示17.PyQT5之窗口最大化最小化18.PyQT5之QSS基础/子控件选择器19.PyQT5样式设置20.PyQT5绘图21.PyQT5窗口样式设置22.PyQT5之设置窗口控件风格23.PyQT5之多窗口交互24.PyQT5之override覆盖槽函数25.PyQT5之为槽函数传递参数26.PyQT5信号与槽的连接27.PyQT5信号刷新时间28.PyQT5之信号关闭窗口29.信号与槽N对N30.PyQT5之多个信号31.PyQT5之QTreeView32.PyQT5内嵌html33.PyQT5加载本地web页面34.PyQT5之QWebEngineView35.PyQT5之QThread36.PyQT5之QTimer37.PyQT5之QStackedWidget38.PyQT5之QTreeWidget-QTabWidget39.PyQT5之QTableWidget
40.PyQT5之QListWidget
41.PyQT5之QListView42.PyQT5之二维表QTableView43.PyQT5打印机44.PyQT5之QPainter45.PyQT5之QFontDialog46.PyQT5之QInputDialog47.PyQT5之QMessageBox48.PyQT5之QDialog49.PyQT5之多页面切换50.PyQT5之计数器控件QSpinBox51.PyQT5之滑块控件QSlider52.PyQtGraph绘图参考53.PyQtGraph之多图绘制54.PyQtGraph之柱状图55.PyQt5选择文件控件QFileDialog实例1
import sys
from PyQt5.QtCore import Qt
from PyQt5.QtGui import QIcon
from PyQt5.QtWidgets import QMainWindow, QMessageBox, QApplication, QWidget, QVBoxLayout, QPushButton, QListWidget, QListWidgetItem
class ListWidgetDemo(QMainWindow):
def __init__(self, parent=None):
super().__init__(parent) # 调用父类的构造函数,创建QWidget窗体
self.setWindowTitle("QListWidget 例子")
self.resize(300, 270)
self.listwidget = QListWidget()
self.listwidget.resize(300, 120)
self.listwidget.addItem("item1")
self.listwidget.addItem("item2")
self.listwidget.addItem("item3")
self.listwidget.addItem("item4")
self.listwidget.addItem("item5")
self.setCentralWidget(self.listwidget)
self.listwidget.itemClicked.connect(self.clicked)
def clicked(self, index):
QMessageBox.information(self, "QListWidget", "您选择了:" + self.listwidget.item(self.listwidget.row(index)).text())
if __name__ == '__main__':
app = QApplication(sys.argv)
myMain = ListWidgetDemo()
myMain.show()
sys.exit(app.exec_())
实例2
import sys
from PyQt5.QtCore import Qt
from PyQt5.QtGui import QIcon
from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QPushButton, QListWidget, QListWidgetItem
class QmyWidget(QWidget):
def __init__(self, parent=None):
super().__init__(parent) # 调用父类的构造函数,创建QWidget窗体
self.setupUi()
def setupUi(self):
"""页面初始化"""
# 设置窗体大小及标题
self.resize(500, 400)
self.setWindowTitle("QListWidget组件示例")
# 创建布局
self.layout = QVBoxLayout()
# 创建QListWidget组件
self.listWidget = QListWidget()
self.listWidget.addItem("Item 1") # 添加item
self.listWidget.addItem("Item 2")
self.listWidget.addItem("Item 3")
self.listWidget.addItem("Item 4")
# self.listWidget.addItems(["Item 1", "Item 2", "Item 3", "Item 4"]) # 添加多个item
# QListWidget组件绑定信号
self.listWidget.itemClicked.connect(self.on_listWidget_itemClicked)
self.listWidget.itemChanged.connect(self.on_listWidget_itemChanged)
self.listWidget.itemDoubleClicked.connect(self.on_listWidget_itemDoubleClicked)
# 创建两个按钮组件
self.button1 = QPushButton("新增Item", self)
self.button1.clicked.connect(self.insert_item) # 为button绑定槽函数
self.button2 = QPushButton("删除Item", self)
self.button2.clicked.connect(self.delete_item) # 为button绑定槽函数
self.button3 = QPushButton("查询Item", self)
self.button3.clicked.connect(self.select_item) # 为button绑定槽函数
self.button4 = QPushButton("修改Item", self)
self.button4.clicked.connect(self.change_item) # 为button绑定槽函数
# 将组件添加到布局中
self.layout.addWidget(self.listWidget)
self.layout.addWidget(self.button1)
self.layout.addWidget(self.button2)
self.layout.addWidget(self.button3)
self.layout.addWidget(self.button4)
# 为窗体添加布局
self.setLayout(self.layout)
def insert_item(self):
"""新增item槽函数"""
print("item新增成功!")
# 方式一:新增文本item
self.listWidget.insertItem(0, "Item Text")
# 方式二:新增QListWidgetItem对象item
item_new = QListWidgetItem()
item_new.setText("Item Obj") # 为item设置文本
item_new.setCheckState(False) # 为item设置复选状态,不勾选
item_new.setIcon(QIcon("logo.png")) # 为item设置图标
item_new.setFlags(Qt.ItemIsEnabled | Qt.ItemIsEditable | Qt.ItemIsUserCheckable) # 为item设置标志
self.listWidget.insertItem(0, item_new)
# 方式三:新增其他部件的item
item_button = QListWidgetItem()
button = QPushButton("Button")
self.listWidget.insertItem(0, item_button)
self.listWidget.setItemWidget(item_button, button) # 为item设置按钮部件
def delete_item(self):
"""删除item槽函数"""
print("item删除成功!")
# 方式一:按行索引删除item对象
self.listWidget.takeItem(0)
# 方式一:按item对象删除item的小部件
current_item = self.listWidget.currentItem()
self.listWidget.removeItemWidget(current_item)
def select_item(self):
"""查询item槽函数"""
print("item查询成功!")
# 隐藏所有的列表项
for i in range(4):
self.listWidget.item(i).setHidden(True)
# 查询Item 1并取消隐藏
item_list = self.listWidget.findItems("Item 1", Qt.MatchContains | Qt.MatchRecursive)
for item in item_list:
item.setHidden(False)
def change_item(self):
self.listWidget.item(0).setText('修改了第一行的值')
def on_listWidget_itemClicked(self, item):
"""槽函数"""
print('itemClicked信号:', item.text())
def on_listWidget_itemChanged(self, item):
print('itemChange信号:', item.text())
def on_listWidget_itemDoubleClicked(self, item):
print('双击信号:', item.text())
if __name__ == '__main__':
app = QApplication(sys.argv)
myMain = QmyWidget()
myMain.show()
sys.exit(app.exec_())
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析