Форум сайта python.su
0
Ребята помогите плиз.Я создала окно с 6ю радиобатонами.как сделать так чтоб при выборе(активации) каждого из них вылазило новое окно с запросами? и как радиобатон привязать к функции?
Отредактировано Ystritsa (Дек. 10, 2012 19:09:09)
Офлайн
63
Какого рода запросы? Что значит “Вылазило”?
Короче. Как я понял:
1. Сущесчтвует 6 радиокнопок.
2. При выборе одной из них появляется новое окно верхнего уровня (окно поверх окна) с какими-нибуть другими виджетами (ну там кнопочками, чекбоксами и т.п.).
3. При выборе другой радиокнопки первое окно исчезает и появляется другое окно, связанное с новым выбором…
Я Вас правильно понял?
Ибо по Вашему посту ничего понять нельзя…
Офлайн
0
я в кратце описала проблему.Вобщем дана система дистанционного обучения.для доступа к ней мы создали свой сервер и надо написать графическое приложение для доступа к этой системе.вот я создала первое окно с 6ю радиобатонами которые обозначают 6 функций этой системы-добавить пользователя,добавить курс и т.д.Надо чтобы при выборе одного из переключателей вылазило новое окно с полями для заполнения.
Да,Вы все правильно поняли.
Отредактировано Ystritsa (Дек. 11, 2012 01:23:22)
Офлайн
63
Ystritsa
Вечером приведу пример…
Только с работы. Очень кушать хочется :)
Отредактировано FishHook (Дек. 11, 2012 19:29:29)
Офлайн
568
Я б на всякий случай спросил какую гуёвую либу он юзает вообще.
Офлайн
0
не поняла
Офлайн
568
сорри, не внимательно тему топика прочитал.
Офлайн
63
Решение использовать радиокнопки для Ваших задач очень плохое. Лучше использовать меню…
Но, раз Вы просите, то….
# -*- coding: utf-8 -*- import Tkinter root = Tkinter.Tk() root.geometry("200x200+0+0") root.focus_force() def new_window(event = None): print boxdata.get() name = event.widget.cget("text") # Проверка существования окна верхнего уровня и его удаление... if len(root.winfo_children()) > 1: root.winfo_children()[1].destroy() # Проверка существования окна верхнего уровня и его удаление... def die(event = None): tp.destroy() tp = Tkinter.Toplevel(root) tp.title(name) tp.geometry("200x200+205+0") tp.focus_force() btquit = Tkinter.Button(tp, text=u"Выход") btquit.bind("<Button-1>", die) btquit.place(relx=0.5, rely=0.5, anchor= "center") boxdata = Tkinter.IntVar() variant = [("01", 0), ("02", 1), ("03", 2)] lfr = Tkinter.LabelFrame(root, text=u"Выбор вариантов") lfr.place(relx=0.5, rely=0.5, anchor="center") for name, pos in variant: rb = Tkinter.Radiobutton(lfr, text=name, value=pos, variable=boxdata) rb.bind("<Button-1>", new_window) rb.pack() root.mainloop()
Отредактировано 4kpt (Дек. 11, 2012 23:22:15)
Офлайн
0
спасибо!я извиняюсь конечно но вот если я сделала немного удобней не так как писала-вместо радиобатонов поставила кнопки и теперь у меня немного не получается дописать то что надо по вашему примеру.вот то чем я занимаюсь.если можно хотяб на примере одной кнопки покажите как оно должно быть написано!
Прикреплённый файлы:
grafich prilog.py (5,9 KБ)
Офлайн
63
Написано что?
Вы опять туманно выражаетесь.
Я не могу понять что вы хотите.
Что-бы при нажатии любой кнопки у Вас открывалось окно верхего уровня?
или
Что-бы при выборе другой кнопки закрывалось уже открытое окно?
Но вот же у Вас часть кода, которая выполняет первый вариант…
but6 = Button(root,text="Создать курс", width=50, height=2, bg="white", fg="blue") # Кнопки but6.grid(row=6,column=2,ipadx=5,padx=10,pady=5) but6.bind("<Button-1>", new_window)
Офлайн