使用 glade 在每个选项卡上设置一个带有选项卡和多个 gtk 输入字段的笔记本

Posted

技术标签:

【中文标题】使用 glade 在每个选项卡上设置一个带有选项卡和多个 gtk 输入字段的笔记本【英文标题】:Setup a notebook with tabs and multiple gtk input fields on each tab using glade 【发布时间】:2019-04-19 07:53:06 【问题描述】:

我是一位经验丰富的 Fortran 程序员,多年来一直使用内部 UI 包,其概念与 glade (3.22) 类似。我对glade完全陌生,所以由于缺乏理解,我一定是在做坏事。我的林间空地设置仅使用 gtkWindow 和带有一些子选项卡的 gtkNotebook。我要做的就是将多个字段(主要是框和标签)添加到覆盖整个窗口区域的选项卡中。然后当我切换标签时,我需要看到一个完全不同的页面,它有自己的字段,也使用完整的窗口区域。仅添加一个 gtkButton 会占用当前选项卡的整个页面,我无法向该页面添加另一个 gtkbutton。如何在同一页面上添加另一个按钮?如果这是一个愚蠢的问题,是否有任何好的视频可以演示如何做到这一点? :)

【问题讨论】:

【参考方案1】:

您可以使用“常规”中的“编辑页面”选项来编辑林间空地中的每个页面。

您可以更改此值,并逐页编辑页面,例如添加一些框/网格,然后添加按钮/标签。

要添加新页面,请右键单击一个页面并选择“在之后插入页面”或“在之前插入页面”

【讨论】:

【参考方案2】:
    从那里下载空地文件:https://github.com/f4iteightiz/UWR_simulator 编辑/查看(这是一个笔记本,有几个输入/按钮在每个选项卡中都不同)。 您将找不到满足您需求的答案

【讨论】:

感谢 gtknerd 对我如何为我的特定目的进入 gtk+ 进行更详细的讨论。现在我需要简单地“进入它”,毫无疑问,稍后会有更多 Q :)【参考方案3】:

您必须将GtkBox 或GtkGrid 添加到您的笔记本选项卡。 here 你可以稍微了解一下盒子和网格之间的区别。当然还有很多其他的containers 可以用来打包你的小部件(在你的情况下是一个按钮)。 Gtk3 只允许每个笔记本页面有一个小部件,因此您必须添加一个多子小部件才能在每个页面上打包多个小部件。

【讨论】:

出色的开始。 Gtkgrid 为我做了它但是,我想知道这对我来说是否是最好的方式。我肯定需要一个多子小部件,但查看 doco,哪些是多子小部件并不明显。但这让我意识到了别的东西。我习惯于通过 Row,Col 值执行所有操作的内部 UI,其中每个 Row/Col“框”是使用某些默认字体的单个字符的宽度/高度。所以我使用 100 x 20(它模拟了我试图转换为 Gtk+3 的 GUI)创建了网格,这使得 glade 运行非常缓慢:(但它可以工作:) 我开始认为我正在处理的工作很庞大。我想上传一些图片,以便有人可以看到我正在尝试做的事情。我喜欢 Gtk+3 背后的概念,尤其是 gtkbuilder,因为我使用的内部软件具有相同的原理,但使用一个 ASCII 文件来描述所有按钮、标签等以及它们的位置。 GUI 是在运行时生成的,因此文件可以在不重新编译主程序的情况下更改菜单。我希望编写一些代码,将我的菜单文件转换为 Gtk+3 所需的 XML ui 文件。我可以与某人更详细地讨论吗?

以上是关于使用 glade 在每个选项卡上设置一个带有选项卡和多个 gtk 输入字段的笔记本的主要内容,如果未能解决你的问题,请参考以下文章

使用 Glade 时在 GTK-Notebook 中添加选项卡

如何设置 ActionBar 样式,选定选项卡上的选项卡背景

TabLayout - 如何仅在选项卡上加载片段

如何从另一个选项卡上的场景切换或弹出选项卡式应用程序中第一个选项卡的第二个场景?

QTabWidget 在选项卡上设置掩码(不是选项卡内容)

我正在尝试使用 ngFor 在引导选项卡上循环,