Найти - Пользователи
Полная версия: вопрос по tkinter Radiobutton
Начало » GUI » вопрос по tkinter Radiobutton
1 2 3 4 5 6
Ystritsa
def get_user(x):
    x_ = x.get()
    mdl = MDL()
    print mdl.conn_xmlrpc(server)
    user_ids = ((x_),)
    a5 = mdl.get_users(server, user_ids)
    print u'Список курсов на которые записан пользователь'
    for i in a5[0]['enrolledcourses']:
        print i['fullname']
    print u'--Операция завершена--'
  
def new5(event = None):
           
    win6 = Toplevel()
    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))
    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)  
4kpt
Вы опять сумбурно выражаетесь. Какая инофрмация должна по итогу выводится. В каком типе данных она представлена (список, словарь, строка, набор)? В каком виде выводится (в виде списка, в виде поля текста для того, чтобы пользователь мог скопировать результат, в виде простых текстовых полос…)?
Если я правильно понял задачу, то пример такой
from Tkinter import*
root = Tk()
def next_window(event = None):
    win_new = Toplevel(root)
    lb = Label(win_new)
    lb["text"] = event
    lb.place(relx=0.5, rely=0.5, anchor="center")
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)
    print u'Список курсов на которые записан пользователь'
    #for i in a5[0]['enrolledcourses']:
    #    print i['fullname']
    result = u'--Операция завершена--'
    win6.destroy()
    next_window(result)
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
считываются данные с сайта и выводится список курсов на которые записан пользователь.а вид любой из тех что Вы назвали только копировать результат мне не надо.
Ystritsa
получается что в окне next_window выводится “операция завершена”.а если я напишу result = i то мне выводится в этом окне один из четырех курсов(последний) на которые записан пользователь.
“Список курсов на которые записан пользователь
Охрана Труда 3
Гражданская защита 2
Моделирование систем 5
Теория Распознавания Образов 4
–Операция завершена–” ———это результат в шеле-всего 4 курса на которые записан пользователь
4kpt
Представим, что с сайта вернулись данные в виде списка предметов, который вы дали в последнем сообщении…
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()
    # Возвращает Ваша функция результат в виде списка данных    
    result = [u"Охрана Труда 3", u"Гражданская оборона", u"Моделирование систем 5", u"Теория Распознавания Образов 4"]
    win6.destroy()
    next_window(result)
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
да оно то так.но этот список выводится для конкретно выбраного пользователя.а некоторые пользователи не состоят в этих курсах или в еще какихто а эта строка
  result = [u"Охрана Труда 3", u"Гражданская оборона", u"Моделирование систем 5", u"Теория Распознавания Образов 4"] 
выводит конкретный список.
4kpt
Ystritsa
Послушайте. Я не знаю, что возвращает Вам Ваша функция и в каком виде. Я не знаю как эта функция вообще функционирует. Сохраните результат в какой-нибуть переменной и передайте эту переменную на функцию next_window, которая самостоятельно выведет результат в виде списка…

P.S. Приведите пару вариантов результата, который сохраняется в a5. Тогда - посмотрим…
Ystritsa
то что я знаю это что в а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)
    print u'Список курсов на которые записан пользователь'
    for i in a5[0]['enrolledcourses']:
        print i['fullname']
отфильтровываются данные о пользователях по курсам “enrolledcourses” -кто на какие курсы записан и должно выводиться fullname курса.а i -просто ключи.
и не понятно что надо присвоить результату чтобы выводились fullname курсов
4kpt
Ystritsa
Дайте результат по трем строкам, тогда я смогу помочь…
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)
    print u'Список курсов на которые записан пользователь'
    # !!!!!!!!!!!! Дайте результат
    print "a5", a5
    print "a5[0]", a5[0]
    print 'a5[0]["enrolledcourses"]', a5[0]["enrolledcourses"]
    # !!!!!!!!!!!! Дайте результат
    #for i in a5[0]['enrolledcourses']:
    #    print i['fullname']
