Python 如何使用tkinter ttk添加多项选择?

Python 如何使用tkinter ttk添加多项选择?,python,tkinter,Python,Tkinter,这将只添加1个选项,如何更改脚本以使其添加多个选项? 最好只是代码和解释,但任何东西都有帮助。谢谢 编辑:还有一个提交框也不错我改进了你的代码: import os import tkinter as tk from tkinter import * from tkinter.ttk import * root = Tk() variable = StringVar(root) variable = StringVar(root) variable.set('GB') w = Combobox(

这将只添加1个选项,如何更改脚本以使其添加多个选项? 最好只是代码和解释,但任何东西都有帮助。谢谢


编辑:还有一个提交框也不错

我改进了你的代码:

import os
import tkinter as tk
from tkinter import *
from tkinter.ttk import *
root = Tk()
variable = StringVar(root)
variable = StringVar(root)
variable.set('GB')
w = Combobox(root, values = choices)
w.pack(); root.mainloop()
choices = ['']
msedgelocation= 'my msedge location'
chromelocation= 'my chrome location'
if os.path.exists(msedgelocation):
# add msedge to choices
else:
if os.path.exists(chromelocation):
# add chrome to choices
从tkinter导入Tk,StringVar
从tkinter.ttk导入组合框
导入操作系统
def get_选项(事件):
os.startfile(选项[event.widget.get()])
root=Tk()
变量=StringVar()
变量集('GB')
选项={'GB':'GB.exe','AUS':'AUS.exe','USA':'USA.exe','Chrome':'Chrome.exe'}
c_box=Combobox(根,值=list(choices.keys()),textvariable=variable,state='readonly')
c_box.pack()
c_box.bind(“”,获取选项)
root.mainloop()
首先,我得到了所有关于组合框的信息,在那里它被放在简单的文字里

另一件事是,您应该使用有意义的变量名命名变量,而不仅仅是一个字母名,特别是如果您计划使用该变量

正如我在评论中提到的,建议您只导入您需要的内容,正如您在我提供的代码中看到的那样


最后,正如@acw1668在注释中已经提到的那样,
.mainloop()
之后的代码只会在窗口关闭时执行。

您的代码将无法执行。此外,在根窗口被销毁之前,tkinter mainloop之后的代码将不会执行。要点是:
从tkinter import*将tkinter作为tk导入*
?也只导入您需要的内容不要使用
*
还有为什么要将多个语句放在一行中?非常感谢您的代码,但是是否有方法更改代码,使其仅在os.path.exists存在时添加一个选项@Matiiss@MeWhenBonk是的,当然有一个选项,我对代码进行了一些编辑以添加该选项,但这是最简单的变体,因此它对于检查成千上万条路径来说不是很好,因为那时您将不得不编写那么多
if语句
,但对于简单的内容,这是可行的,它还会在ComboBox中列出整个路径。非常感谢@Matiiss,但我不知道如何打印“选定的Chrome”,而不是os.startfile('Chrome.exe')。如果选择了Chrome,你能帮我吗?@MeWhenBonk也这么做了,在这种情况下有点不同的方法,因为你必须使用字典(虽然可以使用两个列表或类似的东西,但只使用字典会更容易)。此外,我删除了if语句,但我希望您已经得到了它。
from tkinter import Tk, StringVar
from tkinter.ttk import Combobox
import os


def get_choice(event):
    os.startfile(choices[event.widget.get()])


root = Tk()

variable = StringVar()
variable.set('GB')

choices = {'GB': 'gb.exe', 'AUS': 'aus.exe', 'USA': 'usa.exe', 'Chrome': 'chrome.exe'}


c_box = Combobox(root, values=list(choices.keys()), textvariable=variable, state='readonly')
c_box.pack()

c_box.bind('<<ComboboxSelected>>', get_choice)

root.mainloop()