鱼C论坛

 找回密码
 立即注册
查看: 2070|回复: 6

[已解决]大佬们,救命 关于tkinter .grid()

[复制链接]
发表于 2021-5-30 22:02:50 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
grid()与pack()不能在一起使用,我怎么用grid()做成左边那种全部填充的yan
捕获.PNG
最佳答案
2021-5-30 22:48:08
本帖最后由 阿奇_o 于 2021-5-30 22:50 编辑

可以肯定可以,只是没必要,用grid,在这里反而不方便。你直接用pack放置PW后,再用grid放置里面的部件就行了。

一开始就用grid,那你可以参考下面:
from tkinter import *
root = Tk()
root.geometry('600x400')

pw = PanedWindow(showhandle=True, sashrelief=SUNKEN, )
pw.grid(row=0, column=0, sticky="nsew")
# pw.pack(fill=BOTH, expand=True)

left = Label(pw, text='left pane')
pw.add(left)

m2 = PanedWindow(orient=VERTICAL, showhandle=True, sashrelief=SUNKEN)
pw.add(m2)

top = Label(m2, text='top pane')
m2.add(top)

m2.add(Label(m2, text='bottom pane'))

# Button(m2, text="Click me!").pack(padx=100, pady=100,)
Button(m2, text="Click me!").grid(padx=100, pady=100,)

root.rowconfigure(0, weight=1, minsize=400)  # 这两是 配合 grid(.., sticky="nsew") 使用的,可能不好理解,自己查资料看看吧
root.columnconfigure(0, weight=1, minsize=600)

root.mainloop()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-5-30 22:45:46 | 显示全部楼层


grid 参数 sticky 设置为 "N+S"

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-5-30 22:48:08 | 显示全部楼层    本楼为最佳答案   
本帖最后由 阿奇_o 于 2021-5-30 22:50 编辑

可以肯定可以,只是没必要,用grid,在这里反而不方便。你直接用pack放置PW后,再用grid放置里面的部件就行了。

一开始就用grid,那你可以参考下面:
from tkinter import *
root = Tk()
root.geometry('600x400')

pw = PanedWindow(showhandle=True, sashrelief=SUNKEN, )
pw.grid(row=0, column=0, sticky="nsew")
# pw.pack(fill=BOTH, expand=True)

left = Label(pw, text='left pane')
pw.add(left)

m2 = PanedWindow(orient=VERTICAL, showhandle=True, sashrelief=SUNKEN)
pw.add(m2)

top = Label(m2, text='top pane')
m2.add(top)

m2.add(Label(m2, text='bottom pane'))

# Button(m2, text="Click me!").pack(padx=100, pady=100,)
Button(m2, text="Click me!").grid(padx=100, pady=100,)

root.rowconfigure(0, weight=1, minsize=400)  # 这两是 配合 grid(.., sticky="nsew") 使用的,可能不好理解,自己查资料看看吧
root.columnconfigure(0, weight=1, minsize=600)

root.mainloop()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-5-31 06:58:54 | 显示全部楼层
Twilight6 发表于 2021-5-30 22:45
grid 参数 sticky 设置为 "N+S"


我试过了,不好使  是不是我用法有问题 捕获.PNG
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-5-31 07:05:21 | 显示全部楼层
阿奇_o 发表于 2021-5-30 22:48
可以肯定可以,只是没必要,用grid,在这里反而不方便。你直接用pack放置PW后,再用grid放置里面的部件就行 ...

如果用了pack放置后还能用grid放置吗     我用了之后直接报错_tkinter.TclError: cannot use geometry manager grid inside . which already has slaves managed by pack          其他主要是其他组件用grid放置比较方便
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-5-31 09:41:46 | 显示全部楼层
niruipeng 发表于 2021-5-31 06:58
我试过了,不好使  是不是我用法有问题



好像确实不行

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-5-31 14:02:09 | 显示全部楼层
niruipeng 发表于 2021-5-31 07:05
如果用了pack放置后还能用grid放置吗     我用了之后直接报错_tkinter.TclError: cannot use geometry ma ...

同一级别不能同时用pack又用grid;但不同级别(不同的master)是可以用的。

比如,注释掉不用我代码里使用的第一个grid,而换成pack;
其他的不变(后面我在m2内部用的是grid),结果一样,不会报错,不会有冲突。

根据我的代码,你可以自己做几个不同的尝试,试过了你才知道。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-15 17:11

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表