textview = gtk.TextView(buffer=None)
textview.set_buffer(buffer)
buffer = textview.get_buffer()
textview.set_editable(setting)
setting = textview.get_editable()
textview.set_cursor_visible(setting)
textview.set_wrap_mode(wrap_mode)
其中,wrap_mode如下:
gtk.WRAP_NONE
gtk.WRAP_CHAR
gtk.WRAP_WORD
textview.set_justification(justification)
justification = textview.get_justification()或如下:
gtk.JUSTIFY_LEFT
gtk.JUSTIFY_RIGHT
gtk.JUSTIFY_CENTER
=============
如:
textview.set_left_margin(left_margin)
left_margin = textview.get_left_margin()
textview.set_right_margin(right_margin)
right_margin = textview.get_right_margin()
textview.set_indent(indent)
indent = textview.get_indent()
textview.set_pixels_above_lines(pixels_above_line)
pixels_above_line = textview.get_pixels_above_lines()
textview.set_pixels_below_lines(pixels_below_line)
pixels_below_line = textview.get_pixels_below_lines()
textview.set_pixels_inside_wrap(pixels_inside_wrap)
pixels_inside_wrap = textview.get_pixels_inside_wrap()
textview.set_tabs(tabs)
tabs = textview.get_tabs()
#!/usr/bin/env python # example textview-basic.py import pygtk pygtk.require('2.0') import gtk class TextViewExample: def toggle_editable(self, checkbutton, textview): textview.set_editable(checkbutton.get_active()) def toggle_cursor_visible(self, checkbutton, textview): textview.set_cursor_visible(checkbutton.get_active()) def toggle_left_margin(self, checkbutton, textview): if checkbutton.get_active(): textview.set_left_margin(50) else: textview.set_left_margin(0) def toggle_right_margin(self, checkbutton, textview): if checkbutton.get_active(): textview.set_right_margin(50) else: textview.set_right_margin(0) def new_wrap_mode(self, radiobutton, textview, val): if radiobutton.get_active(): textview.set_wrap_mode(val) def new_justification(self, radiobutton, textview, val): if radiobutton.get_active(): textview.set_justification(val) def close_application(self, widget): gtk.main_quit() def __init__(self): window = gtk.Window(gtk.WINDOW_TOPLEVEL) window.set_resizable(True) window.connect("destroy", self.close_application) window.set_title("TextView Widget Basic Example") window.set_border_width(0) box1 = gtk.VBox(False, 0) window.add(box1) box1.show() box2 = gtk.VBox(False, 10) box2.set_border_width(10) box1.pack_start(box2, True, True, 0) box2.show() sw = gtk.ScrolledWindow() sw.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) textview = gtk.TextView() textbuffer = textview.get_buffer() sw.add(textview) sw.show() textview.show() box2.pack_start(sw) # Load the file textview-basic.py into the text window infile = open("test.py", "r") if infile: string = infile.read() infile.close() textbuffer.set_text(string) hbox = gtk.HButtonBox() box2.pack_start(hbox, False, False, 0) hbox.show() vbox = gtk.VBox() vbox.show() hbox.pack_start(vbox, False, False, 0) # check button to toggle editable mode check = gtk.CheckButton("Editable") vbox.pack_start(check, False, False, 0) check.connect("toggled", self.toggle_editable, textview) check.set_active(True) check.show() # check button to toggle cursor visiblity check = gtk.CheckButton("Cursor Visible") vbox.pack_start(check, False, False, 0) check.connect("toggled", self.toggle_cursor_visible, textview) check.set_active(True) check.show() # check button to toggle left margin check = gtk.CheckButton("Left Margin") vbox.pack_start(check, False, False, 0) check.connect("toggled", self.toggle_left_margin, textview) check.set_active(False) check.show() # check button to toggle right margin check = gtk.CheckButton("Right Margin") vbox.pack_start(check, False, False, 0) check.connect("toggled", self.toggle_right_margin, textview) check.set_active(False) check.show() # radio buttons to specify wrap mode vbox = gtk.VBox() vbox.show() hbox.pack_start(vbox, False, False, 0) radio = gtk.RadioButton(None, "WRAP__NONE") vbox.pack_start(radio, False, True, 0) radio.connect("toggled", self.new_wrap_mode, textview, gtk.WRAP_NONE) radio.set_active(True) radio.show() radio = gtk.RadioButton(radio, "WRAP__CHAR") vbox.pack_start(radio, False, True, 0) radio.connect("toggled", self.new_wrap_mode, textview, gtk.WRAP_CHAR) radio.show() radio = gtk.RadioButton(radio, "WRAP__WORD") vbox.pack_start(radio, False, True, 0) radio.show() # radio buttons to specify justification vbox = gtk.VBox() vbox.show() hbox.pack_start(vbox, False, False, 0) radio = gtk.RadioButton(None, "JUSTIFY__LEFT") vbox.pack_start(radio, False, True, 0) radio.connect("toggled", self.new_justification, textview, gtk.JUSTIFY_LEFT) radio.set_active(True) radio.show() radio = gtk.RadioButton(radio, "JUSTIFY__RIGHT") vbox.pack_start(radio, False, True, 0) radio.connect("toggled", self.new_justification, textview, gtk.JUSTIFY_RIGHT) radio.show() radio = gtk.RadioButton(radio, "JUSTIFY__CENTER") vbox.pack_start(radio, False, True, 0) radio.connect("toggled", self.new_justification, textview, gtk.JUSTIFY_CENTER) radio.show() separator = gtk.HSeparator() box1.pack_start(separator, False, True, 0) separator.show() box2 = gtk.VBox(False, 10) box2.set_border_width(10) box1.pack_start(box2, False, True, 0) box2.show() button = gtk.Button("close") button.connect_object("clicked", gtk.Widget.destroy,window) box2.pack_start(button, True, True, 0) button.set_flags(gtk.CAN_DEFAULT) button.grab_default() button.show() window.show() def main(): gtk.main() return 0 if __name__ == "__main__": TextViewExample() main()