raku - Raku Native 调用 gtk-clipboard-request-text?
问题描述
你会如何用 Raku/Perl6 的 Native Call 来调用这个库?
https://developer.gnome.org/gtk3/stable/gtk3-Clipboards.html#gtk-clipboard-request-text
void
gtk_clipboard_request_text (GtkClipboard *clipboard,
GtkClipboardTextReceivedFunc callback,
gpointer user_data);
非常感谢,-T
编辑:这个问题是如何调用函数。不要对失败的呼叫进行故障排除。此时没有编写任何代码。
解决方案
以下似乎有效:
use v6;
use NativeCall;
constant GdkAtom := uint64;
constant GDK_NONE = 0x0;
sub gtk_init(Pointer $argc, Pointer $argv) is native('gtk-3') { * };
sub gdk_display_get_default() returns Pointer is native('gdk-3') { * };
sub gtk_clipboard_get_for_display(Pointer $display, GdkAtom $selection)
returns Pointer is native('gtk-3') { * };
sub gtk_clipboard_request_text(
Pointer $clipboard,
&callback ( Pointer $clipbrd, Str $text, Pointer $data),
Pointer $user_data) is native('gtk-3') { * };
sub gtk_main() is native('gtk-3') { * };
sub gtk_main_quit() is native('gtk-3') { * };
gtk_init(Pointer, Pointer); # Pass NULL for arguments
my $display = gdk_display_get_default();
my $clipboard = gtk_clipboard_get_for_display( $display, GDK_NONE );
my $callback = my sub (Pointer $clipboard, Str $text, Pointer $data) {
say "In callback: Text = $text";
gtk_main_quit();
}
gtk_clipboard_request_text( $clipboard, &$callback, Pointer );
gtk_main();
这将打印系统默认剪贴板上当前的文本。
推荐阅读
- python - 如何使用 python 解决 DNN(深度神经网络)模型中的 ValueError?
- javascript - 再次按下输入/按钮后重置 div/警报?
- c# - 如何在 ListView xamarin 上返回已处理的集合
- javascript - 如果从扩展反序列化为具体对象
- pytorch - 如何通过torch.nn.conv1d更简单地将张量(形状:[a,b,c])卷积到张量(形状:[1,b,1])?
- mongodb - 如何仅在 mongodb 中查找所有嵌入式属性匹配的嵌入式事件?
- ios - 更新到 iOS15 后的内部应用程序:需要更新应用程序
- java - Java双向链表节点设置
- javascript - 从数组中选择数据并在段落中显示另一个数组中的数据 - javascript
- javascript - 谷歌云功能没有收到来自客户端的输入