下面是代码。这里Page2是UI的第二个选项卡(检查UI图像)在第二个选项卡中,我创建了框架并添加了标签和条目框。
import tkinter as tk
from dicttoxml import dicttoxml
import xlrd
import GetValueFromExcel
from AppalyingXSLT import GenerateConfig
#import CreateXMLfromDict
from GetValueFromExcel import ExcelValue
from array import array
from tkinter import *
from tkinter import ttk, Button
from tkinter import *
root = Tk()
CheckBoxSelection=[]
NameOfVariable=[]
KeyName=[]
SelectedCheckbox=[]
dict={}
frame_main = tk.Frame(root)
frame_main.grid(sticky='news')
canvas=tk.Canvas()
class UICreation():
def __init__(self):
print ("I m in __init__")
self.nb=ttk.Notebook(frame_main)
self.page1=ttk.Frame(self.nb)
self.page2=ttk.Frame(self.nb)
def tabcreation(self):
print ("I M in Tab Creation")
self.nb.add(self.page1,text="Select")
canvas = tk.Canvas(self.page1)
canvas.grid(row=0, column=0, sticky="news")
vsb = tk.Scrollbar(self.page1, orient="vertical", command=canvas.yview)
vsb.grid(row=0, column=1, sticky='ns')
canvas.configure(yscrollcommand=vsb.set)
canvas.config(scrollregion=canvas.bbox("all"))
f = tk.Frame(canvas)
canvas.create_window((0, 0), window=f, anchor="n")
self.nb.grid(sticky=NW)
print ("I M in checkBox")
ListNumber=len(List_key)
print (ListNumber)
for value in range(0,ListNumber, 1):
NameOfVariable= "checkBox" + str(value)
CheckBoxSelection.append("var"+str(value))
CheckBoxSelection[value]=IntVar()
NameOfVariable = Checkbutton(f, text=str(List_key[value]),variable=CheckBoxSelection[value])
Checkbutton()
NameOfVariable.grid(sticky=NW)
NameOfVariable.cget("text")
KeyName.append(NameOfVariable.cget("text"))
canvas.update()
canvas.config(scrollregion=canvas.bbox("all"))
def addNew(self):
self.nb.add(self.page2,text="Add")
self.nb.grid_columnconfigure(0,weight=1)
page2frame=Frame(self.page2)
page2frame.grid(row=0, column=0, sticky='WE', padx=5, pady=5, columnspan=3)
page2frame.grid_columnconfigure(1, weight=1)
lblentry = Label(page2frame, text="Entry Box:")
lblentry.grid(row=0, column=0, sticky='W')
entrybx = Entry(page2frame)
entrybx.grid(row=0, column=0, sticky=E+W, columnspan=10)
#codeName=tk.Label(page2frame,text="Name").grid(row=1,rowspan=2,pady=(10,10),sticky="NW")
if __name__ == '__main__':
ui = UICreation()
ui.tabcreation()
ui.addNew()
在上面的图片中,从上面的代码我只得到一些列的输入框(如“红色”部分所述),即使我试图扩展。
请让我知道,如何扩展它,就像我需要的那样,我已经在“绿箱”中显示
更新:
从您更新的问题我可以看到您需要在第2页的第1列中加权。
self.page2.columnconfigure(0, weight=1)
更换:
class UICreation():
def __init__(self):
print ("I m in __init__")
self.nb=ttk.Notebook(frame_main)
self.page1=ttk.Frame(self.nb)
self.page2=ttk.Frame(self.nb)
有了这个:
class UICreation():
def __init__(self):
print ("I m in __init__")
self.nb=ttk.Notebook(frame_main)
self.page1=ttk.Frame(self.nb)
self.page2=ttk.Frame(self.nb)
self.page2.columnconfigure(0, weight=1)
我已更新您的代码以反映更好地遵循PEP8的更清晰的示例。
如果您有任何疑问,请与我们联系:
import tkinter as tk
import tkinter.ttk as ttk
class UICreation():
def __init__(self, master):
self.nb=ttk.Notebook(master)
self.page1=ttk.Frame(self.nb)
self.page2=ttk.Frame(self.nb)
self.page2.columnconfigure(0, weight=1)
self.check_box_election=[]
self.name_of_variable=[]
self.key_name=[]
self.selected_checkbox=[]
self.dict={}
self.frame_main = tk.Frame(root)
self.frame_main.grid(sticky='news')
self.canvas=tk.Canvas()
self.list_key = ["1", "2"]
def tabcreation(self):
self.nb.add(self.page1,text="Select")
canvas = tk.Canvas(self.page1)
canvas.grid(row=0, column=0, sticky="news")
vsb = tk.Scrollbar(self.page1, orient="vertical", command=canvas.yview)
vsb.grid(row=0, column=1, sticky='ns')
canvas.configure(yscrollcommand=vsb.set)
canvas.config(scrollregion=canvas.bbox("all"))
f = tk.Frame(canvas)
canvas.create_window((0, 0), window=f, anchor="n")
self.nb.grid(sticky="nw")
list_number = len(self.list_key)
for value in range(0,list_number, 1):
name_of_variable= "checkBox" + str(value)
self.check_box_election.append("var"+str(value))
self.check_box_election[value] = tk.IntVar()
name_of_variable = tk.Checkbutton(f, text=str(self.list_key[value]),variable=self.check_box_election[value])
name_of_variable.grid(sticky="nw")
name_of_variable.cget("text")
self.key_name.append(name_of_variable.cget("text"))
canvas.update()
canvas.config(scrollregion=canvas.bbox("all"))
def add_new(self):
self.nb.add(self.page2,text="Add")
page2frame = tk.Frame(self.page2)
page2frame.grid(row=0, column=0, sticky='ew', padx=5, pady=5, columnspan=3)
page2frame.grid_columnconfigure(1, weight=1)
lblentry = tk.Label(page2frame, text="Entry Box:")
lblentry.grid(row=0, column=0, sticky='w')
entrybx = tk.Entry(page2frame)
entrybx.grid(row=0, column=0, sticky="ew", columnspan=10)
if __name__ == '__main__':
root = tk.Tk()
ui = UICreation(root)
ui.tabcreation()
ui.add_new()
root.mainloop()