cannot import name 'QlineEdit' from 'PySide2.QtWidgets' (D:\pythonProject2\venv\lib\site-packages\PySide2\QtWidgets.pyd)
这个错误提示通常是因为在 PySide2.QtWidgets 模块中没有 QlineEdit 类。请检查你的代码是否正确引入了 PySide2.QtWidgets 模块,并且正确地拼写了 QlineEdit 类名。如果你确定你的代码没有问题,你可以尝试重新安装 PySide2 库或者更新到最新版本来解决这个问题。
Traceback (most recent call last): File "C:/Users/haige/PycharmProjects/pyoutoTest/bite.py", line 21, in <module> QLineEdit.set_edit_text("^a") # 选择整个文本 File "D:\Python27\lib\site-packages\pywinauto\application.py", line 379, in __getattribute__ ctrls = self.__resolve_control(self.criteria) File "D:\Python27\lib\site-packages\pywinauto\application.py", line 258, in __resolve_control criteria) File "D:\Python27\lib\site-packages\pywinauto\timings.py", line 436, in wait_until_passes func_val = func(*args, **kwargs) File "D:\Python27\lib\site-packages\pywinauto\application.py", line 222, in __get_ctrl ctrl = self.backend.generic_wrapper_class(findwindows.find_element(**ctrl_criteria)) File "D:\Python27\lib\site-packages\pywinauto\findwindows.py", line 93, in find_element six.text_type(kwargs), File "D:\Python27\lib\site-packages\pywinauto\element_info.py", line 48, in __repr__ return '<{0}, {1}>'.format(self.__str__(), self.handle) File "D:\Python27\lib\site-packages\pywinauto\element_info.py", line 62, in __str__ return "{0} - '{1}', {2}".format(type_name, self.name, self.class_name) UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-3: ordinal not in range(128)
根据您提供的错误信息,UnicodeEncodeError 是由于在打印控件信息时尝试将非 ASCII 字符编码为 ASCII 导致的。这个错误可能是由于控件的名称或类名包含了非 ASCII 字符。
为了解决这个问题,您可以使用 repr()
函数来处理控件名称和类名,以确保正确打印。请尝试以下代码:
import sys
from pywinauto import Application
# 设置编码为 UTF-8
reload(sys)
sys.setdefaultencoding('utf-8')
# 启动应用程序
app = Application(backend="uia").start("notepad.exe")
# 选择编辑框
window = app["无标题 - 记事本"]
edit_box = window.Edit
# 将焦点移动到编辑框并清空输入
edit_box.click_input()
edit_box.type_keys("^a") # 选择整个文本
edit_box.type_keys("{VK_DELETE}") # 删除选中的文本
# 打印控件信息
print(repr(edit_box.name)) # 打印控件名称
print(repr(edit_box.class_name)) # 打印控件类名
通过使用 repr()
函数,您可以确保在打印控件信息时不会再出现 UnicodeEncodeError。
如果您还有其他问题,请随时提问。
AttributeError: 'PySide2.QtWidgets.QWidget' object has no attribute 'QLineEdit'
AttributeError: 'PySide2.QtWidgets.QWidget' object has no attribute 'QLineEdit' 是一个错误提示,意思是在 PySide2.QtWidgets.QWidget 对象中没有名为 QLineEdit 的属性。
PySide2 是一个用于创建跨平台图形用户界面(GUI)的 Python 模块。QWidget 是 PySide2.QtWidgets 模块中的一个类,它是所有用户界面对象的基类。
QLineEdit 是 PySide2.QtWidgets 模块中的另一个类,它是一个用于接收和显示单行文本的控件。
出现 AttributeError: 'PySide2.QtWidgets.QWidget' object has no attribute 'QLineEdit' 的错误可能有以下几种原因:
- 代码中没有正确导入 PySide2.QtWidgets.QLineEdit 类。
- 代码中创建的 QWidget 对象没有正确实例化 QLineEdit 对象。
- 代码中使用了错误的属性名称。
要解决这个错误,可以尝试以下几个步骤:
- 确保已正确导入 PySide2.QtWidgets.QLineEdit 类,可以使用类似于
from PySide2.QtWidgets import QLineEdit
的语句进行导入。 - 确保在创建 QWidget 对象时正确实例化了 QLineEdit 对象,并将其作为 QWidget 的子控件添加。
- 检查代码中是否使用了正确的属性名称,确保没有拼写错误或者误用了其他属性。
如果你能提供更多的代码或者上下文信息,我可以给出更具体的帮助。
相关推荐

















