鱼cpython学习者 发表于 2020-10-30 21:44:08

tk的pack函数

做gui,发现tk的pack函数里的size参数没用了。是我的版本问题还是什么?
import tkinter as tk

class App():
        def __init__(self, root):
                frame = tk.Frame(root)
                frame.pack()

                self.hi_there = tk.Button(frame, text = 'hello, thinter', fg = 'blue', bg = 'red', command = self.sayhi)
                self.hi_there.pack(side = 'left')

        def sayhi(self):
                print('hi!tkinter!')

root = tk.Tk()
root.geometry('150x150')
app = App(root)

root.mainloop()
运行之后按钮还是在中间,求大佬解答

Twilight6 发表于 2020-10-30 22:21:49


你部件Button 是在你的框架上的,但是你框架不距左,所以看上去没有距左

你在对 Button 的 pack 时候的距左是对于 Frame 框架而言的

把side = 'left' 弄到 Frame 的 pack 上

import tkinter as tk

class App():
      def __init__(self, root):
                frame = tk.Frame(root)
                frame.pack(side = 'left')

                self.hi_there = tk.Button(frame, text = 'hello, thinter', fg = 'blue', bg = 'red', command = self.sayhi)
                self.hi_there.pack()

      def sayhi(self):
                print('hi!tkinter!')

root = tk.Tk()
root.geometry('150x150')
app = App(root)

root.mainloop()

鱼cpython学习者 发表于 2020-10-31 10:46:38

Twilight6 发表于 2020-10-30 22:21
你部件Button 是在你的框架上的,但是你框架不距左,所以看上去没有距左

你在对 Button 的 pack 时候 ...

那如果这样的话,加上其他的组件会不会都是距左?

Twilight6 发表于 2020-10-31 20:04:44

鱼cpython学习者 发表于 2020-10-31 10:46
那如果这样的话,加上其他的组件会不会都是距左?

是整个框架居左,框架里面的组件都是在框架上的

所以是整体来说都是在左边,但是框架内也有上下左右之分

鱼cpython学习者 发表于 2020-11-2 22:20:39

Twilight6 发表于 2020-10-31 20:04
是整个框架居左,框架里面的组件都是在框架上的

所以是整体来说都是在左边,但是框架内也有上下左右之 ...

框架是随着组件的多少而扩大缩小的吗?
如果是这样的话,那在框架内设置位置有什么意义吗?
如果使用框架,是不是就不能做出一个按钮在下,一个按钮在上的效果了?
页: [1]
查看完整版本: tk的pack函数