簡體   English   中英

GDK4:終端應用程序中沒有可用的顯示

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM