问题标签 [gtkbuilder]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
373 浏览

f# - GtkBuilder F# Object reference not set to an instance of an object

I have a problem with making the mainwindow on my simple app run, The error given is that - Object reference not set to an instance of an object.

this happens when the app is getting debugged and the error occurs at handler.window1.ShowAll()

I did find some code online which hints at adding some member code as in member this.Whatever() = window1 however i have no idea if this is relevent to my code, or where to put it.

i am happy for any help you can give me as i have been trying all day to get this working in many ways and simply cannot.

Here is the glade.xml

0 投票
1 回答
484 浏览

gtk - 更改 GtkBuilder 生成的菜单栏中的 GtkMenuItem 标签

我有以下 XML 代码,用于通过 GtkBuilder 生成 GtkMenuBar:

当我需要在我的程序中引用它们时,菜单和子菜单都允许id我可以在调用中使用的属性,这gtk_builder_get_object很好用。

但是,对于item,这样的id属性是不可能的,即更改<item><item id="myitem">会导致错误

但是,我需要在运行时更改此菜单项的标签,并希望按照我上面描述的方式进行。我怎样才能做到这一点?

0 投票
1 回答
47 浏览

c++ - 继承的共享指针未能 get_widget

我在 C++ 中使用基类来模仿 Java 中的接口,这样我就不必为我创建的每个不同的类重复一些代码或创建对象。

基本上它包含一个 GtkBuilder 的 RefPtr,我将在整个应用程序中使用它。

但是我发现每当我从继承的类访问它时程序就会终止。

所以这个变量builder保存了指向 gtkbuilder 的指针。

builder->get_widget(widgetname, somewidgetpointer)用来检查我的程序是否运行正常。

在Point BI可以builder2->使用本地创建的指针,程序继续运行。

然后程序进入 A 点,在这里我调用了超级构造函数,在 A 点,我可以同时执行builder2->this->builder->,它们分别是传递给构造函数的指针和受保护的变量,程序继续运行。

但是,当我到达 C 点时,它只能访问继承的受保护指针,当我这样做时this->builder->get_widget,程序停止,没有任何输出或错误抛出。

我为此挠头。是不是我做错了什么?

  • 继承的类不能访问继承的保护指针指向的地址?
  • Refpointer 清理了自己并且 gtk 构建器的生命周期结束了?
  • 地址更改为从一个班级到另一个班级?

任何帮助将不胜感激。或者,如果我一直在做错事,请指出。

更新 我做了一些进一步的检查,if(builder)在 C 点返回 false 而不是 A 点,这就是导致问题的原因。但是我不应该已经将构建器变量存储在超类构造函数中吗?

Glib 文档中,它声明它允许复制。

0 投票
1 回答
1733 浏览

python-2.7 - 如何用一些 GtkMenuItem 填充 GtkMenu 并在 Glade 中设置其父级?

在 aGtk.Toolbar我有一个Gtk.MenuToolButton带有箭头的我想将 a 关联到Gtk.Menu,最好是在 Glade 中构建。

我的代码是这样的:

其中self.menuToolButtonCalculate是通过Gtk.Builder.get_object方法获得的,self 是 的子类的一个实例Gtk.Builder

加载窗口时,该程序在终端中显示了一些Gtk/Gdk-CRITICAL警告,当我单击箭头时,程序崩溃了。在显示窗口之前,我还在 Python 代码中填充了Gtk.MenuGlade 中定义的内容,但程序仍然崩溃,所以我现在确定问题不在于菜单为空。

出于测试目的,我用它替换了该行:

该程序Gtk/Gdk-CRITICAL在加载窗口时仍会在终端中显示警告,但是当我单击箭头时程序不会崩溃,它会在箭头附近显示一个空的上下文菜单。

这些Gtk/Gdk-CRITICAL警告是:

我使用安装了最新更新的 Windows 10 Pro x64、安装了最新更新的 MSYS2 以及 MSYS2、x86 版本:Python 2.7.13、Glade 3.20 和 GTK+ 3.22。

更新:

简化的测试代码奇怪地完美运行,在终端中没有崩溃或警告:

例子1.glade

例子1.py

原来的程序太大了,不能全部放在这里。请告诉我您希望我发布原始代码中的哪些详细信息,以便您可以帮助我。

