gtk-rs应用程序发出警告“您的应用程序未实现g_application_activate,并且没有连接到'activate'信号的处理程序”

问题描述

每次启动一个简单的GTK应用程序时,都会收到此警告:

GLib-GIO-WARNING **: HH:MM:SS.XXX: Your application does not implement g_application_activate() and has no handlers connected to the 'activate' signal.  It should do one of these.

这是应用的完整代码

extern crate glib;
extern crate gio;
extern crate gtk;

use gtk::prelude::*;
use gio::prelude::*;
use std::env::args;

fn build_ui(application: &gtk::Application) {
    let builder = gtk::Builder::from_string(include_str!("ui.glade"));
    let win: gtk::applicationwindow = builder.get_object("application_window").expect("err build win");
    win.set_application(Some(application));
    win.set_title("Test");
    win.set_position(gtk::WindowPosition::Center);
    win.show_all();
}

// Init app
fn main() {
    if gtk::init().is_err() {
        println!("Failed to initialize GTK.");
        return;
    }

    let application = gtk::Application::new(
        Some("com.github.gtk-rs.examples.cairotest"),Default::default(),)
    .expect("Initialization Failed...");

    application.connect_startup(move |app| {
        build_ui(app);
    });

    application.run(&args().collect::<Vec<_>>());
}

我做错什么了吗? 是因为有林间空地建造者吗? 我尝试使用this method,但它使事情变得更糟:该应用仍然可以编译,但是输出引发了另一个严重错误

GLib-GIO-CRITICAL **: HH:MM:SS.XXX: g_application_activate: assertion 'application->priv->is_registered' Failed

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)