代码之家  ›  专栏  ›  技术社区  ›  Julien

加载PyQt5 UI文件时出错

  •  2
  • Julien  · 技术社区  · 6 年前

    我正在使用以下代码加载ui文件,但始终看到错误消息。


    # main.py
    import sys
    from PyQt5.QtWidgets import *
    from PyQt5 import uic
    
    form_class = uic.loadUiType("main_window.ui")[0]
    
    class MyWindow(QMainWindow, form_class):
        def __init__(self):
            super().__init__()
            self.setupUi(self)
    
    if __name__ == "__main__":
        app = QApplication(sys.argv)
        myWindow = MyWindow()
        myWindow.show()
        app.exec_()
    

    Error message:
        FileNotFoundError: [Errno 2] No such file or directory: 'main_window.ui'
    

    main_window.ui 与位于同一文件夹中 main.py

    1 回复  |  直到 6 年前
        1
  •  1
  •   Azsgy    6 年前

    传递到的文件的名称 loadUiType 相对于工作目录,而不是python文件。您可以通过完整路径。要获取完整路径,可以找到当前文件的目录,然后将其与UI文件的名称连接起来。

    e、 g:

    ...
    ui_path = os.path.dirname(os.path.abspath(__file__))
    form_class = uic.loadUiType(os.path.join(ui_path, "main_window.ui"))[0]
    ...