2
是否有函數檢查gtk.notebook中是否存在具有已定義文本的Tab?剛剛找到函數「get_menu_label_text()」,但它只是從它傳輸的子項中返回標籤的文本。檢查gtk.notebook中是否存在已定義文本的選項卡+ gtk3
只是想知道是否有已經創建的選項卡,所以我不必再次創建它。
真的很簡單,但找不到合適的解決方案。
是否有函數檢查gtk.notebook中是否存在具有已定義文本的Tab?剛剛找到函數「get_menu_label_text()」,但它只是從它傳輸的子項中返回標籤的文本。檢查gtk.notebook中是否存在已定義文本的選項卡+ gtk3
只是想知道是否有已經創建的選項卡,所以我不必再次創建它。
真的很簡單,但找不到合適的解決方案。
不知道爲什麼你需要這樣的功能,開發者應該知道什麼那張筆記本正因爲如此,就變成了「可跟蹤」。
無論如何,有一些方法,如得到的頁數與get_n_pages()
,得到了n個頁面的孩子get_nth_page()
在for循環中,並調用Gtk.Notebook get_tab_label_text(child)
方法。
另一種選擇是使用Gtk.Container foreach
方法(Gtk.Notebook繼承自Gtk.Container)並迭代所有子項並獲取標籤標籤文本並將其與搜索文本進行比較。
下,很簡單,例如創建一個兩頁的筆記本與未引用的文本標籤,然後我們只需驗證是否在筆記本選項卡的標籤存在着一些標籤。
例子:
import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk
class MyWindow(Gtk.Window):
def __init__(self):
Gtk.Window.__init__(self, title="Simple Notebook Example")
self.set_border_width(3)
self.notebook = Gtk.Notebook()
self.add(self.notebook)
self.page1 = Gtk.Box()
self.page1.set_border_width(10)
self.page1.add(Gtk.Label('This is Gtk.Notebook Page X'))
self.notebook.append_page(self.page1, Gtk.Label('Page X'))
self.page2 = Gtk.Box()
self.page2.set_border_width(10)
self.page2.add(Gtk.Label('This is Gtk.Notebook Page Y'))
self.notebook.append_page(self.page2, Gtk.Label('Page Y'))
def check_exists_tab_with_label(self, label):
self.notebook.foreach(self.check_label_for_child, label)
def check_label_for_child(self, widget, label):
if (self.notebook.get_tab_label_text(widget) == label):
print ("FOUND")
win = MyWindow()
win.connect("delete-event", Gtk.main_quit)
win.show_all()
win.check_exists_tab_with_label('Page Y')
Gtk.main()
是啊,你是對的,但我想知道是否有應該是一個簡單的解決方案。 「foreach」方法非常棒,也適用於其他許多方法,非常感謝! –