2015-05-25 3 views
0

В моей программе я пытаюсь разместить большое текстовое поле под некоторыми флажками, ярлыками и спинбоксами. Однако размер текстового поля приводит к тому, что столбец, в котором он находится, будет расширяться до огромной пропорции. Я хочу, чтобы текстовое поле, чтобы быть большим, а не столбец он это вСтолбец Tkinter растягивается при использовании геометрии .grid

Вот что выглядит результат:.

enter image description here

Вот картина того, что я хочу это выглядеть следующим образом:

enter image description here

Я думаю, что мне нужно сделать что-то с кадрами, но все, что я стараюсь, я не могу получить дисплей, чтобы быть правильным. Я также пробовал columnspan, но безрезультатно.

Вот мой код:

from tkinter import * 
root = Tk() 
root.wm_title("My Program") 
root.geometry("1000x500") 
root.config(bg='lightgray') 

def createStrandBox(display): 
    var = IntVar(root) 
    #var.trace('w', someFunction) 
    checkbox = Checkbutton(root, text=display, variable=var, bg='lightgray') 
    return checkbox; 

def createSpinbox(): 
    var = IntVar(root) 
    #var.trace('w', someFunction) 
    spinbox = Spinbox(root, width=5, values=('0-1', 2, 3, 4, 5, 6)) 
    return spinbox; 

def createToLabel(): 
    toLabel = Label(bg='lightgray', text='to') 
    return toLabel; 

def createSeparator(): 
    separator = Frame(width=2, bd=1, bg='darkgray', relief=SUNKEN) 
    return separator; 

listeningCheck = Checkbutton(bg='lightgray', text='Listening') #Listening 
listeningCheck.grid(row=0, column=0) 

lSPLLevels = Label(bg='lightgray', text='SPL Levels') #SPL Levels 
lSPLLevels.grid(row=1, column=1) 

lStrandCheck1 = createStrandBox('Strand 1') #Strand 1 
lStrandCheck1.grid(row=2, column=0) 
lStrandCheck2 = createStrandBox('Strand 2') #Strand 2 
lStrandCheck2.grid(row=3, column=0) 
lStrandCheck3 = createStrandBox('Strand 3') #Strand 3 
lStrandCheck3.grid(row=4, column=0) 

preview = Label(bg='lightgray', text='Benchmark Preview') #Benchmark Preview 
preview.grid(row=6, column=0, columnspan=2, sticky=W) 

lStrand1Spin1 = createSpinbox() #Spinbox 1 
lStrand1Spin1.grid(row=2, column=1) 
lStrand1Spin2 = createSpinbox() #Spinbox 2 
lStrand1Spin2.grid(row=3, column=1) 
lStrand1Spin3 = createSpinbox() #Spinbox 3 
lStrand1Spin3.grid(row=4, column=1) 

to1 = createToLabel() 
to1.grid(row=2, column=2, padx=(0,8)) #to 1 
to2 = createToLabel() 
to2.grid(row=3, column=2, padx=(0,8)) #to 2 
to3 = createToLabel() 
to3.grid(row=4, column=2, padx=(0,8)) #to 3 

lStrand1Spin4 = createSpinbox() #Spinbox 4 
lStrand1Spin4.grid(row=2, column=3) 
lStrand1Spin5 = createSpinbox() #Spinbox 5 
lStrand1Spin5.grid(row=3, column=3) 
lStrand1Spin6 = createSpinbox() #Spinbox 6 
lStrand1Spin6.grid(row=4, column=3) 

benchmarkPreview = Text(root, height=8, width=50) 
benchmarkPreview.grid(row=7, column=0) 

mainloop() 

ответ

2

columnspan Используйте, чтобы сделать пролетный виджет нескольких столбцов.

benchmarkPreview.grid(row=7, column=0, columnspan=4) 
+0

Oh! Ха-ха! Вот так! Я не помещал достаточно большое значение в столбцы. –

Смежные вопросы