# 错误修复总结 ## 问题描述 运行程序时出现 `NameError: name 'QWidget' is not defined` 错误。 ### 错误堆栈 ``` File "D:\production_test_tool\src\ui\login_dialog.py", line 33, in setup_ui content_widget = QWidget() ^^^^^^^ NameError: name 'QWidget' is not defined ``` ## 根本原因 在修改 [login_dialog.py](login_dialog.py) 的布局时,将 `QLabel()` 改为 `QWidget()`,但是 `QWidget` 未在文件的导入部分声明。 ### 之前的导入: ```python from PyQt5.QtWidgets import ( QDialog, QVBoxLayout, QHBoxLayout, QLabel, QLineEdit, QPushButton, QMessageBox, QCheckBox, QApplication, QSpacerItem, QSizePolicy ) ``` ## 解决方案 在导入列表中添加 `QWidget`: ```python from PyQt5.QtWidgets import ( QDialog, QVBoxLayout, QHBoxLayout, QLabel, QLineEdit, QPushButton, QMessageBox, QCheckBox, QApplication, QSpacerItem, QSizePolicy, QWidget # ← 新增 ) ``` ## 修复验证 ✓ 文件编译成功 (py_compile) ✓ 导入测试成功 ✓ UI 模块导入成功 ## 修改文件 - [src/ui/login_dialog.py](src/ui/login_dialog.py) - 第 7 行添加 `QWidget` 导入 ## 当前状态 所有 UI 文件现在都可以正常导入和使用,程序应该能正常启动。