在程序(Python 3.x)中调用的新tkinter窗口中的EXETUE按钮

2024-05-15 16:03:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个Python GUI,可以进行简单的计算。运行名为gui.py的主文件将打开一个图形界面。我打开图形界面,并自动单击Kjør beregning和Resultater按钮。(挪威语表示“运行计算”和“结果”)。 它为我提供了一个名为Resultater的新窗口,它有自己的按钮。问题是我如何在新窗口中调用函数或执行按钮而不单击

if __name__ == "__main__":
# Kjører program
root = KL_mast()
hovedvindu = Hovedvindu(root)
# starts calculation then invokes results button
hovedvindu._beregn()
hovedvindu._resultater()

root.mainloop()

hovedvindu.\u resultater()打开一个名为resultater的新框架,我想在打开它之后调用其中的函数。下面是Resultater框架和Tabell按钮的定义,我想在上面的root.mainloop()之前添加额外的代码

class Resultater(tk.Frame):
"""Vindu for resultater."""

def __init__(self, *args, **kwargs):
    """Initialiserer vindu."""
    tk.Frame.__init__(self, *args, **kwargs)
    self.pack(fill="both")

    tabell_btn = tk.Button(knapper_frame, text="Tabell", font=bold,
                           command=self.M._tabell)

这是我之前的问题,如果有帮助的话,它与同一个程序有关

Execute tkinter button without clicking on it


Tags: self框架initbuttonroot按钮frametk
1条回答
网友
1楼 · 发布于 2024-05-15 16:03:16

Tkinter button有一个名为invoke witch的方法调用按钮的回调,并返回该函数返回的内容,如果按钮被禁用或没有回调,则该方法无效。要在另一个fram中调用按钮,只需使用按钮的名称

以下是如何使用invoke:

import tkinter as tk

#Onclick Method1
def OnClick():
    #Invoking button on seperate frame
    btn2.invoke()

#Onclick Method 2
def ResulatorOnClick():
    print('btn2 has been clicked')

master = tk.Tk()

Resulator = tk.Frame(master)
Resulator.pack()

btn1 = tk.Button ( master, width=40,height =20, command=OnClick)
btn1.pack()

btn2 = tk.Button ( Resulator, width=40,height =20, command=ResulatorOnClick)
btn2.pack()

master.mainloop()     

输出:btn2 has been clicked

相关问题 更多 >