簡體   English   中英

PyQT5 QFileDialog 問題與 Pyinstaller

[英]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 個錯誤對話框:

  1. 錯誤 ? URL 不能被列出 file:///
  2. 格式錯誤的網址
  3. 錯誤 ? URL 不能被列出 file:///

然后,一旦真正彈出文件對話框,主要區域是空白的。

空白 QFileDialog

我還在控制台中收到以下錯誤:

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM