Size: a a a

2020 April 20

S

Shieldy in PiterPy Meetup
HIWI♥♥ Vargas, пожалуйста, нажмите на кнопку ниже в течение указанного времени, иначе вы будете кикнуты. Спасибо! (60 сек)
источник

DB

Dima Boger in PiterPy Meetup
Olya Telezhnaya
почему начало в 19:00 я не успею приехать
источник

AN

Aleksey Nakoryakov in PiterPy Meetup
Ну реально. На моих коммутаторах наверняка ещё пробки будут
источник

DB

Dima Boger in PiterPy Meetup
источник

А4

Андрей 42 in PiterPy Meetup
Всем привет. Пытаюсь такую конструкцию реализовать : пользователь вводит значение в виджете root2. Это значение далее идет в func2. Как приостановить выполнение скрипта (а именно функции func2) до тех пор пока не выполнится функция get_selection() ?

def ask(dfm, X,y,dfattrs,mapsdata, inlines, xlines,gridx,gridy):

   def get_selection():

       curItem = tree.item(tree.focus())

       root2.destroy()

   root2 = tk.Toplevel(root)

   btn = ttk.Button(root2)

   btn.configure(command = get_selection)

ask(dfm, X,y,dfattrs,mapsdata, inlines, xlines,gridx,gridy)

func_2(curItem) ## raise error
источник

Б

Боброний in PiterPy Meetup
Андрей 42
Всем привет. Пытаюсь такую конструкцию реализовать : пользователь вводит значение в виджете root2. Это значение далее идет в func2. Как приостановить выполнение скрипта (а именно функции func2) до тех пор пока не выполнится функция get_selection() ?

def ask(dfm, X,y,dfattrs,mapsdata, inlines, xlines,gridx,gridy):

   def get_selection():

       curItem = tree.item(tree.focus())

       root2.destroy()

   root2 = tk.Toplevel(root)

   btn = ttk.Button(root2)

   btn.configure(command = get_selection)

ask(dfm, X,y,dfattrs,mapsdata, inlines, xlines,gridx,gridy)

func_2(curItem) ## raise error
Ничего не понял
источник

Б

Боброний in PiterPy Meetup
В примере
источник

Б

Боброний in PiterPy Meetup
get_selection нигде не вызывается, и неясно, зачем она объявлена внутри ask
источник

А4

Андрей 42 in PiterPy Meetup
вызывается ask()  в которой создается окно root2 с кнопкой btn и биндом а нее get_selection() . При нажатию на кнопку вводится переменная curItem(), которая в дальнейшем используется в func2. Но по факту func2 дает ошибку потому что curItem создается только при нажатии на кнопку
источник

E

Eugene in PiterPy Meetup
Андрей 42
Всем привет. Пытаюсь такую конструкцию реализовать : пользователь вводит значение в виджете root2. Это значение далее идет в func2. Как приостановить выполнение скрипта (а именно функции func2) до тех пор пока не выполнится функция get_selection() ?

def ask(dfm, X,y,dfattrs,mapsdata, inlines, xlines,gridx,gridy):

   def get_selection():

       curItem = tree.item(tree.focus())

       root2.destroy()

   root2 = tk.Toplevel(root)

   btn = ttk.Button(root2)

   btn.configure(command = get_selection)

ask(dfm, X,y,dfattrs,mapsdata, inlines, xlines,gridx,gridy)

func_2(curItem) ## raise error
Думаю, надо просто разобраться как писать gui приложения на tkinter.

https://pythonru.com/uroki/obuchenie-python-gui-uroki-po-tkinter
источник

А4

Андрей 42 in PiterPy Meetup
Боброний
get_selection нигде не вызывается, и неясно, зачем она объявлена внутри ask
поправил название функции
источник

А4

Андрей 42 in PiterPy Meetup
Я на самом деле пытался найти похожие примеры в сети. В основном нахожу только самые базовые туторы
источник

E

Eugene in PiterPy Meetup
Андрей 42
Я на самом деле пытался найти похожие примеры в сети. В основном нахожу только самые базовые туторы
Почему ты не хочешь использовать PyQt? Это во много раз более удобный, мощный и продуманный фреймворк для разработки GUI-приложений. Откуда требование именно tkinter?
источник

А4

Андрей 42 in PiterPy Meetup
Уже много работы сделал на tkinter и это окно -  последний шаг просто) Тут даже дело не в tk а в том как обрабатывается код мне кажется.
источник

E

Eugene in PiterPy Meetup
Андрей 42
Уже много работы сделал на tkinter и это окно -  последний шаг просто) Тут даже дело не в tk а в том как обрабатывается код мне кажется.
Я твоего всего кода не вижу, поэтому не понимаю даже в чём твоя проблема толком. Скорее всего ты просто делаешь что-то неправильно. Сделай минимальный рабочий пример, который демонстрирует проблему (не обязательно показывать реальный код и делать что-то полезное, просто минимальный воспроизводимый пример с аналогичным поведением).
источник

А4

Андрей 42 in PiterPy Meetup
Работоспособный пример
источник

E

Eugene in PiterPy Meetup
Андрей 42
Работоспособный пример
Добавь root2.grab_set()

    root2 = tk.Toplevel(root) ## Создается окно 
   tree = ttk.Treeview(root2) ### а в окне виджет (по факту табличка с данными из df_t)
   btn = ttk.Button(root2) ### а также кнопка
   btn.place(relx=0.38, rely=0.83, height=33, width=220)
   btn.configure(text='Выгрузить')
   btn.configure(command = get_selection)## бинд

   root2.grab_set()


Но вообще код конечно сильно переусложнен и плохо написан.
источник

E

Eugene in PiterPy Meetup
Но вообще это вроде не то, что ты хочешь. Это делает диалог модальным, а тебе нужно, чтобы он заблокировал поток выполнения.
источник

E

Eugene in PiterPy Meetup
Код неправильно написан. у тебя не должно быть такого диалога в общем потоке выполнения.
источник

А4

Андрей 42 in PiterPy Meetup
Я согласен, что не должно, но я не понял как сделать иначе, и примеров не нашел
источник