我是tkinter的新手。我尝试在Text
左侧创建一个0,0
小部件,但它显示在中间,就像默认pack()
一样。
这是我的代码:
from Tkinter import *
# the ui of the main window
class Ui(object):
# the init of the client object
def __init__(self):
self.root = Tk()
self.mid_height = self.root.winfo_screenheight() / 2
self.mid_width = self.root.winfo_screenwidth() / 2
self.root.title("Journey-opening")
self.root.geometry("600x600+{}+{}".format(self.mid_width - 300, self.mid_height - 300))
self.root.resizable(width=0, height=0)
self.cyan = "#0990CB"
self.root["background"] = self.cyan
self.frame = Frame(self.root)
self.frame.pack()
self.chat_box = Text(self.frame, height=30, width=50)
self.chat_box.pack(side=LEFT)
def open(self):
self.root.mainloop()
wins = Ui()
wins.open()
我也尝试使用grid
方法,但它没有改变任何东西,还创建了另一个小部件,因为它可能至少需要2个小部件。
我想我的框架有些东西,但我遵循教程,一切都很好。
答案 0 :(得分:3)
"在旁边打包文本小部件"
不正确行self.chat_box.pack(side=LEFT)
将Text
小部件打包到一边。它只是在 {/ 1>}内完成 文本小部件)默认情况下。所以在某种程度上,self.frame
窗口小部件被打包,不仅仅是向左,而是所有方面。
为了让左上角有Text
,你应该让frame占用比所需更多的空间,在这种情况下,它可以简单地占用x-中的所有空间其父级(self.chat_box
)内的轴。为此,请替换:
self.root
使用:
self.frame.pack()