在编写此代码时,我目前对tkinter不满意。因此请忽略任何愚蠢的行为。
import tkinter as tk
from tkinter import ttk
from tkinter import Menu
win=tk.Tk()
win.title('Tabs GUI')
tab_control=ttk.Notebook(win)
tab1=ttk.Frame(tab_control)
tab_control.add(tab1,text='Tab 1')
tab_control.grid()
tab2=ttk.Frame(win) #1
tab_control.add(tab2,text='Tab 2')
menuBar = Menu(tab1) #2
win.config(menu=menuBar)
# Add menu items
fileMenu = Menu(menuBar, tearoff=0)
fileMenu.add_command(label="New")
fileMenu.add_separator()
fileMenu.add_command(label="Exit")
menuBar.add_cascade(label="File", menu=fileMenu)
# Add another Menu to the Menu Bar and an item
helpMenu = Menu(menuBar, tearoff=0)
helpMenu.add_command(label="About")
menuBar.add_cascade(label="Help", menu=helpMenu)
ttk.Label(tab2, text="Choose a number:").grid(column=0, row=0)
numberChosen = ttk.Combobox(tab2, width=8)
numberChosen['values'] = (1, 2, 4, 42, 100)
numberChosen.grid(column=0, row=1)
numberChosen.current(0)
chVarDis = tk.IntVar()
check1 = tk.Checkbutton(tab2, text="Disabled", variable=chVarDis, state='disabled')
check1.select()
check1.grid(column=0, row=2, sticky=tk.W)
chVarUn = tk.IntVar()
check2 = tk.Checkbutton(tab2, text="UnChecked", variable=chVarUn)
check2.deselect()
check2.grid(column=1, row=2, sticky=tk.W )
win.mainloop()
现在的第一个问题是在#1上我给了'tab2'主窗口,即'win',然后将其添加到笔记本中,但它的行为就像我给它notebook()作为主窗口一样,因为'tab1'和' tab2'的功能相同。第二个问题是为什么当我打开“ tab2”时“ combobox”会自动聚焦。对于Menu()
#2也是如此,我给它指定了父项tab1
,但它显示在顶层窗口win