问题标签 [gtk-rs]
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.
rust - 在 GTK4 中制作一个可点击的框
我怎样才能使一个gtk4::Box
可点击的gtk_rs
?
在 GTK3 中,似乎使用 anEventBox
是实现此目的的方法,但是在 GTK4 中:
停止使用
GtkEventBox
GtkEventBox
不再需要并已被删除。所有小部件都接收所有事件。
https://docs.gtk.org/gtk4/migrating-3to4.html#stop-using-gtkeventbox
所以现在似乎点击处理程序应该直接附加到小部件。但是,我找不到有关如何执行此操作的任何明确文档或示例。
如果有人能给我一个将点击侦听器附加到 a 的示例,将gtk4::Box
不胜感激。
rust - .pack_start() 不适用于 gtk-rs Box
gtk4::Box
在使用 gtk-rs 的以下代码中,我不断收到“hbox.pack_start”的错误“由于不满足特征边界而无法调用方法”。我已经在其他 gtk-rs 应用程序和文档中看到了这种方法,所以我不确定我做错了什么。
这是完整的错误消息:
rust - 如何在 gtk4-rs 中使用鼠标按钮事件?
我正在尝试使用 Rust 和 gtk4-rs 在我的应用程序中的 TreeView 上捕获右键单击事件。我没有看到鼠标按钮事件的特定 EventController。我确实看到了 EventControllers 用于键盘按下和运动事件之类的事情。我最终使用了 EventControllerLegacy 并且只检测了闭包内的事件类型,但我觉得我在这里遗漏了一些东西。还有其他方法我应该从鼠标获取按钮按下事件吗?这是我的代码:
我认为我遗漏了什么的原因是EventControllerLegacy的文档说明了以下内容:
EventControllerLegacy 是一个事件控制器,提供对事件流的原始访问。只有在其他事件控制器或手势都没有完成这项工作时,才应将其用作最后的手段。
我正在使用 Rust 1.56.0 和 gtk4-rs 0.4.2
谢谢
rust - 如何在 Rust 中获取 gtk::RadioButton 的选定状态?
在 Python 的 Gtk 模块中,您可以使用Gtk.RadioButton.get_active()
来获取单选按钮是否被选中。但是,我在 Rust 的等价物gtk::RadioButton
. 当我尝试使用RadioButton.active()
时,我收到一条错误消息,指出不满足gtk::RadioButton
. 我已经尝试在文档中搜索get(
、active
、checked
、state
和selected
,但无济于事。这应该是不言自明的,所以我认为我不需要提供代码示例。有谁知道如何RadioButton
在 Rust 中选择(最好不使用回调)?
rust - Gtk-rs:在 glib::timeout_add 中设置标签
我是 rust 新手,并且对 GTK 中的对象/变量的范围有疑问。我有以下代码,它有效,但我需要在 GTK 窗口中将标签设置为变量的文本watch_text
。这是代码:
问题是在评论部分,无论我如何尝试访问或克隆 imp.watch,我都会收到错误消息NonNull<GObject> cannot be sent between threads safely
。如何将标签文本设置为watch_text
?
rust - 如何在 GTK-rs 的回调中访问状态和模板子项
gtk-rs 的教程和示例确实不完整且参差不齐,因此我试图拼凑如何在按钮回调中修改应用程序的状态以及某些子元素的状态。所以,简而言之,我有:
在ObjectImpl
这个结构中,我有一个constructed
方法,它调用父构造的方法,然后调用setup_callbacks
父对象,它Window
实际上是 GTK 继承层次结构的一部分:
我需要同时访问结构的state
和headerbar
属性imp::Window
,并修改 的属性project_path
并state
调用set_subtitle
. headerbar
我已经尝试了各种变体,使用变量和Rc
s 的所有组合,RefCells
我似乎无法克服这个错误(或它的一些排列):
必须有一种方法来完成我需要完成的工作,如果您无法在按钮单击回调中修改任何其他界面对象,您的 UI 将受到严重阻碍,但我不知道如何。
rust - 在rust和gtk4中,为什么gtk::Label不满足gtk::Widget?
我正在尝试使用 gtk4 绑定来学习 rust,并决定尝试ListStore
作为ListBox
. 为了绑定模型,Widget
需要返回的函数,但我需要一个Label
. 为什么Label
继承Widget
(实现IsA<Widget>
)的不满足Widget
类型?
错误:
完整代码: