qin_yin 发表于 2020-12-3 21:06:46

tk布局管理器问题

import tkinter as tk

class App:
    def __init__(self, master):
      self.master = master
      self.master.title('TK')
      tk.Label(self.master, text='作品:', font=('微软雅黑', 10)).pack(anchor='w', padx=10, pady=10)
      tk.Label(self.master, text='作者:', font=('微软雅黑', 10)).pack(anchor='w', padx=10, pady=10)
      works = tk.Entry(self.master)
      author = tk.Entry(self.master)
      works.pack(anchor='e')#我这里设置的是e方向为什么却显示窗口下方


root = tk.Tk()
app = App(root)
root.mainloop()

笨鸟学飞 发表于 2020-12-3 22:12:25

anchor表示的是锚点,具体的参数可以看下图:
https://img-blog.csdnimg.cn/20200314172820268.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L25pbHZ5YQ==,size_16,color_FFFFFF,t_70
锚点的概念你明白么?就是你设置的锚点为基准点,再通过布局管理器来布局,可以设置其他参数,都是以锚点为基准点来的
例如你代码中的‘作品’这个标签,padx=10, pady=10,就是以锚点‘W’为基准点来定位的
另外,你用pack布局管理器,你得明白它的工作原理,以及各个参数的概念,而不是这样随性的搞
我了解你的意思,你是想弄成这样:
标签: 单行文本框
标签: 单行文本框
但是你这样写代码是不行的啊?
pack布局管理器默认是先定义的组件先放,然后根据pack布局顺序依次排列,它会给我们的组件一个自认为合适的位置和大小
你可以利用side、fill、expand、anchor、padx、pady、ipadx、ipady等参数来设置。。。
当然,要实现你的需求,可能并不是那么容易的。。。

其实你不妨试试place布局管理器,比较好用
我写的一个GUI程序就是用易语言设计好组件
然后根据易语言的大小、左边、顶边等参数,用place布局管理器照抄就行了{:10_297:}

https://fishc.com.cn/thread-185403-1-1.html

你要这个代码我可以发上来大家一起交流一下
另外说实话我感觉你这样写GUI程序并不合适,代码的结构有点不优雅
页: [1]
查看完整版本: tk布局管理器问题