gpt4 book ai didi

Raku Native 调用 gtk-clipboard-request-text?

转载 作者:行者123 更新时间:2023-12-01 04:37:23 24 4
gpt4 key购买 nike

如何使用 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();

这将打印当前在系统默认剪贴板上的文本。

关于Raku Native 调用 gtk-clipboard-request-text?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59960648/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com