我try 通过.grid()方法放置小部件,当我将RadioButton放置在不同的行上时-我看到不同行上的填充,也是它们之间的填充.
This is what I talking about (I point paddings that I noticed):
下面是我的代码:
import tkinter as tk
from string import hexdigits
from tkinter import ttk
from random import choices
color_hex = '#C91212'
class MainWindow(tk.Tk):
def __init__(self):
super().__init__()
self.title('Main window')
self.tool = tk.IntVar(value=0)
self.topmenu = TopMenu(self)
self.topmenu.pack()
class TopMenu(tk.Frame):
def __init__(self, master: MainWindow):
tk.Frame.__init__(self, master)
self.root = master
ttk.Label(self, text="Hex color:").grid(row=0, column=0)
self.symbol_entry_text = tk.StringVar(value=color_hex)
self.symbol_entry = ttk.Entry(self, textvariable=self.symbol_entry_text)
self.symbol_entry.grid(row=0, column=1)
ttk.Button(self, text='Random').grid(column=3, row=0)
ttk.Button(self, text='Load').grid(column=4, row=0)
ttk.Button(self, text='Save').grid(column=5, row=0)
self.c = tk.Canvas(self, width=21, height=21, highlightthickness=0, bg=color_hex)
self.c.grid(column=2, row=0)
ttk.Radiobutton(self, text='Pencil', value=0, variable=self.root.tool).grid(row=1, column=0)
ttk.Radiobutton(self, text='Floodfill', value=1, variable=self.root.tool).grid(row=1, column=1)
ttk.Radiobutton(self, text='Eyedropper', value=2, variable=self.root.tool).grid(row=1, column=2)
if __name__ == "__main__":
app = MainWindow()
app.mainloop()