作者alubasteve (poorguy)
看板Python
标题[问题] 请问关於tkinter的问题
时间Sat Jun 8 18:36:27 2019
我目前正在学习使用tkinter
来练习制作选单排版
有2个问题想请教
1.我一直想要够更好的调整排版
可是一直做不好
因为当我这样做时
https://pastebin.com/fg1fVW4W
结果变成
https://imgur.com/a/6HOlQBH
不知为何push2还有push3
就是没办法整齐地挤在push1下面
然後左右两侧切齐
请问怎麽做才好
2.我正在照书上的写程式
https://pastebin.com/mqE05F0M
书上没有讲
请问第4行radio_value.set(1)
最後的1
指的是程式要从第几个选项呈现吗
https://imgur.com/a/7tltSAS
也就是一开始黑点要从哪个选项出现
1代表从第1个选项B套餐出现
因为前面还有第0个选项A套餐
书上没讲清楚所以我只好用猜的
我也有试着去调整
但是我唯一让程式一跳出来就没黑点的方法是数字超过3
也就是让黑点跳出预设选项范围
请问我还能怎麽做
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 1.161.237.211 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1559990191.A.F30.html
1F:推 bugbug777: Youtube搜tkinter 那个Proladon我看过应该可以帮到你 06/08 20:37
3F:推 fp563563: row=列 column=行 but2和but3都是row=1 会放在同一列 06/08 22:12
4F:→ fp563563: 改 button3.grid(row=2,column=0) 06/08 22:13
5F:→ fp563563: button4.grid(row=3,column=0) 06/08 22:14
6F:→ alubasteve: 给fp563563,我就是希望按钮能够呈现第一层button1 06/08 23:14
7F:→ alubasteve: 第2层button2+button3,第3层button4 06/08 23:15
8F:→ alubasteve: 因为若能够呈现这样的编排,以後能够有更好的视觉效果 06/08 23:20
9F:→ alubasteve: 不然以後选单会越拉越长 06/08 23:20
10F:→ alubasteve: 不知道您能给我什建议呢 06/08 23:21
11F:推 fp563563: 看错意思..不然试看看 加跨行参数 columnspan 06/09 00:59
12F:→ fp563563: button1 button4 加上跨两行 columnspan=2 06/09 01:00
15F:→ alubasteve: 但是我把button2和button3的宽度width都改成14 06/09 07:36
16F:→ alubasteve: 因为都是15的话,反而最後button3会凸出来,也就是说 06/09 07:39
17F:→ alubasteve: 设定的宽度不等於实际的宽度,事实上button2也突出来了 06/09 07:41
18F:→ alubasteve: 我本来想要设定宽度是有小数点的,结果不行 06/09 07:42
19F:→ alubasteve: 不过都用14的话button3会凹进去一点,其中一个宽度 06/09 07:49
20F:→ alubasteve: 宽度15另一个14的话,也只是让button3凸出来变小 06/09 07:52
22F:→ alubasteve: 看来排版真是神奇的学问,真是不好处理 06/09 07:53
23F:推 art1: 一定要用 grid 吗?不能用 pack? 06/09 09:31
24F:推 art1: 把 btn1 跟 btn4 加上 padx = 1,然後2 跟 3设成 14 跟 15 06/09 10:06
25F:→ art1: 看起来就有对齐了 06/09 10:06
26F:推 art1: 或是四个按钮宽度都设成 15,btn1 跟 btn4 加上 ipad = 5 06/09 10:09
27F:→ art1: padx 跟 ipadx 都是加在 grid() 的参数里面 06/09 10:09
29F:→ alubasteve: 是可以的,请问是否是因为padx = 1使实际上button1和4 06/09 15:46
30F:→ alubasteve: 右边多出1像素的空间,所以就不会像之前这样凸出来 06/09 15:47
32F:→ alubasteve: 上面是改正版,另外我也有加上ipad = 5,但是会出问题 06/09 15:54
37F:→ alubasteve: 不知为何button4没有换行到下面去,反而跟button2和 06/09 16:08
38F:→ alubasteve: button3挤在一起 06/09 16:09
39F:推 art1: 是 ipadx,不是 ipad 06/09 22:12
40F:→ art1: 原来是我打错 = =||| 06/09 22:12
41F:推 art1: 为按钮设定的宽度都会再被加上阴影像素的部份,当你在同一列 06/09 22:14
42F:→ art1: 塞两个按钮,阴影像素的宽度就是一个按钮的两倍,所以只能靠 06/09 22:15
43F:→ art1: 调整 padx 或 ipadx 宽度来达到看起来一样宽的效果 06/09 22:16
45F:→ art1: 最主要就是要新增一个容器把两个要并排的按钮包起来 06/09 23:01
48F:→ alubasteve: 请问这是否因为ipadx些微的放大button1和4的外部尺寸 06/10 00:03
49F:→ alubasteve: 所以就可以贴齐,只是padx和ipadx我反而不大懂 06/10 00:07
52F:→ alubasteve: ipadx要表达的意义,相对的padx外部间距我还可以理解 06/10 00:13
53F:→ alubasteve: 另外我也要坦承我pack没用过Frame,看起来是为了把 06/10 00:18
54F:→ alubasteve: button2+3挤在同一个地方,也就是你讲的容器 06/10 00:20
55F:→ alubasteve: 只是这样一来,我还要去探究您写的 06/10 00:27
56F:→ alubasteve: 「fill = 'both', expand = True」请问目的是把 06/10 00:31
57F:→ alubasteve: button1和4都能够在XY轴都填满处理吗 06/10 00:33
58F:→ alubasteve: 至於button2+3我看不出用意何在, 也不懂为何都是 06/10 00:34
59F:→ alubasteve: tk.LEFT都靠左,我以为应该一左一右会比较适合 06/10 00:35
60F:推 art1: 你可以自己尝试把那些参数都去掉,或改成你想要的看看效果 06/10 00:37
61F:→ alubasteve: 多谢,我会再多尝试,谢谢你的建议 06/10 07:56