【问题标题】:Python GUI class structure callsPython GUI 类结构调用
【发布时间】:2016-09-07 11:45:14
【问题描述】:

假设我有两个类,AB

A 类是我称为class main 的类,BGUI 类(假设它称为class main_gui)。

GUI 类包含启动和设置所有视图、按钮和称为setupUi 的东西的方法。类由QtCreator生成。

我的班级还必须具备什么才能使其足以单独运行B 或从其他班级调用?我知道打电话__init__ 不是强制性的,但这是个好主意。这个函数必须包含什么? __main__ 是否必须使其可运行?

__main__ 必须包含什么?构造函数必须包含什么?我坚持调用类,我找不到足够简单的解释或足够简单的示例代码,我可以在我的情况下实现。请为脑死亡的人解释一下。

我是一名 Java 开发人员,但我是 Python 及其细节方面的新手。如果可以提供一些代码示例(甚至伪代码也可以),您将非常有帮助。提前致谢!

【问题讨论】:

    标签: python qt python-3.x pyqt qt-creator


    【解决方案1】:

    不确定这是否是您正在寻找的,但是:

    一个简单的视图:

    class Home(QtWidgets.QFrame, Ui_home):
    """Home view."""
    
    def __init__(self, parent=None):
        """Initializer."""
        super(Home, self).__init__()
        self._parent = parent
        self.setupUi(self)
    

    ui_home 是 QtDesigner 生成的类

    在我的主程序中,我只是创建一个 QApplication 并执行它:

    app = QtWidgets.QApplication(sys.argv)
    

    然后我可以调用我的 home_controller 或创建一个家庭显示我的视图:

    home = Home()
    sys.exit(app.exec_())
    

    显然,这是一个真实应用程序中的一个非常简单的示例,您将有一个类来处理控制器/视图的创建,但是,就这么简单

    【讨论】:

    • 所以你告诉我类 Home 是类 A 并且调用生成的类 Ui_home 我必须扩展它?我不明白。
    • or class Home 是生成的?
    • 更准确地说,我需要从 QtCreator 生成一个类,然后从我的(空)主类中尽可能简单地调用它。主类叫什么?我必须向生成的类添加什么才能调用它?因为生成的类中唯一的方法是setupUI()。我需要将其称为secondwindow = Generated(),然后是secondwindow.show() 或类似的名称。但要做到这一点,我需要在生成的类中添加一些代码......我希望我解释得足够好
    • 是的 A 类是 Home 而 Ui_Home 是你生成的类,你必须扩展它。这个链接解释了如何使用 PyQt 创建一个简单的窗口:nikolak.com/pyqt-qt-designer-getting-started
    • 天哪,谢谢。正是我需要的。在接下来的一两个月内密切关注 SirenPlayer :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-12
    • 2017-07-17
    • 2023-03-20
    • 1970-01-01
    • 2015-03-05
    • 2011-06-25
    相关资源
    最近更新 更多