【发布时间】:2019-10-18 08:53:13
【问题描述】:
我是 python 新手,我对包管理器有疑问。我的目标是创建以下布局:
BUTTON1 BUTTON2 LABEL1
<--------------CANVAS EXPANDED -------------->
<--------------CANVAS EXPANDED -------------->
<--------------CANVAS EXPANDED -------------->
<--------------CANVAS EXPANDED -------------->
<--------------CANVAS EXPANDED -------------->
我尝试了以下方法:
BUTTON1.pack(side=tk.TOP, anchor=tk.W)
BUTTON2.pack(side=tk.TOP, anchor=tk.W,padx=5)
LABEL1.pack(side=tk.TOP, anchor=tk.W,padx=5)
CANVAS.pack(side=tk.BOTTOM,fill=tk.BOTH, expand=1)
给我以下:
BUTTON1
BUTTON2
LABEL1
<--------------CANVAS EXPANDED -------------->
<--------------CANVAS EXPANDED -------------->
<--------------CANVAS EXPANDED -------------->
<--------------CANVAS EXPANDED -------------->
<--------------CANVAS EXPANDED -------------->
这个:
BUTTON1.pack(side=tk.LEFT, anchor=tk.N)
BUTTON2.pack(side=tk.LEFT, anchor=tk.N,padx=5)
LABEL1.pack(side=tk.LEFT, anchor=tk.N,padx=5)
CANVAS.pack(side=tk.BOTTOM,fill=tk.BOTH, expand=1)
给我这个:
BUTTON1 BUTTON2 LABEL1 <--------------CANVAS EXPANDED -------------->
<--------------CANVAS EXPANDED -------------->
<--------------CANVAS EXPANDED -------------->
<--------------CANVAS EXPANDED -------------->
<--------------CANVAS EXPANDED -------------->
这很接近,但仍然不是我想要的:
BUTTON1.pack(side=tk.LEFT, anchor=tk.N)
BUTTON2.pack(side=tk.LEFT, anchor=tk.N,padx=5)
LABEL1.pack(side=tk.TOP, anchor=tk.W,padx=5)
CANVAS.pack(side=tk.BOTTOM,fill=tk.BOTH, expand=1)
给我这个:
BUTTON1 BUTTON2 LABEL1
<--------------CANVAS EXPANDED -------------->
<--------------CANVAS EXPANDED -------------->
<--------------CANVAS EXPANDED -------------->
<--------------CANVAS EXPANDED -------------->
<--------------CANVAS EXPANDED -------------->
怎么做?
【问题讨论】:
-
虽然我通常是使用 pack 的拥护者,但这似乎是您想要构建一个类似网格的 GUI 的情况。您是否考虑过使用网格功能?有不合适的原因吗?
-
您好伊桑,感谢您的回答。我用网格尝试过,但画布没有按照我希望的方式展开。我还想从左上到右排序按钮,无论顶部的按钮放在哪里,图片都应该适合整个区域。
-
Grid 确实具有以您描述的方式扩展小部件的能力。 stackoverflow.com/questions/45847313/… 和 stackoverflow.com/questions/50158866/… 可能会有所帮助。
-
谢谢,问题已解决。我在这里写下我的解决方案。