4kpt
Янв. 4, 2013 17:45:45
Конечно. Ведь вы выполняете для вывода в шелле
print '|'+i+' |'+prob,
print p[int(c_)][i]
А для вывода на экран (в новое окно) передаете вего лишь
Ystritsa
Янв. 4, 2013 17:47:22
Exception in Tkinter callback
Traceback (most recent call last):
File “C:\Python27\lib\lib-tk\Tkinter.py”, line 1410, in __call__
return self.func(*args)
File “C:\Python27\Копия 1.py”, line 106, in <lambda>
but.bind(“<Button-1>”, lambda e: get_course(c, win7, ms))
File “C:\Python27\Копия 1.py”, line 79, in get_course
ms = ms + ‘|’ + i + ‘ |’ + prob + p + “\n”
TypeError: cannot concatenate ‘str’ and ‘int’ objects
4kpt
Янв. 4, 2013 18:04:47
Решение проблемы (попытка соединить целое число и строку):
ms = ms +'|' + str(i) + ' |' + str(prob) + str(p) + '\n'
Можне применить спецификаторы форматирования
ms = ms +"| %s | %s %s \n" %(i, prob, p)
Или метод format()
ms = ms +"| {0} | {1} {2} \n".format(i, prob, p)
Ystritsa
Янв. 4, 2013 18:29:33
хорошо хоть одна проблема решена-уже выводит в окне информ.но
|visible | [{'visible': 1, ‘id’: 1, ‘maxbytes’: 0, ‘categoryid’:0…………………и тд
|id | [{'visible': 1, ‘id’: 1, ‘maxbytes’: 0, ‘categoryid’:0…………………и тд
|maxbytes | [{'visible': 1, ‘id’: 1, ‘maxbytes’: 0, ‘categoryid’:0…………………и тд
|categoryid | [{'visible': 1, ‘id’: 1, ‘maxbytes’: 0, ‘categoryid’:0…………………и тд
|showreports | [{'visible': 1, ‘id’: 1, ‘maxbytes’: 0, ‘categoryid’:0…………………и тд
|startdate | [{'visible': 1, ‘id’: 1, ‘maxbytes’: 0, ‘categoryid’:0…………………и тд
|defaultgroupingid | [{'visible': 1, ‘id’: 1, ‘maxbytes’: 0, ‘categoryid’:0…………………и тд
|summaryformat | [{'visible': 1, ‘id’: 1, ‘maxbytes’: 0, ‘categoryid’:0…………………и тд
|completionstartonenrol | [{'visible': 1, ‘id’: 1, ‘maxbytes’: 0, ‘categoryid’:0…………………и тд
|groupmode | [{'visible': 1, ‘id’: 1, ‘maxbytes’: 0, ‘categoryid’:0…………………и тд
.
.
.
.
и т.д.
т.е выводится и по горизонтали и по вертикали одно и то же(
4kpt
Янв. 4, 2013 18:43:41
Дайте новый листинг…
И дайте хотя-бы одну строку полностью.
Ystritsa
Янв. 4, 2013 19:51:44
from Tkinter import*
root = Tk()
def close(event = None):
print "try_die"
def next_window2(ms):
win1 = Toplevel()
win1.title("ОНМУ")
label2=Label(win1,text="Информация о курсе:") # метки
label2.grid(row=1,column=1)
label3=Label(win1,text="Инфо:")
label3.grid(row=3,column=2)
label3['text'] = ms
but=Button(win1,text="Закрыть", width=50, height=2, bg="white", fg="blue") # Кнопки
but.grid(row=2,column=2,padx=5,pady=5)
but.bind("<Button-1>", lambda x: win1.destroy())
print u'Операция завершена'
def get_course(c, win7, ms):
c_ = c.get()
mdl = MDL()
print mdl.conn_xmlrpc(server)
courses = ((c_),)
p = mdl.get_courses(server)
for i in p[int(c_)].keys():
stroka = len(i)
prob = ' '*(30 - stroka)
print '|'+i+' |'+prob,
print p[int(c_)][i]
# ms = ms +'|' + str(i) + ' |' + str(prob) + str(p) + '\n'
#ms = ms +"| %s | %s %s \n" %(i, prob, p)
ms = ms +"| {0} | {1} {2} \n".format(i, prob, p)
win7.destroy()
next_window2(ms)
def new6(event = None):
ms = ''
win7 = Toplevel()
win7.title("Ввод данных")
lbl1 = Label(win7, text = u"Введите номер курса")
lbl1.grid(row=1,column=0,columnspan=2)
c = Entry(win7, width="20")
c.focus_force()
c.grid(row=1,column=2,columnspan=2)
but=Button(win7,text="Получить", width=18, height=2,)
but.grid(row=2,column=2,ipadx=5,padx=10,pady=5)
but.bind("<Button-1>", lambda e: get_course(c, win7, ms))
but2=Button(win7,text="Закрыть", width=50, height=2, bg="white", fg="blue") # Кнопки
but2.grid(row=3,column=2,ipadx=5,padx=10,pady=5)
but2.bind("<Button-1>", lambda x: win7.destroy())
new6()
root.mainloop()
и это мы должны получить:
|visible | 1
|id | 4
|maxbytes | 2097152
|categoryid | 2
|showreports | 0
|startdate | 1351713600
|defaultgroupingid | 0
|summaryformat | 1
|completionstartonenrol | 0
|groupmode | 0
|numsections | 10
|showgrades | 1
|shortname | ТРО
|enablecompletion | 0
|hiddensections | 0
|format | weeks
|completionnotify | 0
|fullname | Теория Распознавания Образов 4
|lang |
|categorysortorder | 20003
|timecreated | 1351700037
|groupmodeforce | 0
|forcetheme |
|summary |
|idnumber | 4
|newsitems | 5
|timemodified | 1355138540
Ystritsa
Янв. 5, 2013 02:30:36
не,я уже пробывала такое(
File "C:\Python27\Копия 1.py", line 81, in get_course
ms = ms +"| {0} | {1} {2} \n".format(i, prob, p[int(c_)][i])
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-2: ordinal not in range(128)
в шеле доходит до |shortname | а дальше эта ошибка.
4kpt
Янв. 5, 2013 18:55:06
Попробуйте поменять строку:
ms = ms +"| {0} | {1} {2} \n".format(i, prob, p[int(c_)][i])
На строку
ms = ms +u"| {0} | {1} {2} \n".format(i, prob, p[int(c_)][i])
Ystritsa
Янв. 5, 2013 20:26:20
да,спасибо Вам,это помогло!