问题标签 [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.
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
gtk - 更改 GtkBuilder 生成的菜单栏中的 GtkMenuItem 标签
我有以下 XML 代码,用于通过 GtkBuilder 生成 GtkMenuBar:
当我需要在我的程序中引用它们时,菜单和子菜单都允许id
我可以在调用中使用的属性,这gtk_builder_get_object
很好用。
但是,对于item
,这样的id
属性是不可能的,即更改<item>
为<item id="myitem">
会导致错误
但是,我需要在运行时更改此菜单项的标签,并希望按照我上面描述的方式进行。我怎样才能做到这一点?
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 文档中,它声明它允许复制。
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.Menu
Glade 中定义的内容,但程序仍然崩溃,所以我现在确定问题不在于菜单为空。
出于测试目的,我用它替换了该行:
该程序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
属性所要求的引起的。
- 如果这是真的,将父级设置
GtkMenu
为GtkMenuToolButton
(箭头)的推荐方法是什么,最好在 Glade 中,但至少在代码中? - 据我所见,不可能
GtkMenu
在 Glade 中填充项目,所以我必须从代码中填充它。这是真的?
c - 使用 GtkBuilder 构建的 GUI 未发出信号“显示”?
我正在尝试通过“显示”信号的信号处理程序从 GSettings 初始化 GtkEntry 小部件。这在手动构建用户界面时按预期工作,但在使用 GtkBuilder 时无法工作。这同样适用于其他 GtkWidget 信号;GtkEntry 信号按预期工作。看起来信号永远不会发出?
window.glade:
resources - GResource、GtkBuilder 和 gettext 翻译
我正在使用 Meson(带有 glib gettext 预设)将 GtkBuilder 文件捆绑到 GResource 文件中,但我不知道如何让 gettext 识别可翻译的字符串。
我已经用属性标记了字符串,translatable
将domain
属性放在<interface>
元素上并在我的 GResource xml 和 POTFILE 中列出了文件,但是字符串没有出现在生成的 pot 中。
我在 C 语言中看到了许多项目,例如这个不使用domain
界面上的属性的项目,但无论哪种方式我都没有得到任何结果。
如何让我的可翻译 GtkBuilder 文件被识别?
gtk3 - Gtk3 Vala 应用程序中的菜单按钮
我正在尝试使用 vala 制作 Gtk3 应用程序。
我正在使用 ui 文件进行界面设计。我找不到有关如何使用 ui 文件执行此 GMenu(?) 的信息。在 vala 中有很多这样的编码示例。
如何在我的 ui 文件中添加此菜单按钮?
这是我的 ui 文件:
解决方案: 在 Jens 的帮助下找到了答案:
之后我不得不在模板底部添加一个图标 als GtkImage</template>
然后将此 GtkImage 用于 Button:
xml - 我在主窗口 UI 文件中添加了一个 gtk 小部件,但它没有显示
我正在尝试将 GtkImage 添加到我的主窗口 *.ui 文件中,该文件是使用 GNOME Builder 项目模板制作的。
但是图像没有出现在窗口中:
我检查了 GTK+ Inspector (Ctrl+Shift+D),在层次结构中看不到 GtkImage。有人知道我错过了什么吗?