PyQt6制作一个可以打开文件,然后选择开始时间,结束时间,筛选所打开的文件
时间: 2024-05-09 08:14:47 浏览: 193
好的,这个问题涉及到了PyQt6的文件对话框、时间选择器和表格控件,我们可以分步骤来实现。
首先,我们可以使用QFileDialog来创建一个能够打开文件的对话框,代码如下:
```python
from PyQt6.QtWidgets import QApplication, QFileDialog
app = QApplication([])
file_path, _ = QFileDialog.getOpenFileName(
None,
"Select a file",
"",
"CSV files (*.csv);;Excel files (*.xlsx);;All files (*.*)",
options=QFileDialog.Options(),
)
print(file_path)
```
接下来,我们可以使用QDateTimeEdit来创建一个时间选择器,代码如下:
```python
from PyQt6.QtCore import QDateTime
from PyQt6.QtWidgets import QApplication, QDateTimeEdit
app = QApplication([])
start_time = QDateTimeEdit(QDateTime.currentDateTime())
end_time = QDateTimeEdit(QDateTime.currentDateTime())
start_time.setDisplayFormat("yyyy-MM-dd HH:mm:ss")
end_time.setDisplayFormat("yyyy-MM-dd HH:mm:ss")
start_time.setCalendarPopup(True)
end_time.setCalendarPopup(True)
start_time.show()
end_time.show()
app.exec()
```
最后,我们可以使用QTableWidget来创建一个表格控件,并在其中筛选所打开的文件,代码如下:
```python
from PyQt6.QtCore import Qt, QDateTime
from PyQt6.QtGui import QStandardItemModel, QStandardItem, QColor
from PyQt6.QtWidgets import QApplication, QFileDialog, QDateTimeEdit, QTableWidget, QTableWidgetItem
app = QApplication([])
# 打开文件对话框
file_path, _ = QFileDialog.getOpenFileName(
None,
"Select a file",
"",
"CSV files (*.csv);;Excel files (*.xlsx);;All files (*.*)",
options=QFileDialog.Options(),
)
# 创建时间选择器
start_time = QDateTimeEdit(QDateTime.currentDateTime())
end_time = QDateTimeEdit(QDateTime.currentDateTime())
start_time.setDisplayFormat("yyyy-MM-dd HH:mm:ss")
end_time.setDisplayFormat("yyyy-MM-dd HH:mm:ss")
start_time.setCalendarPopup(True)
end_time.setCalendarPopup(True)
start_time.show()
end_time.show()
# 创建表格控件
table_widget = QTableWidget()
table_widget.setColumnCount(2)
table_widget.setHorizontalHeaderLabels(["File Name", "File Path"])
table_widget.setSortingEnabled(True)
# 筛选文件并添加到表格中
model = QStandardItemModel()
for i in range(10):
item = QStandardItem(f"Item {i}")
item.setForeground(QColor("red"))
model.setItem(i, 0, item)
for row in range(model.rowCount()):
file_name = model.item(row, 0).text()
if file_name.startswith("Item 1"):
file_path_item = QTableWidgetItem(f"{file_name} file path")
file_path_item.setFlags(Qt.ItemIsEditable)
table_widget.insertRow(table_widget.rowCount())
table_widget.setItem(table_widget.rowCount() - 1, 0, QTableWidgetItem(file_name))
table_widget.setItem(table_widget.rowCount() - 1, 1, file_path_item)
table_widget.resizeColumnsToContents()
table_widget.show()
app.exec()
```
这样,我们就完成了一个可以打开文件,选择开始时间、结束时间,并筛选所打开的文件的PyQt6应用程序。
阅读全文