[英]scroll TextView in ScrolledWindow so that cursor is visible in pyGTK2
[英]adding a textview to scrolledwindow in pygtk
我試圖在pygtk中的滾動窗口中添加一些文本。 textview包裝在一個簡單的盒子容器中。 我在網上搜索,發現我需要先添加一個視口才能使其正常工作,但我不斷收到以下錯誤消息:
Gtk-CRITICAL **: gtk_viewport_add: assertion 'gtk_bin_get_child (bin) == NULL' failed
這是我的代碼:
container = Gtk.Box()
container.set_name('text_container')
tv = Gtk.TextView()
text_input = self.builder.get_object('entry1')
text = text_input.get_text()
text_input.set_text('')
tv.get_buffer().set_text(text)
container.pack_start(tv,True,True,0)
self.viewport.add(container)
我已遵循此方法,因為我已經在“ glade”文件的滾動窗口中添加了視口。 歡迎任何幫助或在線資源。
錯過了第一輪的真正原因。
問題是您要向視口中添加多個控件(只能有一個控件)。
gtk_viewport_add: assertion 'gtk_bin_get_child (bin) == NULL' failed
轉換為:“該視口沒有子代的斷言是錯誤的”,因為您已經添加了一些東西。
您需要將所有容器打包到另一個容器中, 然后將其添加到視口中。
它與HBox / VBox一起使用,這是唯一的問題。 但是,既然我已經使用了add_with_viewport()方法,那么我應該在哪個對象上調用show()方法,以便顯示我添加的小部件? 這是最終的代碼:-
container = Gtk.VBox()
container.set_name('text_container')
tv = Gtk.TextView()
text_input = self.builder.get_object('entry1')
text = text_input.get_text()
if text:
text_input.set_text('')
tv.get_buffer().set_text(text)
container.pack_start(tv,True,True,0)
self.sw.add_with_viewport(container)
因為沒有沒有變量引用剛添加的視口,所以我應該在哪個對象上調用show()方法以使小部件顯示在滾動窗口中。 我嘗試將show添加到類似container.show()
的容器中,但是沒有顯示。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.