我正在尝试将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 的主要功能?
相关分类