Ystritsa
a5 [{'mailformat': 1, 'timezone': '99', 'lastaccess': 1356028976, 'id': 2.0, 'city': u'\u041e\u0434\u0435\u0441\u0441\u0430', 'confirmed': 1.0, 'firstaccess': 1347542739, 'descriptionformat': 1, 'theme': '', 'department': '', 'email': 'ystritsa@mail.ru', 'username': 'admin', 'description': '', 'firstname': u'\u0422\u0430\u0442\u044c\u044f\u043d\u0430', 'lastname': u'\u041c\u0430\u0440\u043a\u0438\u043d\u0430', 'auth': 'manual', 'profileimageurl': 'http://localhost/moodle/moodle/pluginfile.php/5/user/icon/f1', 'enrolledcourses': [{'fullname': u'\u041e\u0445\u0440\u0430\u043d\u0430 \u0422\u0440\u0443\u0434\u0430 3', 'shortname': u'\u041e\u0422', 'id': 3}, {'fullname': u'\u0413\u0440\u0430\u0436\u0434\u0430\u043d\u0441\u043a\u0430\u044f \u0437\u0430\u0449\u0438\u0442\u0430 2', 'shortname': u'\u0413\u0417', 'id': 2}, {'fullname': u'\u0422\u0435\u043e\u0440\u0438\u044f \u0420\u0430\u0441\u043f\u043e\u0437\u043d\u0430\u0432\u0430\u043d\u0438\u044f \u041e\u0431\u0440\u0430\u0437\u043e\u0432 4', 'shortname': u'\u0422\u0420\u041e', 'id': 4}], 'lang': 'ru', 'country': 'UA', 'idnumber': '', 'profileimageurlsmall': 'http://localhost/moodle/moodle/pluginfile.php/5/user/icon/f2', 'fullname': u'\u0422\u0430\u0442\u044c\u044f\u043d\u0430 \u041c\u0430\u0440\u043a\u0438\u043d\u0430'}]
a5[0] {'mailformat': 1, 'timezone': '99', 'lastaccess': 1356028976, 'id': 2.0, 'city': u'\u041e\u0434\u0435\u0441\u0441\u0430', 'confirmed': 1.0, 'firstaccess': 1347542739, 'descriptionformat': 1, 'theme': '', 'department': '', 'email': 'ystritsa@mail.ru', 'username': 'admin', 'description': '', 'firstname': u'\u0422\u0430\u0442\u044c\u044f\u043d\u0430', 'lastname': u'\u041c\u0430\u0440\u043a\u0438\u043d\u0430', 'auth': 'manual', 'profileimageurl': 'http://localhost/moodle/moodle/pluginfile.php/5/user/icon/f1', 'enrolledcourses': [{'fullname': u'\u041e\u0445\u0440\u0430\u043d\u0430 \u0422\u0440\u0443\u0434\u0430 3', 'shortname': u'\u041e\u0422', 'id': 3}, {'fullname': u'\u0413\u0440\u0430\u0436\u0434\u0430\u043d\u0441\u043a\u0430\u044f \u0437\u0430\u0449\u0438\u0442\u0430 2', 'shortname': u'\u0413\u0417', 'id': 2}, {'fullname': u'\u0422\u0435\u043e\u0440\u0438\u044f \u0420\u0430\u0441\u043f\u043e\u0437\u043d\u0430\u0432\u0430\u043d\u0438\u044f \u041e\u0431\u0440\u0430\u0437\u043e\u0432 4', 'shortname': u'\u0422\u0420\u041e', 'id': 4}], 'lang': 'ru', 'country': 'UA', 'idnumber': '', 'profileimageurlsmall': 'http://localhost/moodle/moodle/pluginfile.php/5/user/icon/f2', 'fullname': u'\u0422\u0430\u0442\u044c\u044f\u043d\u0430 \u041c\u0430\u0440\u043a\u0438\u043d\u0430'}
a5[0]["enrolledcourses"] [{'fullname': u'\u041e\u0445\u0440\u0430\u043d\u0430 \u0422\u0440\u0443\u0434\u0430 3', 'shortname': u'\u041e\u0422', 'id': 3}, {'fullname': u'\u0413\u0440\u0430\u0436\u0434\u0430\u043d\u0441\u043a\u0430\u044f \u0437\u0430\u0449\u0438\u0442\u0430 2', 'shortname': u'\u0413\u0417', 'id': 2}, {'fullname': u'\u0422\u0435\u043e\u0440\u0438\u044f \u0420\u0430\u0441\u043f\u043e\u0437\u043d\u0430\u0432\u0430\u043d\u0438\u044f \u041e\u0431\u0440\u0430\u0437\u043e\u0432 4', 'shortname': u'\u0422\u0420\u041e', 'id': 4}]
вот то что выдало.
я ввела айди пользователя-2. думаю оно ни на что не влияет если ввести другое. ключи одинаковые
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