Форум сайта python.su
Ребята помогите плиз.Я создала окно с 6ю радиобатонами.как сделать так чтоб при выборе(активации) каждого из них вылазило новое окно с запросами? и как радиобатон привязать к функции?
Отредактировано Ystritsa (Дек. 10, 2012 19:09:09)
Офлайн
Какого рода запросы? Что значит “Вылазило”?
Короче. Как я понял:
1. Сущесчтвует 6 радиокнопок.
2. При выборе одной из них появляется новое окно верхнего уровня (окно поверх окна) с какими-нибуть другими виджетами (ну там кнопочками, чекбоксами и т.п.).
3. При выборе другой радиокнопки первое окно исчезает и появляется другое окно, связанное с новым выбором…
Я Вас правильно понял?
Ибо по Вашему посту ничего понять нельзя…
Офлайн
я в кратце описала проблему.Вобщем дана система дистанционного обучения.для доступа к ней мы создали свой сервер и надо написать графическое приложение для доступа к этой системе.вот я создала первое окно с 6ю радиобатонами которые обозначают 6 функций этой системы-добавить пользователя,добавить курс и т.д.Надо чтобы при выборе одного из переключателей вылазило новое окно с полями для заполнения.
Да,Вы все правильно поняли.
Отредактировано Ystritsa (Дек. 11, 2012 01:23:22)
Офлайн
Ystritsa
Вечером приведу пример…
Только с работы. Очень кушать хочется :)
Отредактировано FishHook (Дек. 11, 2012 19:29:29)
Офлайн
Я б на всякий случай спросил какую гуёвую либу он юзает вообще.
Офлайн
не поняла
Офлайн
сорри, не внимательно тему топика прочитал.
Офлайн
Решение использовать радиокнопки для Ваших задач очень плохое. Лучше использовать меню…
Но, раз Вы просите, то….
# -*- 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)
Офлайн
спасибо!я извиняюсь конечно но вот если я сделала немного удобней не так как писала-вместо радиобатонов поставила кнопки и теперь у меня немного не получается дописать то что надо по вашему примеру.вот то чем я занимаюсь.если можно хотяб на примере одной кнопки покажите как оно должно быть написано!
Прикреплённый файлы: grafich prilog.py (5,9 KБ)
Офлайн
Написано что?
Вы опять туманно выражаетесь.
Я не могу понять что вы хотите.
Что-бы при нажатии любой кнопки у Вас открывалось окно верхего уровня?
или
Что-бы при выборе другой кнопки закрывалось уже открытое окно?
Но вот же у Вас часть кода, которая выполняет первый вариант…
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)
Офлайн