1

いくつかの歴史と同じように、私は約 5 年間 Python を使用しており、ついに Glade で最初の GUI アプリを作成することにしました。

私は基本的なものから始めました。ボタン、Gtkentry、および gtktextview があります。これが私が達成しようとしていることです。

ボタンを押すと、gtk.entry からテキストを取得し、それを gtk.textview に追加します

現在、私が抱えている主な問題は、ウィジェットの使用方法に関する降下ドキュメントが見つからないことです。インターネットで見つけた例は、ビルダーのバリエーションと、廃止されたとしか思えないグレード プロジェクトの別のバリエーションの両方を参照しています。 . builder が python/glade コラボレーションにどのように適合するかを学びたいと思います。

これまでの私のコード:

import gtk
import pygtk

def onDeleteWindow(self, *args):
    Gtk.main_quit(*args)

def hello(button):
    text_buffer.set_text(txtinput.get_text())



builder = gtk.Builder()
builder.add_from_file("dagui.glade")

handlers = {
    "onDeleteWindow": gtk.main_quit,
    "buttondown": hello
}
builder.connect_signals(handlers)

textarea = builder.get_object("textview1")
window = builder.get_object("window1")
txtinput = builder.get_object("entry1")
window.show_all()

gtk.main()
window.show_all()

gtk.main()

これですべてが機能し、ボタンを押すとgtk.entryにあるものが印刷されますが、テキストビューに追加する方法が見つかりません。また、ドキュメントを見つけるために何を検索すればよいかわかりません。「gtk builder gtk.textview」と「pygtk build gtk.textview append」およびその他すべてのバリエーションを試しました。

テキスト ビューに単純にテキストを追加する方法を知っていれば素晴らしいことですが、これらのウィジェットの使用方法を平易な英語で入手できる場所へのリンクがあれば、私は永遠に満足できます。

4

3 に答える 3

1

から、 textviewのプロパティを使用しgtk.TextViewて を取得する必要があります。gtk.TextBufferbuffer

textbuffer から、メソッドを使用してバッファの末尾を指すイテレータを取得する必要がありますget_end_iter。そのイテレータとテキストがあれば、テキストバッファのinsertメソッドを使用できます。

編集:ファイルがないdagui.gladeため、テストできませんでしたが、次のコードを参照してください。

def hello(button):
    global textarea, txtinput
    buffer = textarea.get_property('buffer')
    i = buffer.get_end_iter()
    buffer.insert(i, txtinput.get_text())
    # clear the input window after appending the text
    txtinput.set_text('')
于 2012-09-30T06:45:34.720 に答える
0

私はそれを理解しました.gtk.textview.get_bufferが実際にバッファIDを設定し、textview.set_text(buffer)が必要なすべてであることがわかりました。

これが完全に機能するコードです。空き地はボタン、エントリ、およびテキストビューだけです。

#!/usr/bin/python

import os
import sys
import gtk
import pygtk

def onDeleteWindow(self, *args):
    Gtk.main_quit(*args)

def hello(button):
    textbuffer = textarea.get_buffer()
    textbuffer.set_text(txtinput.get_text())



builder = gtk.Builder()
builder.add_from_file("dagui.glade")

handlers = {
    "onDeleteWindow": gtk.main_quit,
    "buttondown": hello
}
builder.connect_signals(handlers)

textarea = builder.get_object("textview1")
window = builder.get_object("window1")
txtinput = builder.get_object("entry1")
window.show_all()


gtk.main()
于 2012-09-30T14:41:47.693 に答える
-1

これを使用してテキストを追加します:

textarea.set_text('whatever you want')

これは、pango マークアップ ( http://goo.gl/94Pkk )を追加するためのものです。

textarea.set_markup('<span size="large>Example</span>')

ドキュメントは次のとおりです: http://python-gtk-3-tutorial.readthedocs.org/en/latest/index.html

于 2012-09-30T06:35:56.890 に答える