Найти - Пользователи
Полная версия: вопрос по tkinter Radiobutton
Начало » GUI » вопрос по tkinter Radiobutton
1 2 3 4 5 6
Ystritsa
Ребята помогите плиз.Я создала окно с 6ю радиобатонами.как сделать так чтоб при выборе(активации) каждого из них вылазило новое окно с запросами? и как радиобатон привязать к функции?
4kpt
Какого рода запросы? Что значит “Вылазило”?
Короче. Как я понял:
1. Сущесчтвует 6 радиокнопок.
2. При выборе одной из них появляется новое окно верхнего уровня (окно поверх окна) с какими-нибуть другими виджетами (ну там кнопочками, чекбоксами и т.п.).
3. При выборе другой радиокнопки первое окно исчезает и появляется другое окно, связанное с новым выбором…

Я Вас правильно понял?
Ибо по Вашему посту ничего понять нельзя…
Ystritsa
я в кратце описала проблему.Вобщем дана система дистанционного обучения.для доступа к ней мы создали свой сервер и надо написать графическое приложение для доступа к этой системе.вот я создала первое окно с 6ю радиобатонами которые обозначают 6 функций этой системы-добавить пользователя,добавить курс и т.д.Надо чтобы при выборе одного из переключателей вылазило новое окно с полями для заполнения.
Да,Вы все правильно поняли.
4kpt
Ystritsa
Вечером приведу пример…
Только с работы. Очень кушать хочется :)
FishHook
Я б на всякий случай спросил какую гуёвую либу он юзает вообще.
Ystritsa
не поняла
FishHook
сорри, не внимательно тему топика прочитал.
4kpt
Решение использовать радиокнопки для Ваших задач очень плохое. Лучше использовать меню…
Но, раз Вы просите, то….
# -*- 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()

Будут вопросы по коду - пишите…
Ystritsa
спасибо!я извиняюсь конечно но вот если я сделала немного удобней не так как писала-вместо радиобатонов поставила кнопки и теперь у меня немного не получается дописать то что надо по вашему примеру.вот то чем я занимаюсь.если можно хотяб на примере одной кнопки покажите как оно должно быть написано!
4kpt
Написано что?
Вы опять туманно выражаетесь.
Я не могу понять что вы хотите.
Что-бы при нажатии любой кнопки у Вас открывалось окно верхего уровня?
или
Что-бы при выборе другой кнопки закрывалось уже открытое окно?
Но вот же у Вас часть кода, которая выполняет первый вариант…
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)
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