Python通过新窗口按钮

时间:2016-04-02 14:01:54

标签: python

所以这是交易。我有一个按钮。该按钮触发while循环并打开一个带有“取消”按钮的新窗口。通过该取消按钮,我想终止while循环。

新方法:

def process():
    parent,child = Pipe()
    p = process(target=new_window(),args=(child))
    p.start()
    parent.send("True")
    while true:
        if child.recv()!="False":
            do something
        else:
            p.join()


def new_window(p):
    id = "cancel"
    window = Toplevel(root)
    window.geometry("240x160")

    state = p.recv()

    def closewindow():
        global state
        state = "False"
        p.send(state)
        window.destroy()

    label = Label(window, text="Überwache...").place(x=90,y=60)
    buttonc = Button(window,text="Abbrechen!",fg="black",command=closewindow).place(relx=0.35, rely=0.5)

这个想法是父(def进程)执行while循环,只要它没有从子进程(new_window)得到“False”。 你看到有什么错误吗?现在无法测试,因为替换我的占位符的代码“做某事”是另一项艰巨的任务......

旧帖子:

状态变量

state = bool(True)  

触发循环和新窗口的按钮

button3 = Button(containerd,text="Starte Überwachung",fg="black",height=10,width=16,command=sound)

功能新窗口

def new_window():

    id = "cancel"
    window = Toplevel(root)
    window.geometry("240x160")
    def closewindow():
        global state
        state = bool(False)
        window.destroy()

    label = Label(window, text="Überwache...").place(x=90,y=60)
    buttonc = Button(window,text="Abbrechen!",fg="black",command=closewindow).place(relx=0.35, rely=0.5)

循环功能

def sound():
    global inp
    global state

    new_window()
    while state:
        l,data = inp.read()
        if l > 60:
            subprocess.call(['/home/pi/RPi_Cam_Web_Interface/cycle.sh'],shell=True)
        else:
            continue

问题是新窗口永远不会打开。 while循环使按钮/程序“被占用”。任何想法如何解决这个问题?

0 个答案:

没有答案