【发布时间】:2016-02-16 01:58:56
【问题描述】:
我是一名生物工程专业的学生,在我的大学从事 Capstone 项目,该项目的一部分需要一些编码。我们小组的成员都不知道如何编码,所以我自己学习了 python 并尝试使用 Tkinter 创建一个 GUI。鉴于编码的原因,我对编程非常陌生,因此,作为一个预警,我的代码可能写得相当糟糕。
所以说重点;我在让我的 Checkbuttons 正确对齐时遇到问题。基本上发生的情况是,第一个 Checkbutton 组在第 0 列的第 3-6 行(我认为,不是 100% 确定,但它们在我想要的位置)对齐。然后我在第 1 列中创建了第二个 Checkbutton 组,我想要Checkbuttons 从第 3 行开始 - 无论如何,但它们从第 7 行开始并跨越直到任何时候。我创建的每个后续 Checkbutton 组都会发生这种情况。
代码如下:
import sys
from Tkinter import *
import tkMessageBox
import tkFileDialog
from PIL import ImageTk, Image
root = Tk()
root.geometry('900x700')
root.title('IBID 2.0')
ilabel1 = Label(root, text=' Measurement',font=("Bold",18)).grid(row=1,column=0)
datatype = {'Joint Angle' : 0,
'Joint Acceleration' : 0,
'Ground Reaction Force' : 0,
'Muscle Activation' : 0
}
for measure in datatype:
datatype[measure] = IntVar()
dt_cb = Checkbutton(root, text=measure, variable=datatype[measure])
dt_cb.grid(column=0, sticky='W', padx=20)
ilabel2 = Label(root, text='Muscle Group(s)',font= ("Bold",18),padx=30).grid(row=1,column=1)
emg_groups = {'Quadriceps' : 0,
'Hamstrings' : 0,
'Calves' : 0
}
for measure in emg_groups:
emg_groups[measure] = IntVar()
emg_cb = Checkbutton(root, text=measure, variable=emg_groups[measure])
emg_cb.grid(column=1, sticky='W', padx=20)
ilabel3 = Label(root, text='Ground Reaction Force',font=("Bold",18),padx=30).grid(row=1,column=2)
grf_groups = {'Ground Reaction Force' : 0,
'Gait' : 0,
}
for measure in grf_groups:
grf_groups[measure] = IntVar()
grf_cb = Checkbutton(root, text=measure, variable=grf_groups[measure])
grf_cb.grid(column=2, sticky='W', padx=40)
我确实找到了一种解决方法,我没有使用列表来创建我的检查按钮,而是继续单独制作每个按钮。我想我也许可以使用列表稍微清理一下代码,尽管我想我找不到将它们全部放在同一行的方法。如果我在 .grid() 中指定一行,则选项会相互重叠。
【问题讨论】:
标签: python-2.7 tkinter row