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