[英]GDK4: No display available in terminal application
我正在嘗試使用 GDK4 將一些文本復制到終端應用程序中的剪貼板。 據我了解,這是使用從 GdKDisplay 獲得的剪貼板 object 完成的。 但是,似乎沒有可用的顯示。 這是一個MWE:
#include <gdk/gdk.h>
int main(int argc, char** argv) {
GdkDisplayManager* manager = gdk_display_manager_get();
printf("DisplayManager pointer is not null: %i\n", manager);
GSList* list = gdk_display_manager_list_displays(manager);
printf("Number of available displays: %i\n", g_slist_length(list));
g_slist_free(list);
GdkDisplay* display = gdk_display_get_default();
printf("Default display: %i\n", display);
return 0;
}
output 是
DisplayManager pointer is not null: 95547392
Number of available displays: 0
Default display: 0
因此,當我嘗試使用gdk_display_get_clipboard()
抓取剪貼板時,我得到一個斷言錯誤: Gdk-CRITICAL **: gdk_display_get_clipboard: assertion 'GDK_IS_DISPLAY (display)' failed
有一個終端已知的顯示,命令echo $DISPLAY
輸出:0
。 我需要初始化 GDK 庫嗎? GDK3中曾經有一個init() function,但是在GDK4中好像消失了。
gdk_init()
確實被刪除了,但是您可以只使用gtk_init()
來確保執行必要的 GDK 初始化。 之后,在調用gdk_display_get_default()
時不應再有 NULL 指針(除非您的設置有問題)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.