将pyqt ui 文件转换成py文件
Converting pyqt ui files into py files
所以我最近为我的 python gui 应用程序从 tkinter 切换到 pyqt,我喜欢它。
不过有一件事很困扰我,希望大家能帮帮我。
我喜欢使用 qtdesigner 工具,所以我可以快速开发接口,但是当我将 qui 转换为 py 时,它使用 setupUi 方法以稍微不正常的方式构造了一个 class设置主要 window。我希望我可以使用 init 方法将它使 class 变成更传统的方式,这样我就可以继承它并从另一个中定义我的事件等文件。目前我手动做。这将使在设计器中修改 ui 变得容易,并且仍然可以从转换后的 py 文件导入而无需制作任何 mod。
我希望我的问题是有道理的,我期待听到其他开发人员如何处理这个问题。
提前致谢
我通常加载 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_())
所以我最近为我的 python gui 应用程序从 tkinter 切换到 pyqt,我喜欢它。
不过有一件事很困扰我,希望大家能帮帮我。
我喜欢使用 qtdesigner 工具,所以我可以快速开发接口,但是当我将 qui 转换为 py 时,它使用 setupUi 方法以稍微不正常的方式构造了一个 class设置主要 window。我希望我可以使用 init 方法将它使 class 变成更传统的方式,这样我就可以继承它并从另一个中定义我的事件等文件。目前我手动做。这将使在设计器中修改 ui 变得容易,并且仍然可以从转换后的 py 文件导入而无需制作任何 mod。
我希望我的问题是有道理的,我期待听到其他开发人员如何处理这个问题。
提前致谢
我通常加载 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_())