标签: gtk-textbuffer

Python Gtk TextView末尾插入文本

我想在最后将文本插入文本缓冲区...我使用这个: gtk.TextBuffer.insert_at_cursor

但如果我点击文本,光标会出现新的...

我怎么能在最后添加文字?

python gtk textview gtk-textbuffer

8
推荐指数
1
解决办法
4575
查看次数

在pyGTK的TextView/TextBuffer中插入粗体字符

我有一个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)

python pygtk textview gtk-textbuffer

4
推荐指数
1
解决办法
2171
查看次数

标签 统计

gtk-textbuffer ×2

python ×2

textview ×2

gtk ×1

pygtk ×1