问题标签 [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.
c - 我应该如何设置以使用 GTK4 进行开发?
我正在运行 Ubuntu 21.10 并已安装build-essential
Gnome libgtk-4-dev
Builder 作为 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/的符号链接,但这似乎是一个我不应该下去的兔子洞。我还没开始就被卡住了!任何帮助表示赞赏。
python - 如何将 gtk4 PopoverMenu 附加到父小部件?
这应该是显而易见的,但我似乎无法弄清楚。如果我构建一个 Gtk.PopoverMenu:
我不知道如何将它附加到父小部件(在我的情况下是 ListBox 项)。API 文档说“Popovers 已附加到父小部件”,但似乎没有将其附加到父小部件的相关方法。尝试popup.popup()
导致警告“在不在顶级窗口内的小部件上调用 gtk_widget_realize() 不会很好地工作。小部件必须在顶级容器内才能实现它们”,以及随后的段错误。
rust - 在rust和gtk4中,为什么gtk::Label不满足gtk::Widget?
我正在尝试使用 gtk4 绑定来学习 rust,并决定尝试ListStore
作为ListBox
. 为了绑定模型,Widget
需要返回的函数,但我需要一个Label
. 为什么Label
继承Widget
(实现IsA<Widget>
)的不满足Widget
类型?
错误:
完整代码:
python - Gtk4 Video 只播放音频
我正在使用 Gtk4 的Video
小部件播放“动物园里的我”视频。它被保存为 mp4 文件。这是我的代码:
当我运行它并按下播放时,只有音频播放。除了控件,我能看到的只有黑色背景。此外,单击窗口中间的大播放按钮不起作用 - 只有底部的控件似乎已启用。
当我使用mpv
.
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 时,这似乎只会增加不必要的复杂性。提前感谢您的任何答案和建议。
问候,
克雷格