Tkinter не будет обновлять окно, если не свернуть/развернуть окно.Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Tkinter не будет обновлять окно, если не свернуть/развернуть окно.

Сообщение Anonymous »

Окно tkinter динамически добавляет или удаляет строки виджетов ввода в зависимости от количества, указанного пользователем, обновляя после команды кнопки функцию. Функция отслеживает новое количество указанных строк по сравнению со старым числом и будет добавлять или вычитать строки в зависимости от нового указанного числа. Функция добавит строки снизу вниз, оставив все текущие строки виджета нетронутыми со значениями, если новое количество строк больше, чем старое количество строк. И наоборот, функция удалит строки снизу вверх, оставив все текущие строки виджета нетронутыми со значениями, если новое количество строк меньше старого. Код работает так, как ожидалось. Проблема в том, что при добавлении или вычитании строк в результирующем окне отображается только самая верхняя строка с виджетом ввода для указанного количества строк и кнопки, строки виджетов ввода и их значения не отображаются, если окно не свернуто, а затем развернуто. . После этого все выглядит как должно. Я добавил операторframe1.update() в цикл уничтожения виджета, но это не оказало никакого влияния. Любые предложения будут оценены по достоинству. Спасибо.
from tkinter import*
root = Tk()

def get_row_num(): # Add/remove rows
global num_rows_old
num_rows_new = int(nobs.get())
if num_rows_new - num_rows_old > 0:
for i in range(num_rows_old,num_rows_new):
# Add Frame 1 rows
#Frame 1 labels
label1 = Label(frame1, text='Column #1',pady=2)
label1.grid(row= 2, column=1)
label2 = Label(frame1, text='Column #2',pady=2)
label2.grid(row= 2, column=2)
#Frame row number label 1
label3 = Label(frame1, text=f'# {i+1}',pady=2)
label3.grid(row= 3+i, column=0)
#Frame 1 entry widgets
value1 = Entry(frame1,width=10)
value2 = Entry(frame1,width=10)
#Frame 1 grid locations
value1= value1.grid(row=i+3, column = 1)
value2 = value2.grid(row=i+3, column = 2)
else:
# Remove all Frame 1 rows including column headers
max_row,max_col = frame1.grid_size()
if num_rows_new < 1:
for row_count in range(num_rows_new, max_row):
for widget in frame1.grid_slaves(row =row_count+2):
widget.destroy()
else:
# Remove unused Frame 1 rows
for row_count in range(num_rows_new, max_row):
for widget in frame1.grid_slaves(row =row_count+3):
widget.destroy()
frame1.update() # Does not work

num_rows_old = num_rows_new # redfine new row num to old

# Row Number GUI
root.geometry("400x300")
frame1=Label(root, text='',padx=10, pady=10)
frame1.grid(row=3, column=0)

#Frame 1 Labels
label1 = Label(frame1, text='No of Rows = ',pady=2)
label1.grid(row=1, column=1)

#Frame 1 Entry widgets
nobs = Entry(frame1,width=10)
nobs.insert(0, int("0")) # Prefill No. of rows

#Frame 1 Grid location
nobs.grid(row=1, column = 2, padx=10)

num_rows_old = 0 # Define initial row num value for use in function

# Button for adding/removing rows
my_Button = Button(frame1, text="Enter No.of Rows", command=get_row_num)
my_Button.grid(row=1,column=3)

root.mainloop()


Подробнее здесь: https://stackoverflow.com/questions/791 ... ize-window
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как переключить/свернуть элемент javascript (по умолчанию я хочу свернуть HTML)
    Гость » » в форуме Jquery
    0 Ответы
    61 Просмотры
    Последнее сообщение Гость
  • Как переключить/свернуть элемент javascript (по умолчанию я хочу свернуть HTML)
    Гость » » в форуме CSS
    0 Ответы
    41 Просмотры
    Последнее сообщение Гость
  • Как развернуть, свернуть и восстановить окно WinUI из кода
    Anonymous » » в форуме C#
    0 Ответы
    24 Просмотры
    Последнее сообщение Anonymous
  • Стрелки развернуть/свернуть дерево SWT без отступов
    Гость » » в форуме JAVA
    0 Ответы
    50 Просмотры
    Последнее сообщение Гость
  • Свернуть/развернуть класс модели ответа Swagger
    Anonymous » » в форуме Jquery
    0 Ответы
    38 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»