首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Tkinter文本小工具使列大小变形

Tkinter文本小工具使列大小变形
EN

Stack Overflow用户
提问于 2019-05-03 04:42:23
回答 1查看 451关注 0票数 2

我不能像图片那样以行或列的方式打包小工具,你能帮我吗?

问题是文本小工具会变形列大小,文本不应该在row=3中,column=0?

代码语言:javascript
复制
   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)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-04 00:02:30

equal :同一column中的所有小部件应该具有相同的width

其核心是,为每一列使用一个Frame,并在Frame中布局小部件。

这允许所有小部件调整到Frame width的大小。

出于演示目的,

  1. 定义class App

类App(tk.Tk):def __init__(self):super().__init__()

  • To get equal width为每一列使用一个tk.Frame

允许Frame增加他的width

允许Frame中的小部件增加他的width

定义成长为小部件的App width.

代码语言:javascript
复制
    # 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')

  • Add的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重置默认值

...

代码语言:javascript
复制
 # 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

代码语言:javascript
复制
    if __name__ == "__main__":
        App().mainloop()

使用Python测试的:3.5

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55959968

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档