首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Tkinter mainloop()中的模式选择

Tkinter mainloop()中的模式选择
EN

Stack Overflow用户
提问于 2020-04-18 21:22:06
回答 1查看 32关注 0票数 0

我遇到了以下问题:我希望能够在三个if语句中的一个语句运行时选择模式,并且当is完成时转到所选的模式。例如,如果'mode‘正在运行,并且我在's’if结束'p‘if启动后选择'p’。我还希望这个进程无法停止运行谢谢:D

代码语言:javascript
复制
import tkinter as tk
from tkinter import *

answer = ''

root = Tk()
root.geometry('250x150')
root.title('Mode Selection')

v = tk.IntVar()
v.set(0)  # initializing the choice, i.e. Python
b1 = Button()

modes = [
    ('s', 'to start"'),
    ('p', 'to pause'),
    ('a', 'to abort'),
]

tk.Label(root,
         text="""Choose a mode:""",
         justify=tk.CENTER,
         padx=20).pack()

for val, language in enumerate(modes):
    tk.Radiobutton(root,
                   text=language,
                   padx=20,
                   variable=v,
                   value=val,
                   justify=tk.CENTER).pack()

answer = modes[v.get()][0]

if answer == 's':
    print('s')
    # do something...
elif answer == 'p':
    print('p')
    # do something...
elif answer == 'a':
    print('a')
    # do something...

root.mainloop()
EN

回答 1

Stack Overflow用户

发布于 2020-04-19 03:19:19

在这里,使用command,我们可以关联由单选按钮的选择触发的事件或函数

代码语言:javascript
复制
modes = [
    ('s', 'to start"'),
    ('p', 'to pause'),
    ('a', 'to abort'),
]


def show_mode(z):
    # Do something...
    print(z)


tk.Radiobutton(root,
               text=modes[0],
               padx=20,
               variable=v,
               value=0,
               justify=tk.CENTER,
               command = lambda : show_mode('s')).pack()

tk.Radiobutton(root,
               text=modes[1],
               padx=20,
               variable=v,
               value=1,
               justify=tk.CENTER,
               command = lambda : show_mode('p')).pack()

tk.Radiobutton(root,
               text=modes[2],
               padx=20,
               variable=v,
               value=2,
               justify=tk.CENTER,
               command = lambda : show_mode('a')).pack()

希望这能有所帮助:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61289828

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档