通过按钮的python进程控制-Tkinter

通过按钮的python进程控制-Tkinter,python,tkinter,Python,Tkinter,是否可以通过python tkinter按钮控制或更改流程流。我有两节课。一个GuiClass和另一个ClientClass。我想通过按下开始按钮来开始这个过程。并通过按下停止按钮停止该过程。我知道在没有课的时候怎么做。但作为GuiClass的ClientClass组合,我不知道如何做到这一点。我的过程是生成一些随机值。但在后面的例子中,我将使用它每秒获取一些传感器测量数据,并在GUI上显示这些数据。 (我以前问过同样的问题,没有答案。所以我简化了我的问题:) 类的使用并没有让这变得更加困难。类

是否可以通过python tkinter按钮控制或更改流程流。我有两节课。一个GuiClass和另一个ClientClass。我想通过按下开始按钮来开始这个过程。并通过按下停止按钮停止该过程。我知道在没有课的时候怎么做。但作为GuiClass的ClientClass组合,我不知道如何做到这一点。我的过程是生成一些随机值。但在后面的例子中,我将使用它每秒获取一些传感器测量数据,并在GUI上显示这些数据。 (我以前问过同样的问题,没有答案。所以我简化了我的问题:)


类的使用并没有让这变得更加困难。类的每个实例都应该给另一个实例一个引用

例如,您的
ClientClass
已经在传递队列和主窗口小部件之类的内容。它可以自己传递,而不是传递那些东西。然后,gui可以直接引用客户端的方法和标志

例如:

class ClientClass():
    def __init__(...):
        ...
        self.gui = GuiClass(..., client=self)
        ...


class GuiClass:
    def __init__(..., client):
        self.client = client
        ...
        console_end = tkinter.Button(..., command=self.client.endCommand)
        start_button = tkinter.Button(..., command=self.client.startCommand)
        stop_button = tkinter.Button(..., command=self.client.stopCommand)

通过上述操作,客户端将了解gui(
self.gui
),gui将了解客户端(
self.client
)。这允许双向通信,因为每个实例都可以调用方法并从另一个实例获取属性。

“…但是作为ClientClass从GuiClass继承…-这不是您的代码所做的。您的代码没有继承性。@BryanOakley
self.gui=GuiClass(master、self.queue、self.endApplication、self.start\u命令、self.stop\u命令)
我的意思是,这不是继承。这叫做作文。继承是指定义一个类从另一个类继承属性。@BryanOakley composition。可以你对我的问题有什么建议吗?我完全迷路了!!没有任何人的建议!!!它起作用了。谢谢我计划添加另一个按钮,按下该按钮将显示一个新窗口,其(新窗口)标签将每秒更新一些新数据。是否可以在新窗口和旧(主)窗口之间传递控制?例如,当有新窗口时,主窗口应该处于非活动状态,关闭新窗口应该使其再次处于活动状态等等?@dayDreamer:是的,所有这些都是可能的。
class ClientClass():
    def __init__(...):
        ...
        self.gui = GuiClass(..., client=self)
        ...


class GuiClass:
    def __init__(..., client):
        self.client = client
        ...
        console_end = tkinter.Button(..., command=self.client.endCommand)
        start_button = tkinter.Button(..., command=self.client.startCommand)
        stop_button = tkinter.Button(..., command=self.client.stopCommand)