Найти - Пользователи
Полная версия: вопрос по tkinter Radiobutton
Начало » GUI » вопрос по tkinter Radiobutton
1 2 3 4 5 6
4kpt
Прошу прощения, забыл про кодировки. Дайте декодированный результат, т.е.
Замените строку
print 'a5[0]["enrolledcourses"]', a5[0]["enrolledcourses"]
На строку
print 'a5[0]["enrolledcourses"]', repr(a5[0]["enrolledcourses"]).decode("unicode_escape")
Еще раз прошу прощения за повтор…
Ystritsa
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 курса Охрана труда, гражданская защита,моделирование систем и теория распознавания образов….(если это важно.просто у меня не все пользователи записаны на все курсы)
4kpt
Вот теперь как-то так. Можно пробовать. Главное в листинге то, что результат, кторый возвращает Вам сервер Вы сохраняете в списке 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()
Ystritsa
да,да,я не знала как это сделать.все прекрасно работает,прыгаю от радости)),готова Вас расцеловать)).Спасибо Вам огромное,за терпение и за желание помочь!
4kpt
Да не за что :)
Только следующий вопрос оформляйте в новой теме, так как модеры могут влепить бан.
Правильным считается - одна тема - один вопрос…
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