我已经导入了from tkinter.ttk import *
,所以我的下拉菜单可以正常工作,在这个模块中,下拉菜单不会复制某些选项,并使窗口成为其中文本的宽度。你知道吗
但是,对于moduleby复选框窗口不起作用,只显示一个空白窗口。 我该怎么做才能使两者都正常工作。你知道吗
下拉列表代码:
import random
from tkinter import *
from tkinter.ttk import *
with open('Comedy films', encoding='latin-1') as f:
lines = f.readlines()
value_fifteen_one=(random.choice(lines))
value_fifteen_two=(random.choice(lines))
value_fifteen_three=(random.choice(lines))
value_fifteen_four=(random.choice(lines))
value_fifteen_five=(random.choice(lines))
def menu_fifteen():
root15 = Tk()
root15.title("Film choices")
menu = Frame(root15)
menu.pack(pady = 5, padx = 50)
var = StringVar(root15)
options = [
value_fifteen_one,
value_fifteen_two,
value_fifteen_three,
value_fifteen_four,
value_fifteen_five,
]
option = OptionMenu(menu, var, options[0], *options, command=functionsfifteen)
var.set('Select')
option.grid(row = 1, column = 1)
root15.mainloop()
def functionsfifteen(value):
if value == value_fifteen_one:
print("Playing "+value_fifteen_one)
if value == value_fifteen_two:
print("Playing "+value_fifteen_two)
if value == value_fifteen_three:
print("Playing "+value_fifteen_three)
if value == value_fifteen_four:
print("Playing "+value_fifteen_four)
if value == value_fifteen_five:
print("Playing "+value_fifteen_five)
复选框代码:
def interests():
check = Tk()
check.title("Interests")
CheckVar1 = BooleanVar()
CheckVar2 = BooleanVar()
CheckVar3 = BooleanVar()
CheckVar4 = BooleanVar()
C1 = Checkbutton(check, text = "Horror", variable = CheckVar1, \
onvalue = 1, offvalue = 0, height=1, \
width = 20)
C2 = Checkbutton(check, text = "Action", variable = CheckVar2, \
onvalue = 1, offvalue = 0, height=1, \
width = 20)
C3 = Checkbutton(check, text = "Science fiction", variable = CheckVar3, \
onvalue = 1, offvalue = 0, height=1, \
width = 20)
C4 = Checkbutton(check, text = "Comedy", variable = CheckVar4, \
onvalue = 1, offvalue = 0, height=1, \
width = 20)
def submitHandle():
anyChecked = CheckVar1.get() | CheckVar2.get() | CheckVar3.get(
) | CheckVar4.get()
if anyChecked:
check.destroy()
else:
messagebox.showerror("Error", "Please check at least one.")
submit_btn = Button(check, text="Submit", command=lambda: submitHandle()) #Submit button on the check button menu window
C1.pack()
C2.pack()
C3.pack()
C4.pack()
submit_btn.pack()
check.mainloop()
if CheckVar1.get():
filename = ("Horror");
with open (filename, "a") as f:
f.write("")
if CheckVar2.get():
filename = ("Action");
with open (filename, "a") as f:
f.write("")
if CheckVar3.get():
filename = ("Science fiction");
with open (filename, "a") as f:
f.write("")
if CheckVar4.get():
filename = ("Comedy");
with open (filename, "a") as f:
f.write("")
这就是为什么不应该进行通配符导入,尤其是使用tkinter和ttk。它们都导出具有相同名称的对象。你知道吗
最好的解决方案是更改导入,然后更改代码以匹配。你知道吗
相关问题 更多 >
编程相关推荐