我正在搜索与此代码问题相关的问题,但我找不到任何问题。 我以为如果我在这里发布我的麻烦,也许有人可以帮助我。
这个类的问题是StingVar self.text_incl没有显示在屏幕上。 我已经介绍了一个用于测试对象是否正确创建的打印件,是的,它确实有效。然而,当我从incl对象中调用StringVar时,它并没有显示在屏幕上
我将向您展示tkinter窗口的屏幕截图。
class Data_window:
def __init__(self, index):
import os
import sys
import get_elements
elements = get_elements.Get_elements(sys.argv[1], index)
import Tkinter as tk
self.data_root = tk.Tk()
self.data_root.geometry("300x200")
self.data_root.title("Satellite data")
self.widgets()
self.data_root.mainloop()
def widgets(self):
satellite_data = tk.LabelFrame(self.data_root, text="Satellite")
satellite_data.grid(column = 0, row = 0, columnspan = 1, rowspan = 1)
label_name = tk.Label(satellite_data, text="Name")
label_name.grid(column = 0, row = 0, columnspan = 1, rowspan = 1)
file_name = tk.Label(satellite_data, text="File")
file_name.grid(column = 0, row = 1, columnspan = 1, rowspan = 1)
orbital_data = tk.LabelFrame(self.data_root, text="Orbital elements")
orbital_data.grid(column = 0, row = 1, columnspan = 1, rowspan = 1)
label_incl = tk.Label(orbital_data, text="Inclination")
label_incl.grid(column = 0, row = 0, columnspan = 1, rowspan = 1)
self.text_incl = tk.StringVar()
self.text_incl.set("test")
print self.text_incl.get()
incl = tk.Label(orbital_data, textvariable = self.text_incl)
incl.grid(column = 1, row = 0, columnspan = 1, rowspan = 1)
答案 0 :(得分:0)
您的标签在我的测试中显示在“倾斜”后面。我改变了这一行
incl.grid(column = 0, row = 1, columnspan = 1, rowspan = 1)
使其直接显示在“倾斜”下方。总而言之,你的标签就在那里,你根本看不到它。
编辑:这是我电脑的截图:
答案 1 :(得分:0)
有几件事可能会导致问题,也许这不是一件事情,而是一系列事情。我不能复制这个问题,但我的猜测是你的选项组合不允许小部件增长到正确的大小,所以框架的部分内容被切断了。
例如,您不为小部件添加“粘性”选项,因此它们不会增长以填充框架内分配给它们的空间。您也不在labelframes上使用粘性选项,因此它们也不会扩展以填充其父级中的区域。一切都被卡住了尽可能小。
此外,您不会在主窗口中为行或列指定任何重量,因此它们也不会增长或缩小。任何额外的空间都在标签框架之外使用。
作为一般的经验法则,当使用网格时,你几乎总是想要使用粘性选项,并且你应该总是给至少一列和至少一行非零权重。