gtk/glade可扩展工具栏
我想我有一个独特的问题 我正在尝试创建一个类似水平工具栏的小部件,它可以保存标签、按钮和其他gtk小部件。我想打包尽可能多的信息,但我也需要它为各种屏幕大小的工作 最终,我试图预测GUI将运行在更小的屏幕上,因此我想要使用的大多数小部件实际上无法安装,因为它们占用了太多的空间 但是我仍然想让用户可以使用它们,所以我想我可以有两到三行小部件。把最常用的放在最上面 最后,我希望用户能够根据需要在运行时添加不同的小部件(类似于您有时可以自定义某些程序中列表的标题,例如windows资源管理器的文件列表) 现在,我想要一些小部件占用大量空间,如果它是可用的,并且有些是固定大小的。这样,空间得到了最佳利用。如果一个人在一个大的LCD显示器上运行应用程序,他们可以打包更多的小部件,如果没有,他们可以删除它们 基本上,它有点像流量控制,但不同。我使用了一个水平的盒子,但很快就意识到了它的局限性。主要原因是我无法将窗口的大小调整为小于总宽度的大小,这可能会使应用程序太大而无法安装在较小的窗口上 我正在尽量减少工作量,因为我不想重新实施这个计划。另外,我想我可以为不同的设备创建不同的glade接口。。。可能是最简单的事情。如果用户真的想定制界面,他们可以手动定制。它需要额外的编程工作,因为我必须担心丢失的小部件和所有这些,但应该少担心 不过我宁愿有一个更有用的方法。有什么想法吗 组成我的“工具栏”的小部件是图像、按钮、标签、绘图区域和一些其他标准gtk小部件。一些需要占用尽可能多的水平空间,而另一些则需要固定大小。所有的垂直尺寸都相同 某些元素将具有固定的位置,例如最右和最左,并且不会改变 我应该更清楚一点gtk/glade可扩展工具栏,gtk,gtk3,Gtk,Gtk3,我想我有一个独特的问题 我正在尝试创建一个类似水平工具栏的小部件,它可以保存标签、按钮和其他gtk小部件。我想打包尽可能多的信息,但我也需要它为各种屏幕大小的工作 最终,我试图预测GUI将运行在更小的屏幕上,因此我想要使用的大多数小部件实际上无法安装,因为它们占用了太多的空间 但是我仍然想让用户可以使用它们,所以我想我可以有两到三行小部件。把最常用的放在最上面 最后,我希望用户能够根据需要在运行时添加不同的小部件(类似于您有时可以自定义某些程序中列表的标题,例如windows资源管理器的文件列表
X Y Z * * * * A B C
* * * * * * * * * *
XYZ和ABC将是固定的小部件,必须分别显示在最左侧和最右侧
- 是我想要配置的小部件。有些需要扩展以使用它们可以使用的最大大小(并与其他也需要扩展的用户共享),有些则是固定的。最终,用户应该能够添加和删除*小部件,而不会出现问题,并且如果需要,可以对它们进行重新排序。它们添加了许多应该向下流动的组件,以便始终显示xyz和abc小部件
第一个和最后一个工具栏将有<代码>显示箭头< /代码>属性设置为<代码> false <代码>,而中间的一个(s)将其设置为<代码> true。
使用这样的设置,中间的工具栏会收缩,并显示一个箭头,允许用户选择打包的小部件。 GtkToolbar/Gtk.Toolbar允许使用各种小部件,甚至自定义小部件
下面是一个简单的例子:<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.20.0 -->
<interface>
<requires lib="gtk+" version="3.20"/>
<object class="GtkWindow">
<property name="can_focus">False</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
<object class="GtkToolbar">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="show_arrow">False</property>
<child>
<object class="GtkToolButton">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">__glade_unnamed_7</property>
<property name="use_underline">True</property>
<property name="stock_id">gtk-about</property>
</object>
<packing>
<property name="expand">False</property>
<property name="homogeneous">True</property>
</packing>
</child>
<child>
<object class="GtkToolButton">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">__glade_unnamed_8</property>
<property name="use_underline">True</property>
<property name="stock_id">gtk-add</property>
</object>
<packing>
<property name="expand">False</property>
<property name="homogeneous">True</property>
</packing>
</child>
<child>
<object class="GtkToolButton">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">__glade_unnamed_9</property>
<property name="use_underline">True</property>
<property name="stock_id">gtk-go-back</property>
</object>
<packing>
<property name="expand">False</property>
<property name="homogeneous">True</property>
</packing>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkToolbar" id="10297 927030981 28.68">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
<object class="GtkToolButton">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">buttonOrWidget</property>
<property name="use_underline">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="homogeneous">True</property>
</packing>
</child>
<child>
<object class="GtkToolButton">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">AnotherButton</property>
<property name="use_underline">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="homogeneous">True</property>
</packing>
</child>
<child>
<object class="GtkToolButton">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">YetAnotherButton</property>
<property name="use_underline">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="homogeneous">True</property>
</packing>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkToolbar">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="show_arrow">False</property>
<child>
<object class="GtkToolButton">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">__glade_unnamed_10</property>
<property name="use_underline">True</property>
<property name="stock_id">gtk-justify-center</property>
</object>
<packing>
<property name="expand">False</property>
<property name="homogeneous">True</property>
</packing>
</child>
<child>
<object class="GtkToolButton">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">__glade_unnamed_11</property>
<property name="use_underline">True</property>
<property name="stock_id">gtk-clear</property>
</object>
<packing>
<property name="expand">False</property>
<property name="homogeneous">True</property>
</packing>
</child>
<child>
<object class="GtkToolButton">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">__glade_unnamed_12</property>
<property name="use_underline">True</property>
<property name="stock_id">gtk-connect</property>
</object>
<packing>
<property name="expand">False</property>
<property name="homogeneous">True</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkImage">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="stock">gtk-missing-image</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
</child>
</object>
</interface>
假的
真的
假的
垂直的
真的
假的
真的
假的
假的
真的
假的
__沼泽地未命名沼泽地7
真的
gtk关于
假的
真的
真的
假的
__沼泽地未命名沼泽地8
真的
gtk添加
假的
真的
真的
假的
__沼泽地未命名沼泽地9
真的
gtk返回
假的
真的
真的
真的
0
真的
假的
真的
假的
按钮控件
真的
假的
真的
真的
假的
另一个按钮
真的
假的
真的
真的
假的
YetAnotherButton
真的
假的
真的
真的
真的
1.
真的
假的
假的
真的
假的
__沼泽地未命名的沼泽地10
真的
gtk校准中心