Найти - Пользователи
Полная версия: xlrd xlutils gtk.TextView()
Начало » GUI » xlrd xlutils gtk.TextView()
1
dugar
Есть код:
# -*- coding: utf-8 -*-
import gtk
from xlutils.copy import copy
from xlrd import open_workbook

def b_click (b):
print text.get_buffer().insert_at_cursor(sheet.cell_value(0,0))
w = gtk.Window(gtk.WINDOW_TOPLEVEL)
w.set_size_request(300, 200)
w.set_border_width(10)
w.connect("destroy", quit)
b = gtk.Button("View")
b.connect('clicked', b_click)
b.show()
text = gtk.TextView()
buffer = gtk.TextBuffer()
text.set_justification(gtk.JUSTIFY_CENTER)
text.set_wrap_mode(gtk.WRAP_WORD_CHAR)

rb = open_workbook('7.xls')
sheet = rb.sheet_by_index(0)

t = gtk.Table(5, 5, True)
t.attach(b, 1, 2, 3, 5)
t.attach(text, 0, 5, 0, 3)
w.add(t)
t.show()
w.show_all()

gtk.main()
Ошибка:
TypeError: GtkTextBuffer.insert_at_cursor() argument 1 must be string or read-only buffer, not float
Подскажите почему так? Что то я смысл понять не могу.
Puppy
 print text.get_buffer().insert_at_cursor(sheet.cell_value(0,0))
А что делаете с помощью этой строки.. ? толи печатаете, толи вставляете значение в поле. ;)) нужно делать чтото одно.
dugar
Puppy
 print text.get_buffer().insert_at_cursor(sheet.cell_value(0,0))
А что делаете с помощью этой строки.. ? толи печатаете, толи вставляете значение в поле. ;)) нужно делать чтото одно.
А на пальцах объяснишь?
PooH
dugar
А на пальцах объяснишь?
sheet.cell_value(0,0) - возвращает float для данной ячейки
insert_at_cursor - хочет аргументом строку
надо привести к строке, хотя бы так str(sheet.cell_value(0,0))
dugar
sheet.cell_value(0,0) - возвращает float для данной ячейки
insert_at_cursor - хочет аргументом строку
Спасибо за разъяснение!
dugar
Продолжу тему, чтобы не плодить новые :)
Код тот же что и был сверху + приведение к str
Содержимое ячейки выводится в TextView(), далее происходит редактирование и теперь нужно сохранить обратно в ячейку. Как сохранить произвольное значение ясно. Вопрос: как занести содержимое TextView() в TextBuffer() (или всетаки Clipboard?) Пробовал использовать .get_start_iter() и .get_bounds(), но никак не могу понять принцип указания TextIter! Или есть другие варианты?
Спасибо.
dugar
Продолжу тему, чтобы не плодить новые :)
Код тот же что и был сверху + приведение к str
Содержимое ячейки выводится в TextView(), далее происходит редактирование и теперь нужно сохранить обратно в ячейку. Как сохранить произвольное значение ясно. Вопрос: как занести содержимое TextView() в TextBuffer() (или всетаки Clipboard?) Пробовал использовать .get_start_iter() и .get_bounds(), но никак не могу понять принцип указания TextIter! Или есть другие варианты?
Спасибо.
dugar
Вопрос снят. Решение:
def b_click1 (b):
ptext=text_from_clipboard()
wb.get_sheet(0).write(0,0,ptext)
os.remove('1.xls')
wb.save('1.xls')
def text_from_clipboard():
clipboard=gtk.Clipboard(display=gtk.gdk.display_get_default(), selection="CLIPBOARD")
start, end = buffer.get_bounds()
buffer.select_range(start, end)
ptext=text.get_buffer().copy_clipboard(clipboard)
ptext=clipboard.wait_for_text()
clipboard.store()
return ptext
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