作者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/m.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