问题标签 [gtk4]

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 回答
105 浏览

linux - GTK4 使用 GtkDropTarget 从 pixbuf 设置图像的问题

我正在测试一个 gtk4 小部件,它是 GtkDropTarget。我计划将拖到窗口的图像设置为窗口本身的图像。但是,一旦我拖动图像文件,就会出现错误。需要明确的是,这是 vala 中的代码:

这将编译并运行。但是一旦我将图像文件拖到窗口中,就会发生错误并且图像不显示。这是发生的事情的图片。应该发生的是,当我从文件管理器中拖动 png 文件时,拖动的图像应该是 GtkImage 中显示的图像,它是窗口的主要小部件。

在我第一次从我的电脑拖动图像文件时,出现了这个错误:

在第二次拖动时,显示如下:

我真的很感激帮助。谢谢你!

0 投票
1 回答
148 浏览

rust - 如何使用 gtk4-rs 设置 X11 窗口提示?

我正在尝试用 rust 编写一个 GTK4 应用程序,它应该符合扩展窗口管理器提示规范的部分内容,但为此我需要能够获取和设置 X11 提示。特别是,我想设置_NET_WM_WINDOW_TYPE.

如果我要按如下方式创建一个窗口,我将如何获取/设置 X11 窗口提示?

0 投票
0 回答
78 浏览

css - gtk_style_context_get_property 的 GTK4 等价物是什么?

似乎在 gtk4 中,该gtk_style_context_get_property()功能消失了:https ://developer.gnome.org/gtk4/stable/GtkStyleContext.html 。

我似乎无法在 gtk4 中找到任何功能。基本上我想获取当前主题为特定小部件类设置的边框颜色,并在我自己的自定义小部件中使用它。

0 投票
0 回答
13 浏览

file - 如何使用 GtkFileChooserWidget 选择文件

FileChooserDialog 可以选择在关闭对话框时获取 gfile。我必须做什么才能通过单击 GtkFileChooserWidget 中的文件来获取 gfile?

是否有可能当用户打开文件夹到文件时。滚动到文件或文件突出显示后,如何获取文件的 gfile。

当用户想要获取 gfile 时,我有一个按钮可以点击

我在想也许我需要调用 GtkFileChooser 函数来以某种方式选择文件,但我需要编写代码以便 GtkFileChooserWidget 告诉我选择的文件。

0 投票
1 回答
186 浏览

c - [GTK4][C] 动作应该如何与菜单项联系起来?

我正在用 C 语言使用 GTK4 制作一个应用程序。我正在尝试将某些操作与菜单项联系起来,但这些项是非活动的,即它们在出现时不可点击。我不知道解决此问题的方法,因此不胜感激。

部分代码如下。

我得到的结果如下。关闭不可点击。

在此处输入图像描述

0 投票
0 回答
27 浏览

c++ - 如何在这个 GTK4 表单中添加两个按钮?

这段代码向我展示了 xubuntu 21.04 表单,大小(400px 宽度 + 400px 高度)和一个按钮。

如何在此代码中添加两个按钮?

0 投票
1 回答
166 浏览

gtk3 - “错误:未知变量 INT64_T_TYPEDEF”介子构建:GTK+3,GTK+4.4.0,GOOBJECT INTROSPECTION 构建失败

我正在尝试使用介子构建系统构建 GTK 4.4 和 GOObject Introspection。介子构建的每一次尝试都会产生相同的错误...错误:未知变量“int64_t_typedef”。我试过的程序是 GTK 4.4、GOObject Introspection 1.68.0、GLIB 2.68.3、Pango 1.48.8。每个人都给出上述错误。我添加了 stdint.h、inttypes.h、check.h 但无济于事。如何清除此错误,即使 uint_typedef 给出相同的错误。同样在编译期间,我看到“stdint.h 中的 uintmax_t”编译:没有“inttypes.h 中的 uintmax_t”编译:没有。我知道那也不好。有什么想法可以清除这些错误吗?介子唯一会构建的是“Hello World”,仅此而已!如果没有上述错误,GTK 3 或 4 将无法构建。任何建议将不胜感激。

FWIW 在谷歌、论坛等上的所有搜索都只产生一次命中,并且遵循它的建议除了同样的错误之外什么也没完成。

GLIB_2.68.3 的 BASH_OUTPUT

关于如何处理 int64_t_typedef 的任何建议我很乐意听到。

更新:截至 08252021 将 C types.h 和 inttypes.h 替换为 C++ 标头已清除 INT64_T_TYPEDEF 和 UINT64_T_TYPEDEF 错误。我在本地拥有的 C 版本没有 INT64_T 和 UINT64_ 类型定义。所以这个谜至少被平息了。下一个错误现在是:

错误:遇到的问题:找不到 ARPA C_IN 所需的包含。这就是现在的位置。关于 ARPA 和 C_IN 的任何建议,在我的情况下是不存在的,目录 ARPA 也是如此。

任何愿意建议我全神贯注的人。

顺便说一句,我确实按照 PMOD 的建议尝试了编译器配置测试,一切看起来都很好:) 感谢您的输入!

0 投票
0 回答
237 浏览

c++ - 如何在 mac OS 11 上创建 GTK+4 应用程序?

所以,我安装gtk+4了自制软件。我创建了.C文件并写道:

我复制了“你好,世界!” 来自www.gtk.org的程序代码。我有错误:

我的机器正在使用 ARM64(Apple Silicon M1)。我认为,因此这是错误,但我该如何解决呢?

// 也许我的英语不是很完美,但我希望你能理解我。//也许问题很奇怪,但请帮助我。

0 投票
0 回答
68 浏览

c++ - 是否可以“加入” gtk-event-loop

gtk4 删除了以下的阻塞行为GtkDialogsint res = gtk_dialog_run(GTK_DIALOG(dialog));

建议的替代方法是使对话框模态并连接"response"信号。但这有一个很大的缺点:一些旧代码库具有线性和确定性的 CFG。仅更改调用和处理所有对话框的方式会导致这样一个事实,即如果在外部范围中预期对话的处理,则离开范围后代码可能是错误的。

为了避免这种情况,我使用了std::promisestd::future但这会阻止 gtk-event 循环:/。

我提出的解决方案是,“加入” gtk-event-loop,直到结果准备好。这将具有两种方法的优点:“不要停止世界”/处理事件循环保持线性 CFG。但它有一个缺点,即在递归调用连接时可能导致堆栈溢出或饥饿。

建议/搜索解决方案的伪代码:

我的第一个不工作的方法:

有加入事件循环的功能吗?
如果不; 有没有实现类似的好选择?

编辑:在文档中找到了一种有前途的方法:查看g_main_context_iteration.

0 投票
1 回答
337 浏览

c - 使用 GTK4 在 C 中创建一个简单的菜单栏、菜单和菜单项

我使用 GTK4 创建了一个简单的 C 应用程序,它有一个窗口、一个菜单栏、一个菜单和一个菜单项。我希望菜单读取“文件”,文件下方的菜单项读取“连接”。我如何编码菜单和菜单栏,以便我有一个菜单文件->连接?