检查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()

以上是 检查gtk.notebook中是否存在已定义文本的选项卡+ gtk3 的全部内容, 来源链接: utcz.com/qa/266615.html

回到顶部