问题标签 [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 投票
0 回答
8 浏览

python-3.x - 在 gtk4 中将 PIL.Image 与 Gtk.Picture/Gtk.Image 相互转换

我在 PIL(low) 中进行 RGBA 图像处理,并希望在 gtk4 应用程序中显示生成的图像。为此,我需要一个无缝的PIL.Image<--> Gtk.Picture/Gtk.Image转换器。我想不惜一切代价避免使用临时文件。我在这里这里找到了有用的提示,但想知道 gtk4 中是否有更方便的东西?

0 投票
1 回答
53 浏览

c - 我应该如何设置以使用 GTK4 进行开发?

我正在运行 Ubuntu 21.10 并已安装build-essentialGnome libgtk-4-devBuilder 作为 IDE。我从一个基本教程开始,#include <gtk/gtk.h>但它给出了错误:

我在某处读到它应该在/usr/include/但当我查看时发现它在/usr/include/gtk-4.0/gtk/gtk.h

设置我的系统以使默认包含行工作的最佳方法是什么?我阅读了https://askubuntu.com/questions/1374329/how-to-compile-a-gtk4-application-in-ubuntu-21-10但他的解决方法是安装我已经完成的 libgtk-4-dev。我想创建一个从/usr/include/gtk-4.0/gtk/gtk.h/usr/include/的符号链接,但这似乎是一个我不应该下去的兔子洞。我还没开始就被卡住了!任何帮助表示赞赏。

0 投票
1 回答
37 浏览

python - 如何将 gtk4 PopoverMenu 附加到父小部件?

这应该是显而易见的,但我似乎无法弄清楚。如果我构建一个 Gtk.PopoverMenu:

我不知道如何将它附加到父小部件(在我的情况下是 ListBox 项)。API 文档说“Popovers 已附加到父小部件”,但似乎没有将其附加到父小部件的相关方法。尝试popup.popup()导致警告“在不在顶级窗口内的小部件上调用 gtk_widget_realize() 不会很好地工作。小部件必须在顶级容器内才能实现它们”,以及随后的段错误。

0 投票
1 回答
33 浏览

rust - 在rust和gtk4中,为什么gtk::Label不满足gtk::Widget?

我正在尝试使用 gtk4 绑定来学习 rust,并决定尝试ListStore作为ListBox. 为了绑定模型,Widget需要返回的函数,但我需要一个Label. 为什么Label继承Widget(实现IsA<Widget>)的不满足Widget类型?

错误:

完整代码:

0 投票
0 回答
12 浏览

python - Gtk4 Video 只播放音频

我正在使用 Gtk4 的Video小部件播放“动物园里的我”视频。它被保存为 mp4 文件。这是我的代码:

当我运行它并按下播放时,只有音频播放。除了控件,我能看到的只有黑色背景。此外,单击窗口中间的大播放按钮不起作用 - 只有底部的控件似乎已启用。

当我使用mpv.

0 投票
0 回答
3 浏览

css - 使用 CSS 提供程序的 GTK4 小部件自定义无法始终如一地工作

我一直在构建小型“原理证明”程序来了解 GTK3,现在 GTK4 的可用性有限,我也一直在尝试了解这个版本。在尝试迁移到 GTK4 时,我采用了我为 GTK3 编写的程序,该程序使用 CSS 提供程序显示两个具有不同属性的进度条,并在 GTK4 下重建它。当我运行 GTK4 版本的程序时,程序中的 CSS 覆盖将被忽略,除非我将 CSS 提供程序上下文引入到进度条之一的显示级别。但这会导致两个进度条都表现出相同的行为,而不是每个进度条都有独特的行为。作为进一步的测试,我为标签小部件添加了 CSS 提供程序和上下文,并且覆盖工作。所以 GTK4 中的一些 CSS 覆盖可以像以前一样工作,但有些则不能。就好像某些 CSS 提供程序覆盖在显示级别被忽略了。查看有关优先级的文档(例如 GTK_STYLE_PROVIDER_PRIORITY_APPLICATION)并测试各种优先级常量并没有什么不同。

在这个叙述中显示代码的内容会太长,所以我已经将 GTK3 和 GTK4 版本的代码上传到我的 Github 存储库以及一个“pdf”文件,直观地说明了 GTK3 和 GTK4 之间的不同行为。如果您想自己查看和测试代码,链接是:

https://github.com/cschuls/GTK4_Mystery

我认为可以使用“id#”属性在显示级别添加特定于小部件的 CSS 自定义,但是当这种做法适用于 GTK3 时,这似乎只会增加不必要的复杂性。提前感谢您的任何答案和建议。

问候,

克雷格