Tkinter Custom Widget rowconfigure отсутствует аргумент 'index' - PullRequest
0 голосов
/ 08 мая 2018

Я написал собственный виджет, который содержит Label, Entry и Treeview. Теперь я хочу, чтобы этот пользовательский виджет заполнил фрейм, в который я хотел бы поместить его. Я подумал, что нужно запустить rowconfigure. Итак, мой код выглядит так:

import tkinter as tk
import tkinter.ttk as ttk

class CustomWidget(tk.Frame):
    def __init__(self, parent):
        tk.Frame.__init__(self, parent)        
        tk.Frame.rowconfigure(3, weight=1)   

        self.Search_Text_Label = tk.Label(self, text="Search:",font=("Century Gothic",12))
        self.Search_Text_Label.grid(row=1,column=1, sticky='W', padx=10)

        self.entry = tk.Entry(self, width=30)
        self.entry.grid(row=1,column=2, sticky='W')
        self.entry.bind('<Return>',search)

        self.tree = ttk.Treeview(self)
        self.tree.state = "disabled"

        self.tree.grid(row=2,column=1,columnspan=2, rowspan=2, sticky='S', pady=0, padx=20)

Но я получаю это сообщение об ошибке:

TypeError: grid_rowconfigure () отсутствует 1 обязательный позиционный аргумент: 'Индекс'

Что я должен изменить? И действительно ли это путь?

1 Ответ

0 голосов
/ 08 мая 2018

Вы звоните rowconfigure по классу tk.Frame. Вместо этого вы должны вызывать его в своем экземпляре класса, который равен self, поэтому:

self.rowconfigure(3, weight=1)

Кроме того, если вы хотите, чтобы древовидная структура растягивалась вертикально, вы должны использовать sticky='NS'.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...