更新 2:

在主程序的 Glade .ui 文件中,我定义了 GtkMenu:

如果我删除最后两个元素(导致程序行为发生变化的元素是tearoff_state

当我单击Glade 文件GtkMenuToolButton中声明的 箭头时,程序不会崩溃并且会打开一个空菜单。GtkMenu

所以问题只是由GtkMenu在 Glade 中创建的没有父级的并且tearoff_state属性所要求的引起的。

  1. 如果这是真的,将父级设置GtkMenuGtkMenuToolButton(箭头)的推荐方法是什么,最好在 Glade 中,但至少在代码中?
  2. 据我所见,不可能GtkMenu在 Glade 中填充项目,所以我必须从代​​码中填充它。这是真的?
0 投票
1 回答
209 浏览

python-2.7 - 如何在 Glade 中设置 GtkLinkBut​​ton 的标签?

我知道如何在 Python 或 C 中做到这一点,但我无法在 Glade 中做到这一点:

这是 Glade 中 GtkLinkBut​​ton 类型的所有可用特定属性的屏幕截图:

Glade 属性编辑器面板截图

如果可以通过使用“操作名称”字段以某种方式实现,请给我一个例子。如果可以使用文本编辑器编辑 Glade .ui 文件,那总比没有好。

0 投票
1 回答
287 浏览

c - 使用 GtkBuilder 构建的 GUI 未发出信号“显示”?

我正在尝试通过“显示”信号的信号处理程序从 GSettings 初始化 GtkEntry 小部件。这在手动构建用户界面时按预期工作,但在使用 GtkBuilder 时无法工作。这同样适用于其他 GtkWidget 信号;GtkEntry 信号按预期工作。看起来信号永远不会发出?

window.glade:

0 投票
1 回答
285 浏览

gtk3 - 确保 GtkWindow 适合所有孩子

我如何确保我GtkWindow适合所有孩子?

如您所见,目前我GtkWindow可以缩小到孩子不适合的程度。

在此处输入图像描述

我一直在浏览文档,但似乎甚至没有办法对最小尺寸进行硬编码,更不用说让它动态地取决于我孩子的尺寸了。

UI 是用 XML 编写的,并使用GtkBuilder.

0 投票
0 回答
271 浏览

resources - GResource、GtkBuilder 和 gettext 翻译

我正在使用 Meson(带有 glib gettext 预设)将 GtkBuilder 文件捆绑到 GResource 文件中,但我不知道如何让 gettext 识别可翻译的字符串。

我已经用属性标记了字符串,translatabledomain属性放在<interface>元素上并在我的 GResource xml 和 POTFILE 中列出了文件,但是字符串没有出现在生成的 pot 中。

我在 C 语言中看到了许多项目,例如这个不使用domain界面上的属性的项目,但无论哪种方式我都没有得到任何结果。

如何让我的可翻译 GtkBuilder 文件被识别?

0 投票
1 回答
638 浏览

gtk3 - Gtk3 Vala 应用程序中的菜单按钮

我正在尝试使用 vala 制作 Gtk3 应用程序。

我正在使用 ui 文件进行界面设计。我找不到有关如何使用 ui 文件执行此 GMenu(?) 的信息。在 vala 中有很多这样的编码示例。

如何在我的 ui 文件中添加此菜单按钮?

你可以在github.com上找到完整的代码

我想要这种类型的菜单用于我的应用程序:我 预期菜单按钮的屏幕截图 唯一能做的就是: 实际菜单按钮的屏幕截图

这是我的 ui 文件:

解决方案: 在 Jens 的帮助下找到了答案:

之后我不得不在模板底部添加一个图标 als GtkImage</template>

然后将此 GtkImage 用于 Button:

0 投票
2 回答
803 浏览

xml - 我在主窗口 UI 文件中添加了一个 gtk 小部件,但它没有显示

我正在尝试将 GtkImage 添加到我的主窗口 *.ui 文件中,该文件是使用 GNOME Builder 项目模板制作的。

但是图像没有出现在窗口中: 你好世界窗口

我检查了 GTK+ Inspector (Ctrl+Shift+D),在层次结构中看不到 GtkImage。有人知道我错过了什么吗?