gpt4 book ai didi

c - 如何在 GTK 中使用剪贴板?

转载 作者:行者123 更新时间:2023-11-30 14:46:32 25 4
gpt4 key购买 nike

我怎样才能使用 GtkClipboard 、读取和写入剪贴板?作为示例,请向我展示如何获取当前剪贴板内容并将其打印到控制台。

我尝试通过此方法获取并打印剪贴板中当前的内容,但它不起作用:

GtkClipboard *clip = gtk_clipboard_get(GDK_SELECTION_PRIMARY);
gtk_clipboard_request_text(clip, (GtkClipboardTextReceivedFunc)print_clip, NULL);

一切都会编译,没有任何警告,但永远不会到达 print_clip() 函数。也许我应该使用另一个函数,例如 gtk_clipboard_wait_for_text() ?请帮帮我,我该怎么办?

如果重要的话,我使用 Linux/X11。另外,我使用 GTK+3,而不是 GTK+2 或其他版本。

<小时/>好的,我有一个有效的示例:

#include <gtk/gtk.h>

void clipboard_callback(GtkClipboard *clip, const gchar *text, gpointer data)
{
g_print("Now we're in clipboard_callback function.\n");
gtk_main_quit();
}

int main(int argc, char **argv)
{
gtk_init(&argc, &argv);
GtkClipboard *clip = gtk_clipboard_get(GDK_SELECTION_CLIPBOARD);
gtk_clipboard_request_text(clip, clipboard_callback, NULL);
gtk_main();
return 0;
}

我现在唯一需要的是以某种方式退出clipboard_callback()而不调用gtk_main_quit(),因为这会关闭应用程序。

最佳答案

人们确实应该使用 gtk_clipboard_wait_for_text() 而不是 gtk_clipboard_request_text()

例如,应该这样做:

GtkClipboard *clip = gtk_clipboard_get(GDK_SELECTION_CLIPBOARD);
gchar *text = gtk_clipboard_wait_for_text(clip);

关于c - 如何在 GTK 中使用剪贴板?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52204996/

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