[英]PyQT5 QFileDialog issues with Pyinstaller
我在 Arch Linux 上使用 PyQt5 和 Pycharm 和 Python 3.7(也嘗試過 3.8)。 當我從 PyCharm 或直接從命令行運行我的代碼時,文件對話框打開正常。 但是,當我使用Pyinstaller構建時,在使用它們時會出現一致的錯誤。 代碼:
def choose_log_location(self):
self.log_location = QFileDialog.getExistingDirectory(
self,
"Choose Log Files Directory",
"/home",
options=QFileDialog.ShowDirsOnly)
if self.log_location != "":
self.Log_Location.setText(self.log_location)
使用 Pyinstaller 構建后,運行構建的應用程序並單擊觸發此方法的按鈕,我會彈出 3 個錯誤對話框:
然后,一旦真正彈出文件對話框,主要區域是空白的。
我還在控制台中收到以下錯誤:
kf5.kio.core: "" qt.qpa.xcb: QXcbConnection: XCB 錯誤: 3 (BadWindow), 序列: 7952, 資源 id: 36398251, 主要代碼: 40 (TranslateCoords), 次要代碼: 0
我也使用 QFileDialog.getOpenFileName() 遇到了一些類似的問題(文件應該是空白區域 - 注意沒有過濾器測試,結果相同)但控制台中出現不同的錯誤:
kf5.kservice.services: KServiceTypeTrader: serviceType "ThumbCreator" not found
我有同樣的問題。 pyinstaller 似乎會在本機對話框中產生此錯誤。 所以我的解決方案是使用DontUseNativeDialog
選項。
例如
self.log_location = QFileDialog.getExistingDirectory(
self,
"Choose Log Files Directory",
"/home",
QFileDialog.DontUseNativeDialog)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.