初始化

This commit is contained in:
2026-04-22 12:27:49 +08:00
commit 4857cb6e45
73 changed files with 20927 additions and 0 deletions

View File

@@ -0,0 +1,67 @@
'''
pyqt6 文件列表分组
'''
from PyQt6.QtWidgets import QApplication, QVBoxLayout, QHBoxLayout, QPushButton, QListWidget, QGroupBox
from PyQt6.QtCore import pyqtSignal
class FileListGroup(QGroupBox):
load_files = pyqtSignal()
def __init__(self, parent=None, title="文件列表"):
super().__init__(title, parent)
self.init_ui()
def init_ui(self):
layout = QVBoxLayout(self)
# 文件列表
self.file_list = QListWidget()
self.file_list.setSelectionMode(QListWidget.SelectionMode.MultiSelection)
layout.addWidget(self.file_list)
# 文件列表操作按钮
file_list_btn_layout = QHBoxLayout()
# 加载文件按钮
self.load_file_btn = QPushButton("加载文件")
self.load_file_btn.clicked.connect(self.on_load_files)
# 全选/全不选按钮
select_all_btn = QPushButton("全选")
select_all_btn.clicked.connect(self.on_select_all_files)
select_none_btn = QPushButton("全不选")
select_none_btn.clicked.connect(self.on_select_none_files)
# 添加按钮到布局
file_list_btn_layout.addWidget(self.load_file_btn)
file_list_btn_layout.addWidget(select_all_btn)
file_list_btn_layout.addWidget(select_none_btn)
layout.addLayout(file_list_btn_layout)
def on_load_files(self):
# 通过信号槽机制,添加文件列表
self.load_files.emit()
def on_select_all_files(self):
# 全选文件
for i in range(self.file_list.count()):
item = self.file_list.item(i)
if item:
item.setSelected(True)
def on_select_none_files(self):
# 全不选文件
for i in range(self.file_list.count()):
item = self.file_list.item(i)
if item:
item.setSelected(False)
if __name__ == '__main__':
app = QApplication([])
app.setStyle("Fusion")
window = FileListGroup()
window.show()
app.exec()