代码之家  ›  专栏  ›  技术社区  ›  danivdwerf

GtkMessageDialog未显示

  •  0
  • danivdwerf  · 技术社区  · 6 年前

    我正在用GTK+3框架创建一个c++应用程序。每当有更新可用时,我都试图显示弹出窗口。我已经看过了 API ,但我无法解决我的问题。我没有收到任何错误/警告/日志,但弹出窗口不会显示。我已经搜索了很多,但只能找到使用相同代码的人,但我的弹出窗口就是不会出现。我的代码如下:

    public: static void showPopup(GtkWidget* parentWindow, GtkMessageType type, GtkButtonsType buttons, const char* message)
    {
        GtkWindow* parent = GTK_WINDOW(parentWindow);
        GtkDialogFlags flags = GTK_DIALOG_MODAL;
        GtkWidget* dialog = gtk_message_dialog_new(parent, flags, type, buttons, "%s", message);
        gtk_dialog_run(GTK_DIALOG(dialog));
        gtk_widget_destroy(dialog);
    }
    

    这是GUI类中的静态meber函数。此函数的调用方式如下:

    public: void onUpdateResponse(int code, const char* data)
    {
        std::cout<<data<<'\n';
        GUI::showPopup(this->window, GTK_MESSAGE_INFO, GTK_BUTTONS_OK_CANCEL, data);
    }
    

    我的应用程序确实会“暂停”等待gtk_对话框运行的响应,但我看不到弹出窗口。

    有人能帮我解决吗?

    0 回复  |  直到 6 年前