2014-10-05 68 views
-2
的Tkinter的

我写了下面的代码GUI:用Python创建

from Tkinter import * 

root = Tk() 
root.title("Power Method") 

labeltext1 = StringVar() 
labeltext2 = StringVar() 
labeltext1.set('Parameters') # Set start value 
labeltext2.set('Epsilon') 

label1 = Label (root, textvariable = labeltext1, height = 4) 
label1.pack() 
Entry(root, textvariable = labeltext1). pack() 
label2 = Label (root, textvariable = labeltext2) 
label2.pack() 
Entry(root, textvariable = labeltext2). pack() 

checkBox1 = Checkbutton(root, text = "NumPy") 
checkBox1.pack() 
checkBox2 = Checkbutton(root, text = "Not NumPy") 
checkBox2.pack() 

Button(root, text = "Exit").pack(side = RIGHT) 
Button(root, text = "Compute").pack(side = RIGHT) 

root.mainloop() 

此代码在运行时创建一个包含参数的窗口,小量的两个地方,你可以输入值和NumPy的和不NumPy作为复选框,最后是一个计算和退出按钮。

我试图格式化的代码,方式参数和Epsilon出现在窗口的左侧,Numpy和非Numpy面前他们在右侧,计算和退出留在他们当前的位置。

任何关于格式化的帮助将不胜感激。

+0

使用面向对象的编程方法的GUI的良好实践。我尝试了你的程序,它做了任何事情,没有tkinter盒子打开。你尝试过吗? – Beginner 2014-10-05 17:34:55

+0

哦,是的,的确,我已经多次尝试过,并且按照您的要求再次尝试,并在评论中打开窗口并添加了描述。 – Lucia 2014-10-05 17:55:04

+1

你做了什么来尝试解决这个问题?你有没有阅读关于'grid'和'pack'的文档?有没有关于你不明白的命令? – 2014-10-05 18:12:52

回答

1

好的你需要谷歌.grid().pack().place() tkinter了解更多关于什么是每个好。对于你的情况,你可以使用它们中的任何一个,但.grid()可能是最好的和最容易使用的。

要做到这一点,你必须改变.pack().grid()无处不在你拥有了它,那么你应该使用rowcolumn方案,把你的小工具,你希望他们。例如。

label1.grid(row = 1, column = 1) 
label2.grid(row = 1, column = 2) 

这将使label2上的label1右侧。 .grid()的工作方式是列的宽度与该列中的最大(最宽)小部件一样宽,同样适用于行。

如果您需要其他任何东西,只要问一下,但请按照Bryan的说法看看文档。

+0

谢谢!我已经开始阅读.pack()和.grid()上的文档,这非常有帮助。对于在彻底研究文件之前张贴问题感到抱歉。 – Lucia 2014-10-05 21:28:06

+0

@ user1759438多数民众赞成在这里,玩得开心! – W1ll1amvl 2014-10-05 23:29:33