Найти - Пользователи
Полная версия: tkinter в Python 3.2
Начало » Python для новичков » tkinter в Python 3.2
1
OzXaker

Обьясните пожалуйста кто нибудь почему когда я вызывая новую функцию создания нового окна она работает не корректно ? # когда я вызываю эту функцию ниже при нажатии кнопки то Radiobutton должен быть выделен 1й ( rad0 ) а почему то выделен 2й (rad1).. акогда я запускаю эту функцию отдельно она работает корректно ! почему?

вот пример кода:

------------------------------

import tkinter

root = tkinter.Tk()

tk = tkinter

def Win2(): # эту функцию

tk2 = tkinter

root2 = tkinter.Tk()

var=tk2.IntVar()

var.set(0) # Выделяю 1й - Radiobutton ( rad0 )

rad0 = tk2.Radiobutton(root2,text="0-10",variable=var,value=0)

rad0.pack()

rad1 = tk2.Radiobutton(root2,text="11-20",variable=var,value=1) # А выделяется 2й Radiobutton Этот

rad1.pack()

root2.mainloop()

-----------------

lab = tk.Label(root,text="Ваш адрес", bg="white",fg="red")

lab.pack()

ent = tk.Entry(root,width=20,bd=3)

ent.pack()

lab2 = tk.Label(root,text="Ваш комментарий", bg="black",fg="green")

lab2.pack()

tex = tk.Text(root,width=40,height=10)

tex.pack()

but = tk.Button(root,text="Сменить окно",width=30,height=5,bg="white",fg="blue",command=Win2)

but.pack()

root.mainloop()

evgen34
У Radiobutton есть метод .select()
rad0.select()
тебе поможет
evgen34
Когда не указываешь программе, что выделять по умолчанию, то она выделяет последний из упакованных переключателей
OzXaker

Спасибо select только и помог.... Но всётаки когдага я отдельно запускаю эту функцию Win2 она работает Корректно СТРАННО !!!

4kpt
OzXaker
Ваш код просто снес мне мозг.
Тему, конечно, желательно было начать в разделе GUI, но как видно…
1. Для создания дочерних окон используйте toplevel (но если Вам не нужно одновременно включенное корневое окно, лучше использовать frame, т.е. рамки и паковать объекты в них и чередовать их включение и выключение).
2. Для создания однотипных виджетов используйте цикл и пакуйте их в словарь или список. (Лучше в словарь, в этом случае можно использовать id виджета как ключ).
3. В radiobutton и chekbutton существуют параметр, который отвечает за их включение или выключение. Используйте лучше его.
4. Разберитесь, зачем существует строка root.mainloop() и что она выполняет.

P.S. Оборачивайте код в теги. Очень сложно читать :)

This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB