如何使我的所有小部件具有相同的长度

时间:2020-07-18 05:55:23

标签: python tkinter

我有一个问题,我创建了一个带有输入项,组合框和文本的界面,并希望得到漂亮的外观,我想要这样:所有小部件的长度都相同。

但是它不起作用。我做了一个事件(您可以在行代码下看到),但是总会有一点偏移。我尝试使用+2+5消除此偏移量,但不起作用。

我使用.grid()放置小部件。

如何使所有小部件具有相同的长度?

所有小部件的

行代码具有相同的长度

    """
        Permet de modifier la taille de la colonne avec les médicaments1...
        les 4 variables sont utilisées pour eviter l'erreur avec la fonction trace
    """
    longeur_medoc_1 = len(self.entry_medicament_1.get())
    longeur_medoc_2 = len(self.entry_medicament_2.get())
    longeur_classe_atc_1 = len(self.te_classe_atc_medicament_1.get())
    longeur_classe_atc_2 = len(self.te_classe_atc_medicament_2.get())
    longeur = [longeur_medoc_1, longeur_medoc_2, longeur_classe_atc_1, longeur_classe_atc_2]
    longeur_max = max(longeur)
    if longeur_max < 30: longeur_max = 30
    self.description_probleme['width'] = longeur_max
    self.entry_medicament_1['width'] = longeur_max + 2
    self.classe_atc_medicament_1['width'] = longeur_max + 2
    self.entry_medicament_2['width'] = longeur_max + 2
    self.classe_atc_medicament_2['width'] = longeur_max + 2
    self.entry_date_contact_medecin['width'] = longeur_max
    self.retour_medecin['width'] = longeur_max + 5
    self.devenir_intervention['width'] = longeur_max + 2

enter image description here

1 个答案:

答案 0 :(得分:0)

grid()具有选项sticky=,可用于调整窗口小部件的大小。

使用sticky="we"可以调整west-east的大小,这意味着left-right


没有sticky="we"

enter image description here

使用sticky="we"

enter image description here

import tkinter as tk
        
root = tk.Tk()

label = tk.Label(root, text='Input', bg='red')
label.grid(row=0, column=0, sticky='we')

button = tk.Text(root)
button.grid(row=1, column=0, sticky='we')

entry = tk.Entry(root)
entry.grid(row=2, column=0, sticky='we')

button = tk.Button(root, text='OK')
button.grid(row=3, column=0, sticky='we')

root.mainloop()  

它也有padxpadyipadxipady来增加边距。

effbot.org上的文档:grid()