提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
QListWidget学习笔记
走起...
一、官网链接
QListWidget ->
看官网有时候会很痛苦… -> (>﹏<)
二、实践内容
1.添加列表项
def addItem (item)
def addItem (label)
def addItems (labels)
举例说明(示例):
from PySide2.QtWidgets import QListWidget, QListWidgetItem
from qtpy import QtWidgets
list_txt = [
'批量添加,列表label_1',
'批量添加,列表label_2',
'批量添加,列表label_',
'批量添加,列表label_4',
'批量添加,列表label_5'
]
class MyObject:
name = 'demo'
class DemoWidget(QtWidgets.QWidget):
def __init__(self):
super(DemoWidget, self).__init__()
self.list_widget = QListWidget()
# 添加方法1
self.list_widget.addItems(list_txt)
# 添加方法2
self.list_widget.addItem('单独添加,列表label_6')
# 添加方法3
item = QListWidgetItem()
item.setText('单独添加,列表item_7')
self.list_widget.addItem(item)
self.layout = QtWidgets.QHBoxLayout()
self.layout.addWidget(self.list_widget)
self.setLayout(self.layout)
if __name__ == '__main__':
app = QtWidgets.QApplication()
win = DemoWidget()
win.resize(200, 300)
win.show()
app.exec_()
示例运行结果:
2.当前项改变事件(Signal)
当前列表项变更的方法
def currentItemChanged (current, previous)
def currentRowChanged (currentRow)
def currentTextChanged (currentText)
示例:
from PySide2.QtWidgets import QListWidget, QListWidgetItem
from qtpy import QtWidgets
list_txt = [
'批量添加,列表label_1',
'批量添加,列表label_2',
'批量添加,列表label_',
'批量添加,列表label_4',
'批量添加,列表label_5'
]
class MyObject:
name = 'demo'
class DemoWidget(QtWidgets.QWidget):
def __init__(self):
super(DemoWidget, self).__init__()
self.list_widget = QListWidget()
# 添加方法1
self.list_widget.addItems(list_txt)
# 添加方法2
self.list_widget.addItem('单独添加,列表label_6')
# 添加方法3
item = QListWidgetItem()
item.setText('单独添加,列表item_7')
self.list_widget.addItem(item)
self.layout = QtWidgets.QHBoxLayout()
self.layout.addWidget(self.list_widget)
self.setLayout(self.layout)
# signal 方法1
self.list_widget.currentItemChanged.connect(self.handle_current_item_changed)
# signal 方法2
self.list_widget.currentRowChanged.connect(self.handle_current_row_changed)
# signal 方法3
self.list_widget.currentTextChanged.connect(self.handle_current_text_changed)
# 回调函数1
def handle_current_item_changed(self, current, previous):
print('\n','=' * 20)
print(f'\n> handle_current_item_changed')
print(f'\tcurrent:{current}')
print(f'\tprecious:{previous}')
# 回调函数2
def handle_current_row_changed(self, current_row):
print(f'\n> handle_current_row_changed')
print(f'\tcurrent_row:{current_row}')
# 回调函数3
def handle_current_text_changed(self, current_text):
print(f'\n> handle_current_text_changed')
print(f'\tcurrent_text:{current_text}')
if __name__ == '__main__':
app = QtWidgets.QApplication()
win = DemoWidget()
win.resize(200, 300)
win.show()
app.exec_()
总结
欢迎批评建议
欢迎解码更多的用法