我想在最后将文本插入文本缓冲区...我使用这个: gtk.TextBuffer.insert_at_cursor
但如果我点击文本,光标会出现新的...
我怎么能在最后添加文字?
我有一个TextView和一个TextBuffer与它相关联.
当用户按下Ctrl + b时,我希望文本开始以粗体键入,直到用户再次按Ctrl + b.
我正在尝试自己的方法,这些方法无效,然后我在邮件列表中找到了这篇文章:http: //www.daa.com.au/pipermail/pygtk/2009-April/016951.html
和我一样的问题,有人给出的解决方案
您的应用程序必须处理管理TextBuffer中标记所需的簿记.当文本插入光标时,您的应用程序必须捕获指示正在插入文本的信号,然后将所需的标记应用于插入的文本.我认为这可以通过捕获TextBuffer"insert-text"信号(使用connect_after()来确保文本已经插入)然后将标记应用于回调中的文本来完成.
所以我尝试了这个.这是我的textbuffer.py
import gtk
import pango
class TextBuffer(gtk.TextBuffer):
def __init__(self):
gtk.TextBuffer.__init__(self)
self.connect_after('insert-text', self.text_inserted)
# A list to hold our active tags
self.tags_on = []
# Our Bold tag.
self.tag_bold = self.create_tag("bold", weight=pango.WEIGHT_BOLD)
def get_iter_position(self):
return self.get_iter_at_mark(self.get_insert())
def make_bold(self, text):
''' add "bold" to our active tags list '''
self.tags_on.append('bold')
def text_inserted(self, buffer, iter, text, length):
# A text was inserted in the buffer. If there are ny tags in …Run Code Online (Sandbox Code Playgroud)