我不能像图片那样以行或列的方式打包小工具,你能帮我吗?
问题是文本小工具会变形列大小,文本不应该在row=3中,column=0?
def _formato(self):
t1=tkinter.Toplevel(self._finestra)
labelTop = tkinter.Label(t1,text = "Tipo di carattere")
labelTop.grid(row=0, column=0)
labelTop2 = tkinter.Label(t1,text = "Dimensione")
labelTop2.grid(row=0, column=1)
labelTop3 = tkinter.Label(t1)
labelTop3.grid(row=2, column=0)
listaFont=tkinter.ttk.Combobox(t1)
allfonts = sorted(tkinter.font.families())
listaFont["values"] = allfonts
listaFont.grid(row=1, column=0)
listaFont.bind("<<ComboboxSelected>>", None)
listaDimensione = tkinter.ttk.Combobox(t1)
allfontsizes = list(range(8,70))
listaDimensione['values'] = allfontsizes
listaDimensione.grid(row=1, column=1)
testo= tkinter.Text(t1)
testo.insert(tkinter.INSERT,'AaBbYyZz')
testo.grid(row=3,column=0)
发布于 2019-05-04 00:02:30
equal :同一
column
中的所有小部件应该具有相同的width
。
其核心是,为每一列使用一个Frame
,并在Frame
中布局小部件。
这允许所有小部件调整到Frame width
的大小。
出于演示目的,
class App
类App(tk.Tk):def __init__(self):super().__init__()
width
为每一列使用一个tk.Frame
。允许Frame
增加他的width
。
允许Frame
中的小部件增加他的width
。
定义成长为小部件的App width
.
# column 0 self.grid\_columnconfigure(0, weight=1) frame\_0 = tk.Frame(self) frame\_0.grid\_columnconfigure(0, weight=1) frame\_0.grid(row=0, column=0, sticky='nsew')
Frame
...定义每个小部件以将其width
扩展到Frame width
。
labelTop = tkinter.Label(frame_0,text="Tipo di carattere") labelTop.grid(row=0,column=0,sticky='ew') listaFont = tkinter.ttk.Combobox(frame_0) listaFont.grid(row=1,column=0,sticky='ew') allfonts = sorted(tkinter.font.families()) listaFont"values“= allfonts listaFont.bind("<>",allfonts使用width=1
重置默认值
...
# column 1 self.grid\_columnconfigure(1, weight=1) frame\_1 = tk.Frame(self) frame\_1.grid\_columnconfigure(0, weight=1) frame\_1.grid(row=0, column=1, sticky='nsew') labelTop2 = tkinter.Label(frame\_1, text="Dimensione") labelTop2.grid(row=0, column=0, sticky='ew') listaDimensione = tkinter.ttk.Combobox(frame\_1) allfontsizes = list(range(8, 70)) listaDimensione['values'] = allfontsizes listaDimensione.grid(row=1, column=0, sticky='ew')
= tkinter.Text(frame_0,width=1) testo.insert(tkinter.INSERT,'AaBbYyZz') testo.grid(row=3,column=0,testo对于第1列testo相同
Usage:
if __name__ == "__main__":
App().mainloop()
使用Python测试的:3.5
https://stackoverflow.com/questions/55959968
复制相似问题