使用按钮命令python从类中调用不同的类

时间:2018-08-16 11:44:01

标签: python python-3.x

假设我有这个程序:

class Edit(self):
   print("something")
class mainclass(self):
    def mainmenu(self):
        button1 = Button(root,text = "Edit",command = Edit)

如何从带有按钮的课程中调用课程?注意:这仅是示例。 谢谢。

1 个答案:

答案 0 :(得分:0)

在此示例中,我使用了Qt:

#!/usr/bin/env python
from Qt import QtWidgets
import sys

class MainWidget(QtWidgets.QWidget):
    def __init__(self):
        super(MainWidget, self).__init__()
        #Layout creation
        layout = QtWidgets.QVBoxLayout(self)
        self.setLayout(layout)

        #Widgets creation
        self.button = QtWidgets.QPushButton("button")

        #Layout connections
        layout.addWidget(self.button)

        #Widget connections
        self.button.released.connect(self.call_edit)

    def call_edit_class(self):
        """
        Creates an instance of Edit class
        """
        edit_instance = Edit()


class Edit() :
    def __init__(self):
        """
        Will print "Something" at the initialization step , as soon as the instance is created
        """
        print ("Something")

def main():
    global widg
    app = QtWidgets.QApplication(sys.argv)
    widg = MainWidget()
    widg.show()
    sys.exit(app.exec_())

if __name__ == "__main__":
    main()

但是,这不是一个好习惯,最好在MainWidget类中创建一个函数,该函数在每次按下按钮时都会打印“ Something”。

示例: def button_pushed(自己):     打印(“某事”)

您将使用致电: self.button.released.connect(self.button_pushed)

这更简单,所以更好:) 希望对您有所帮助。