首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我可以将gtkbuilder应用程序加载到“父”gtkbuilder框架中吗?

我可以将gtkbuilder应用程序加载到“父”gtkbuilder框架中吗?
EN

Stack Overflow用户
提问于 2010-09-23 08:49:31
回答 1查看 473关注 0票数 2

我正在使用Glade-3构建一套Gtk应用程序。

这些应用程序应该有一个通用的外观和感觉,我们决定了一个所有应用程序都将共享的通用“框架”,它包括菜单栏、工具栏、状态栏、垂直面板-以及中间的空间,由每个应用程序填充。

这个常见的“框架”是使用Glade-3设计的,并以Gtkbuilder格式保存。

我想做的是使用Glade-3为每个应用程序设计“中间部分”,然后以某种方式将其加载到父框架中。

这样的事情有可能吗?我不介意在Gtk中重写父框架,因为它相当简单--主要的内容将是我们肯定想要使用Glade设计的应用程序特定的细节。

我还没有看到以某种方式获得读取Gtkbuilder文件并将其粘贴到父小部件中的结果。

我使用的是Perl/Gtk2。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-09-23 21:28:22

您可以使用GtkBuilder来完成所有这些工作。例如,给定以下UI文件:

代码语言:javascript
运行
复制
<!-- parent.ui -->
<interface>
    <object class='GtkWindow' id='window'/>  <!-- See #1 -->
</interface>

<!-- child1.ui -->
<interface>
    <object class='GtkLabel' id='content'>  <!-- See #2 -->
        <property name='label'>Hello World</property>
    </object>
</interface>

<!-- child2.ui -->
<interface>
    <object class='GtkLabel' id='content'>  <!-- See #2 -->
        <property name='label'>Hi there</property>
    </object>
</interface>

您可以使用以下代码构建两个窗口(在Python中,对不起;我不熟悉Perl绑定)。

代码语言:javascript
运行
复制
def build(child_filename):
    builder = gtk.Builder()
    builder.add_from_file('parent.ui')
    builder.add_from_file(child_filename)
    window = builder.get_object('window')  #1
    content = builder.get_object('content')  #2
    window.add(content)
    window.show_all()
    return window

window1 = build('child1.ui')
window2 = build('child2.ui')

如果需要,您还可以构建同一窗口的多个副本。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3774675

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档