Tkinter分组按钮和标签

时间:2017-06-07 07:43:17

标签: python tkinter

我想创建一个GUI,您可以在其中指定一堆文件供以后处理(命令行解析十几个文件只是一个PITA)。

所以现在我想组合一个标签和一个按钮以提高可读性。

我尝试过这样的事情:

DC1_path_label = Label(window_fine_DC, text = "Please specify the path of DC 1:", relief=RAISED)
DC1_B = Tkinter.Button(window_fine_DC, textvariable = DC_path1, command = setDC1)
DC2_path_label = Label(window_fine_DC, text="Please specify the path of DC 2:", relief=RAISED)
DC2_B = Tkinter.Button(window_fine_DC, textvariable=DC_path2, command=setDC2)

DC1_path_label.grid(row = 0, column = 1)
DC1_B.grid(row = 1, column = 1)
DC2_path_label.grid(row = 3, column = 1)
DC2_B.grid(row = 4, column = 1)

但似乎没有任何效果,填充也不会那么好,因为那些方向都是平等的。

虽然我们在这里,是否有一种更优雅的方式来改变一个窗口,而不是关闭旧窗口,并打开一个新的?

很抱歉,如果这是一个愚蠢的问题,我对python / gui的东西很新......

1 个答案:

答案 0 :(得分:0)

我相信您需要为tuple和/或padx提供pady

您可以通过这种方式为每一方指定填充。

我在此处使用pady作为示例,说明如何仅在一侧提供填充。注意顶部标签的顶部是如何填充的,但是底部的按钮没有填充在底部。

from tkinter import *

root = Tk()

DC1_path_label = Label(root, text = "Please specify the path of DC 1:", relief=RAISED)
DC1_B = Button(root)
DC2_path_label = Label(root, text="Please specify the path of DC 2:", relief=RAISED)
DC2_B = Button(root)

DC1_path_label.grid(row = 0, column = 1, pady = (10, 0))
DC1_B.grid(row = 1, column = 1, pady = (10, 0))
DC2_path_label.grid(row = 3, column = 1, pady = (10, 0))
DC2_B.grid(row = 4, column = 1, pady = (10, 0))

root.mainloop()

结果:

enter image description here

更新

就改变你的窗口而言,有几个选项可以操作那些内容并替换内容。

您可以destroy()小部件并制作新的小部件。虽然这并不会让我更优雅。它会让你保持窗户打开。

您可以使用一些配置选项来更改当前窗口小部件的文本,或通过一系列配置重新排列网格。虽然这不会让我感到优雅。