LINUX.ORG.RU

[pygtk] Получить текст с label

 


0

0

Доброго времени суток LOR. Проблема в следующем: на форме есть gtk.NoteBook с несколькими табами. Пытаюсь получить текс label расположенном на текущем табе:

tab_label_checker = notebook.get_tab_label_text(notebook.get_nth_page(notebook.get_current_page()))
Но получаю почему-то None. В чем может быть проблема? Спасибо

★

Нашел в хэлпе: get_tab_label_text: returnvalue: the text of the tab label, or None if the tab label widget is not a gtk.Label. У меня действительно не gtk.Label. Кто сталкивался как в таком случае можно вытянуть текст label?

shk ★
() автор топика
Ответ на: комментарий от yltsrc

Дело в том что на табе распологается gtk.HBox, на котором в свою очередь распологаются gtk.Label и gtk.Button для закрытия самого таба

shk ★
() автор топика
Ответ на: комментарий от k_andy

Возвращает все равно gtk.HBox. Вот не пойму как от сюда вытянуть текст.

shk ★
() автор топика

На gtk писал только на с, но разницы нет, думаю. GtkHBox является потомком GtkContainer, из которого, собственно, можно вытащить все виджеты, которые в нём содержаться. Ну или натравить на них функцию, которая найдёт среди них метку и выдерет из неё текст. Документация по Gtk, конечно, сильно далека от идеала, но такие элементарные вещи там находятся на раз.

Gvidon ★★★★
()

Можно вообще сделать класс, производный от HBox, который будет использоваться для табов в Notebook. Тогда вообще всё будет красиво и логично (нет, у меня нет ооп головного мозга)

Gvidon ★★★★
()
Ответ на: комментарий от Gvidon

GtkHBox является потомком GtkContainer, из которого, собственно, можно вытащить все виджеты, которые в нём содержаться

Хорошая мысль буду копать в этом направлении. спасибо.

shk ★
() автор топика
Ответ на: комментарий от Gvidon

Решено

Gvidon, еще раз спасибо вам и всем кто принимал участие в теме. Решение выглядит так (может кому пригодится):

hbox = self.get_tab_label(self.get_nth_page(self.get_current_page()))

label_of_tab = hbox.get_children()
label_of_tab[0].get_text()
shk ★
() автор топика
Вы не можете добавлять комментарии в эту тему: топик перемещен в архив.