将pyqt ui文件转换为py文件

时间:2015-11-05 23:07:21

标签: python pyqt pyqt4 qtgui

所以我最近从tkinter切换到我的python gui应用程序的pyqt,我喜欢它。

然而,有一件事让我感到困扰,我希望你们可以帮助我。

我喜欢使用qtdesigner工具,因此我可以快速开发接口,但是当我将qui转换为py时,它使用设置主窗口的setupUi方法以稍微不正常的方式构造一个类。我希望我可以通过 init 方法改变它使类成为更传统方式的方式,这样我就可以继承它并从另一个文件中定义我的事件等。目前我手动完成。这样可以很容易地修改设计器中的ui,并且仍然可以从转换后的py文件中导入,而无需进行任何修改。

我希望我的问题有道理,我期待听到其他开发人员如何处理这个问题。

提前致谢

1 个答案:

答案 0 :(得分:2)

我通常加载ui文件而不转换为py。这实际上节省了一些时间和代码也看起来不错。这是一个片段

from PyQt4 import QtGui, QtCore, uic
import sys

# Here you can add your ui path from desigener, no need to convert
RESOURCE_PATH             = package.__BASERESLOC__
baseUI                    = os.path.join(RESOURCE_PATH, "base_main.ui")
baseUIClass, baseUIWidget = uic.loadUiType(baseUI)

class BASEGUICLS(baseUIWidget, baseUIClass):
    def __init__(self,parent=None):
        super(BASEGUICLS, self).__init__(parent)
        self.setupUi(self)
        #after this you will have everything
        self.pushButton.setText("Foo")

def main():
    """
    Main function which init main GUI.
    """
    app = QtGui.QApplication(sys.argv)
    ex = BASEGUICLS(None)
    ex.show()
    sys.exit(app.exec_())