LINUX.ORG.RU

Один файл glade для несколько элементов. Или как правильно делать?

 ,


0

2

У меня есть созданный в Glade интерфейс с виджетом Gtk.Notebook. В этот notebook требуется добавлять неопределенное количество вкладок со сложной разметкой (кнопки, надписи, таблица). Описывать весь интерфейс программно трудоемко, да и неправильно на мой взгляд задавать в коде отступы, цвета и т. п. Сейчас примерно делаю так:

tab.glade:

<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.18.3 -->
<interface>
    <requires lib="gtk+" version="3.0"/>
    <object class="GtkBox" id="box">
        <!-- 7 КБ вырезано -->
    </object>
</interface>

Код:

def get_id(elem_id, order_id):
    return 'order_{0}_{1}'.format(order_id, elem_id)


def add_from_file(builder, filename, order_id):
    prefix = get_id('', order_id)
    xml_str = get_file_contents(filename)
    xml_str = xml_str.replace('id="', 'id="{0}'.format(prefix))
    builder.add_from_string(xml_str)


builder = Gtk.Builder()
builder.add_from_file('main_window.glade')
for order_id in orders:
    add_from_file(builder, 'tab.glade', order_id)

Это говнокод? Какие есть человеческие способы?

Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.