gpt4 book ai didi

python - PyQt5 QFileDialog 不适用于 pywinauto 导入

转载 作者:太空宇宙 更新时间:2023-11-03 14:04:00 26 4
gpt4 key购买 nike

不确定这是一个错误还是什么,但这让我发疯。我在 Win 7 上使用 Python 3.5.4 32 位。如果将 pywinauto 导入到脚本中,PyQt5 的文件查找器将无法工作。如果有人可以检查此脚本是否适用于他们(测试"file">“导入”按钮):

from PyQt5 import QtWidgets
import sys
#import pywinauto

class Window(QtWidgets.QMainWindow):
def __init__(self):
super(Window, self).__init__()
self.setGeometry(50, 50, 800, 600)

import_folder = QtWidgets.QAction("import", self)
import_folder.triggered.connect(self.open_folder)

main_menu = self.menuBar()

fileMenu = main_menu.addMenu("&File")
fileMenu.addAction(import_folder)

self.show()

def open_folder(self):
folder = QtWidgets.QFileDialog.getExistingDirectory(self, "Open folder")


app = QtWidgets.QApplication(sys.argv)
main = Window()
sys.exit(app.exec_())

运行后,尝试取消注释 pywinauto 导入并再次运行脚本 - 它对我不起作用。 Pywinauto 正在破坏我的文件浏览器,但我的程序中需要它!没有错误或任何东西,应用程序只是卡住并且没有响应。我不知道发生了什么事。如果有人可以测试一下那就太好了。如果您有任何指导,干杯。

最佳答案

我们可以找出问题出在 PyQt 内部,因为它总是尝试使用单线程模式 (STA),而 import pywinauto 已经使用多线程模式 (MTA) 初始化了 COM。解决方法是:

import sys
sys.coinit_flags = 2 # STA
import pywinauto

它可能会产生此警告(没关系):

UserWarning: Apply externally defined coinit_flags: 2 
.format(module_sys.coinit_flags), UserWarning)

关于python - PyQt5 QFileDialog 不适用于 pywinauto 导入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49043570/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com