PyQt QListWidget 文件选择
在PyQt中,QListWidget是一种非常有用的界面控件,可以用于展示和选择文件。在本文中,我们将详细介绍如何使用QListWidget来实现文件选择功能。
创建一个QListWidget
首先,我们需要创建一个QListWidget控件,用于展示文件列表。以下是一个简单的示例代码:
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QListWidget
class FileSelector(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle('文件选择器')
layout = QVBoxLayout()
self.file_list = QListWidget()
layout.addWidget(self.file_list)
self.setLayout(layout)
if __name__ == '__main__':
app = QApplication(sys.argv)
window = FileSelector()
window.show()
sys.exit(app.exec_())
运行以上代码,我们将看到一个空的窗口,其中包含一个空的文件列表控件。
向QListWidget添加文件
接下来,我们将向QListWidget中添加一些文件。我们可以使用addItem()方法来添加文件,也可以使用addItems()方法来添加多个文件。
# 向QListWidget添加单个文件
self.file_list.addItem('geek-docs.com.txt')
# 向QListWidget添加多个文件
files = ['geek-docs.com_1.txt', 'geek-docs.com_2.txt', 'geek-docs.com_3.txt']
self.file_list.addItems(files)
运行以上代码,我们将看到文件列表中添加了几个文件,每个文件名包含geek-docs.com。
获取用户选择的文件
当用户选择一个文件时,我们需要获取用户选择的文件名。可以使用currentItem()方法和text()方法来获取当前选中的文件名。
selected_file = self.file_list.currentItem().text()
print(selected_file)
运行以上代码,我们将在控制台中看到用户选择的文件名。
完整示例代码
以下是一个完整的文件选择器的示例代码:
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QListWidget
class FileSelector(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle('文件选择器')
layout = QVBoxLayout()
self.file_list = QListWidget()
layout.addWidget(self.file_list)
files = ['geek-docs.com_1.txt', 'geek-docs.com_2.txt', 'geek-docs.com_3.txt']
self.file_list.addItems(files)
self.file_list.currentItemChanged.connect(self.get_selected_file)
self.setLayout(layout)
def get_selected_file(self):
selected_file = self.file_list.currentItem().text()
print(selected_file)
if __name__ == '__main__':
app = QApplication(sys.argv)
window = FileSelector()
window.show()
sys.exit(app.exec_())
运行以上代码,我们将看到一个包含文件列表的窗口,并且可以获取用户选择的文件名。
通过使用QListWidget,我们可以实现一个简单的文件选择器,方便用户选择文件。