如何从 NSApplication 事件循环中启动 Go 的主要功能?

我正在尝试将Sparkle添加到我的 Qt(Go 绑定)应用程序中,以使其可以自动更新。

问题:运行最新版本时没有弹出对话框

这是代码:https://github.com/sparkle-project/Sparkle/blob/master/Sparkle/SUUIBasedUpdateDriver.m#L104

作者指出的原因是NSAlert需要运行循环才能工作。

我找到了一些文档:

因此,据我了解,我们必须NSApplication在创建QApplication.

void NSApplicationMain(int argc, char *argv[]) {

    [NSApplication sharedApplication];

    [NSBundle loadNibNamed:@"myMain" owner:NSApp];

    [NSApp run];

}

My Go 的主要功能是这样的:


func main() {

    widgets.NewQApplication(len(os.Args), os.Args)


    ...

    action := widgets.NewQMenuBar(nil).AddMenu2("").AddAction("Check for Updates...")

    // http://doc.qt.io/qt-5/qaction.html#MenuRole-enum

    action.SetMenuRole(widgets.QAction__ApplicationSpecificRole)

    action.ConnectTriggered(func(bool) { sparkle_checkUpdates() })

    ...


    widgets.QApplication_Exec()

}

问题:如何从NSApplicationMain事件循环中启动 Go 的主要功能?


波斯汪
浏览 46回答 0
0回答
打开App,查看更多内容
随时随地看视频慕课网APP