import sysfrom PyQt6.QtWidgets import ( QApplication, QMainWindow, QWidget, QVBoxLayout, QHBoxLayout, QGroupBox, QLabel, QLineEdit, QPushButton, QTextEdit, QRadioButton, QButtonGroup, QFileDialog, QMessageBox, QFrame)from PyQt6.QtCore import Qtfrom PyQt6.QtGui import QFont, QTextCursorclass FileTimeModifierGUI(QMainWindow): def __init__(self): super().__init__() self.init_ui() def init_ui(self): """初始化UI""" self.setWindowTitle("文件时间批量修改工具(欢迎关注微信公众号:码海听潮)") self.setGeometry(100, 100, 900, 800) # 中央窗口 central_widget = QWidget() self.setCentralWidget(central_widget) main_layout = QVBoxLayout(central_widget) main_layout.setSpacing(10) main_layout.setContentsMargins(10, 10, 10, 10) # ========== PowerShell 脚本设置 ========== ps_group = QGroupBox("PowerShell 脚本设置") ps_layout = QHBoxLayout() self.ps_entry = QLineEdit() self.ps_entry.setText("Set-FileTime.ps1") ps_layout.addWidget(self.ps_entry) self.browse_ps_btn = QPushButton("浏览脚本...") ps_layout.addWidget(self.browse_ps_btn) self.test_ps_btn = QPushButton("测试脚本") ps_layout.addWidget(self.test_ps_btn) self.ps_status_label = QLabel("⚪ 未检测") ps_layout.addWidget(self.ps_status_label) ps_group.setLayout(ps_layout) main_layout.addWidget(ps_group) # ========== 模式选择 ========== mode_group = QGroupBox("操作模式") mode_layout = QHBoxLayout() self.single_radio = QRadioButton("单个文件") self.batch_radio = QRadioButton("批量处理(目录)") self.single_radio.setChecked(True) self.mode_group = QButtonGroup() self.mode_group.addButton(self.single_radio, 0) self.mode_group.addButton(self.batch_radio, 1) mode_layout.addWidget(self.single_radio) mode_layout.addWidget(self.batch_radio) mode_layout.addStretch() mode_group.setLayout(mode_layout) main_layout.addWidget(mode_group) # ========== 路径选择 ========== path_group = QGroupBox("文件/目录路径") path_layout = QHBoxLayout() self.path_entry = QLineEdit() path_layout.addWidget(self.path_entry) self.browse_path_btn = QPushButton("浏览...") path_layout.addWidget(self.browse_path_btn) path_group.setLayout(path_layout) main_layout.addWidget(path_group) # ========== 时间设置 ========== time_group = QGroupBox("时间设置") time_layout = QVBoxLayout() # 创建时间 creation_layout = QHBoxLayout() creation_layout.addWidget(QLabel("创建时间:")) self.creation_entry = QLineEdit("2024-12-19 10:38:31") creation_layout.addWidget(self.creation_entry) creation_layout.addWidget(QLabel("格式: YYYY-MM-DD HH:MM:SS")) creation_layout.addStretch() time_layout.addLayout(creation_layout) # 修改时间 mod_layout = QHBoxLayout() mod_layout.addWidget(QLabel("修改时间:")) self.modification_entry = QLineEdit("2024-11-01 12:00:00") mod_layout.addWidget(self.modification_entry) mod_layout.addWidget(QLabel("格式: YYYY-MM-DD HH:MM:SS")) mod_layout.addStretch() time_layout.addLayout(mod_layout) # 访问时间 access_layout = QHBoxLayout() access_layout.addWidget(QLabel("访问时间:")) self.access_entry = QLineEdit("2024-12-18 12:00:00") access_layout.addWidget(self.access_entry) access_layout.addWidget(QLabel("格式: YYYY-MM-DD HH:MM:SS")) access_layout.addStretch() time_layout.addLayout(access_layout) # 快捷按钮 button_layout = QHBoxLayout() self.current_time_btn = QPushButton("设为当前时间") button_layout.addWidget(self.current_time_btn) self.original_time_btn = QPushButton("设为文件原始时间") button_layout.addWidget(self.original_time_btn) button_layout.addStretch() time_layout.addLayout(button_layout) time_group.setLayout(time_layout) main_layout.addWidget(time_group) # ========== 操作按钮(居中显示) ========== action_container = QWidget() action_layout = QHBoxLayout(action_container) action_layout.setAlignment(Qt.AlignmentFlag.AlignCenter) self.execute_btn = QPushButton("开始修改") self.execute_btn.setStyleSheet("QPushButton { font-weight: bold; padding: 8px 25px; min-width: 100px; }") action_layout.addWidget(self.execute_btn) self.stop_btn = QPushButton("停止") self.stop_btn.setEnabled(False) self.stop_btn.setStyleSheet("QPushButton { padding: 8px 25px; min-width: 100px; }") action_layout.addWidget(self.stop_btn) self.clear_log_btn = QPushButton("清空日志") self.clear_log_btn.setStyleSheet("QPushButton { padding: 8px 25px; min-width: 100px; }") action_layout.addWidget(self.clear_log_btn) main_layout.addWidget(action_container) # ========== 日志输出 ========== log_group = QGroupBox("日志") log_layout = QVBoxLayout() self.log_text = QTextEdit() self.log_text.setReadOnly(True) font = QFont("Consolas", 9) self.log_text.setFont(font) log_layout.addWidget(self.log_text) log_group.setLayout(log_layout) main_layout.addWidget(log_group)def main(): app = QApplication(sys.argv) app.setStyle('Fusion') window = FileTimeModifierGUI() window.show() sys.exit(app.exec())if __name__ == "__main__": main()