#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ 测试文件夹导入功能 """ import sys import os def test_folder_import_dialog(): """测试文件夹导入对话框""" print("🔍 测试文件夹导入对话框...") try: from PyQt5.QtWidgets import QApplication from data.project_manager import ProjectManager from ui.import_project_dialog import ImportProjectDialog # 创建应用程序实例 app = QApplication.instance() if app is None: app = QApplication([]) # 创建项目管理器 project_manager = ProjectManager() print("✅ ProjectManager 创建成功") # 创建导入对话框 dialog = ImportProjectDialog(project_manager) print("✅ ImportProjectDialog 创建成功") # 检查对话框标题 expected_title = "导入文件夹" actual_title = dialog.windowTitle() if actual_title == expected_title: print(f"✅ 窗口标题正确: {actual_title}") else: print(f"❌ 窗口标题错误: 期望 '{expected_title}', 实际 '{actual_title}'") # 检查UI文本 print("✅ 对话框创建成功,UI文本应该已更新为文件夹相关") # 显示对话框进行手动测试 print("\n💡 对话框将显示,请测试以下功能:") print(" 1. 检查标题是否为'导入文件夹'") print(" 2. 检查GroupBox标题是否为'选择文件夹'") print(" 3. 检查按钮文字是否为'点击选择文件夹'") print(" 4. 检查提示文字是否为'拖拽文件夹到这里'") print(" 5. 检查格式提示是否为'支持任意文件夹'") print(" 6. 测试点击选择按钮是否打开文件夹选择对话框") print(" 7. 测试拖拽文件夹功能") print(" 8. 关闭对话框完成测试") # 显示对话框 dialog.show() result = dialog.exec_() if result == dialog.Accepted: print("✅ 对话框正常关闭(用户点击了导入)") else: print("✅ 对话框正常关闭(用户取消了操作)") return True except Exception as e: print(f"❌ 测试失败: {e}") import traceback traceback.print_exc() return False def verify_changes(): """验证代码修改""" print("🔍 验证代码修改...") try: # 读取修改后的文件 with open('ui/import_project_dialog.py', 'r', encoding='utf-8') as f: content = f.read() # 检查关键修改 checks = [ ("窗口标题", 'self.setWindowTitle("导入文件夹")'), ("GroupBox标题", 'QGroupBox("选择文件夹")'), ("按钮文字", 'QPushButton("点击选择文件夹")'), ("提示文字", '"拖拽文件夹到这里,或者"'), ("格式提示", '"支持任意文件夹"'), ("文件夹选择", 'QFileDialog.getExistingDirectory'), ("文件夹过滤", 'os.path.isdir(f)'), ] all_passed = True for check_name, check_text in checks: if check_text in content: print(f"✅ {check_name}: 已修改") else: print(f"❌ {check_name}: 未找到修改") all_passed = False return all_passed except Exception as e: print(f"❌ 验证失败: {e}") return False def main(): """主函数""" print("🔧 测试导入文件夹功能修改") print("=" * 60) # 验证代码修改 code_ok = verify_changes() if code_ok: print("\n✅ 代码修改验证通过") # 测试对话框 dialog_ok = test_folder_import_dialog() if dialog_ok: print("\n🎉 所有测试通过!") print("\n📋 修改总结:") print("1. ✅ 窗口标题: '导入项目文件' → '导入文件夹'") print("2. ✅ GroupBox标题: '选择项目文件' → '选择文件夹'") print("3. ✅ 按钮文字: '点击选择文件' → '点击选择文件夹'") print("4. ✅ 提示文字: '拖拽文件到这里' → '拖拽文件夹到这里'") print("5. ✅ 格式提示: '支持.zip,.rar,.7z格式' → '支持任意文件夹'") print("6. ✅ 选择逻辑: 文件选择 → 文件夹选择") print("7. ✅ 拖拽逻辑: 支持文件夹过滤") print("8. ✅ 列表显示: 显示文件夹信息和文件数量") print("9. ✅ 导入逻辑: 直接使用文件夹路径") print("\n💡 现在可以导入文件夹作为项目了!") return True else: print("\n❌ 对话框测试失败") return False else: print("\n❌ 代码修改验证失败") return False if __name__ == "__main__": success = main() print("\n按Enter键退出...") input() sys.exit(0 if success else 1)