Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 21, 2012 16:49:24

4kpt
От: Харьков
Зарегистрирован: 2010-11-03
Сообщения: 998
Репутация: +  63  -
Профиль   Отправить e-mail  

вопрос по tkinter Radiobutton

Прошу прощения, забыл про кодировки. Дайте декодированный результат, т.е.
Замените строку

print 'a5[0]["enrolledcourses"]', a5[0]["enrolledcourses"]
На строку
print 'a5[0]["enrolledcourses"]', repr(a5[0]["enrolledcourses"]).decode("unicode_escape")
Еще раз прошу прощения за повтор…



Офлайн

#2 Дек. 21, 2012 17:11:30

Ystritsa
Зарегистрирован: 2012-12-10
Сообщения: 43
Репутация: +  0  -
Профиль   Отправить e-mail  

вопрос по tkinter Radiobutton

a5 [{'mailformat': 1, 'timezone': '99', 'lastaccess': 1356028976, 'id': 2.0, 'city': u'Одесса', 'confirmed': 1.0, 'firstaccess': 1347542739, 'descriptionformat': 1, 'theme': '', 'department': '', 'email': 'ystritsa@mail.ru', 'username': 'admin', 'description': '', 'firstname': u'Татьяна', 'lastname': u'Маркина', 'auth': 'manual', 'profileimageurl': 'http://localhost/moodle/moodle/pluginfile.php/5/user/icon/f1', 'enrolledcourses': [{'fullname': u'Охрана Труда 3', 'shortname': u'ОТ', 'id': 3}, {'fullname': u'Гражданская защита 2', 'shortname': u'ГЗ', 'id': 2}, {'fullname': u'Теория Распознавания Образов 4', 'shortname': u'ТРО', 'id': 4}], 'lang': 'ru', 'country': 'UA', 'idnumber': '', 'profileimageurlsmall': 'http://localhost/moodle/moodle/pluginfile.php/5/user/icon/f2', 'fullname': u'Татьяна Маркина'}]
a5[0] {'mailformat': 1, 'timezone': '99', 'lastaccess': 1356028976, 'id': 2.0, 'city': u'Одесса', 'confirmed': 1.0, 'firstaccess': 1347542739, 'descriptionformat': 1, 'theme': '', 'department': '', 'email': 'ystritsa@mail.ru', 'username': 'admin', 'description': '', 'firstname': u'Татьяна', 'lastname': u'Маркина', 'auth': 'manual', 'profileimageurl': 'http://localhost/moodle/moodle/pluginfile.php/5/user/icon/f1', 'enrolledcourses': [{'fullname': u'Охрана Труда 3', 'shortname': u'ОТ', 'id': 3}, {'fullname': u'Гражданская защита 2', 'shortname': u'ГЗ', 'id': 2}, {'fullname': u'Теория Распознавания Образов 4', 'shortname': u'ТРО', 'id': 4}], 'lang': 'ru', 'country': 'UA', 'idnumber': '', 'profileimageurlsmall': 'http://localhost/moodle/moodle/pluginfile.php/5/user/icon/f2', 'fullname': u'Татьяна Маркина'}
a5[0]["enrolledcourses"] [{'fullname': u'Охрана Труда 3', 'shortname': u'ОТ', 'id': 3}, {'fullname': u'Гражданская защита 2', 'shortname': u'ГЗ', 'id': 2}, {'fullname': u'Теория Распознавания Образов 4', 'shortname': u'ТРО', 'id': 4}]

вобще у меня создано 4 курса Охрана труда, гражданская защита,моделирование систем и теория распознавания образов….(если это важно.просто у меня не все пользователи записаны на все курсы)

Отредактировано Ystritsa (Дек. 21, 2012 17:16:51)

Офлайн

#3 Дек. 21, 2012 19:50:36

4kpt
От: Харьков
Зарегистрирован: 2010-11-03
Сообщения: 998
Репутация: +  63  -
Профиль   Отправить e-mail  

вопрос по tkinter Radiobutton

Вот теперь как-то так. Можно пробовать. Главное в листинге то, что результат, кторый возвращает Вам сервер Вы сохраняете в списке kurs, который потом передаете на функцию next_window, которая список данных переводит в список визуальный (извините за тофтологию). Пробуйте…

from Tkinter import*
root = Tk()
def next_window(event = None):
    width_lb = max([len(name) for name in event]) # Определяем максимальную длину названия курса
    win_new = Toplevel(root)
    lb = Listbox(win_new, width=width_lb, height=10)
    lb.insert("end", *event)
    lb.pack()
    bt = Button(win_new, text=u"Выход", width=20)
    bt.bind("<Button-1>", close)
    bt.pack(pady=5)
def get_user(x, win6):
    x_ = x.get()
    mdl = MDL()
    print mdl.conn_xmlrpc(server)
    user_ids = ((x_),)
    a5 = mdl.get_users(server, user_ids)
    kurs = []
    for i in a5[0]['enrolledcourses']:
        kurs.append(i["fullname"])
    win6.destroy()
    next_window(kurs)
def close(event = None):
    print "try_die"
def new5(event = None):
    win6 = Toplevel(root)
    win6.title("Ввод данных")
    lbl1 = Label(win6, text = u"Введите id пользователя")
    lbl1.grid(row=1,column=0,columnspan=2)
    x = Entry(win6, width="20")
    x.focus_force()
    x.grid(row=1,column=2,columnspan=2)
    but=Button(win6,text="Получить", width=18, height=2,)
    but.grid(row=2,column=2,ipadx=5,padx=10,pady=5)
    but.bind("<Button-1>", lambda e: get_user(x, win6))
    but2=Button(win6,text="Закрыть", width=50, height=2, bg="white", fg="blue", command = win6.destroy) # Кнопки
    but2.grid(row=3,column=2,ipadx=5,padx=10,pady=5)
    but2.bind("<Button-1>", close)
new5()
root.mainloop()



Отредактировано 4kpt (Дек. 21, 2012 20:02:05)

Офлайн

#4 Дек. 21, 2012 20:14:54

Ystritsa
Зарегистрирован: 2012-12-10
Сообщения: 43
Репутация: +  0  -
Профиль   Отправить e-mail  

вопрос по tkinter Radiobutton

да,да,я не знала как это сделать.все прекрасно работает,прыгаю от радости)),готова Вас расцеловать)).Спасибо Вам огромное,за терпение и за желание помочь!

Офлайн

#5 Дек. 21, 2012 20:22:04

4kpt
От: Харьков
Зарегистрирован: 2010-11-03
Сообщения: 998
Репутация: +  63  -
Профиль   Отправить e-mail  

вопрос по tkinter Radiobutton

Да не за что :)
Только следующий вопрос оформляйте в новой теме, так как модеры могут влепить бан.
Правильным считается - одна тема - один вопрос…



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version