Как предотвратить плавающие виджеты в tkinter python - PullRequest
0 голосов
/ 19 октября 2018

У меня есть следующий пользовательский интерфейс для моего приложения tkinter.Моя проблема в том, что OptionsMenu с длинным текстом перемещает все остальные виджеты вправо и в конечном итоге выходит за рамки.

Решения, которые я могу придумать: 1) Перенос текста в следующую строку.

2) Способ, которым StringVar может обрезать выбранный текст выпадающего меню до определенных символов, но неизменить исходное значение (выбранное в раскрывающемся списке), которое он сохраняет.

3) Перестаньте заставлять их плавать и перекрывать другие виджеты.

Вот изображение ошибочного поведения.

enter image description here

Вот мой код: для раскрывающегося списка «Поиск категории».

    if finding_names != []:
        finding_names.insert(0,'All')
        finding_type_select.set(finding_names[0])
        finding_type_dropdown = OptionMenu(tab3_project_reports,finding_type_select,*finding_names)
        finding_type_dropdown.configure(font='helvetica 12')
        finding_type_dropdown.grid(row=5, column=1,padx=10, pady=10,sticky=W+E+N+S)
        finding_type_dropdown.grid_columnconfigure(0, weight=1)

Я также пытался использовать grid_columnconfigure, но я действительно не увидел никаких изменений.

Буду признателен за любую помощь.Заранее спасибо.

1 Ответ

0 голосов
/ 19 октября 2018

Единственное, что я могу увидеть здесь, это может быть проблема (не видя больше кода), это то, как вы используете grid_columnconfig().Вы можете применить только конфигурацию столбца / строки к контейнеру.Это будет окно root, окно Toplevel() или Frame.В настоящее время вы используете grid_columnconfigure(), и это будет работать, но учтите, что вы также можете просто сделать columnconfigure() без части grid_.То же самое касается строк.

Вместо этого:

finding_type_dropdown.grid_columnconfigure(0, weight=1)

Сделайте это:

tab3_project_reports.grid_columnconfigure(0, weight=1)
...