Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何使用QT为MacOS/X桌面的全局菜单创建Evernote类小部件?_C++_Macos_Qt_User Interface - Fatal编程技术网

C++ 如何使用QT为MacOS/X桌面的全局菜单创建Evernote类小部件?

C++ 如何使用QT为MacOS/X桌面的全局菜单创建Evernote类小部件?,c++,macos,qt,user-interface,C++,Macos,Qt,User Interface,如何创建位于MacOS顶部的应用程序,类似于下图。您可以看到Evernote大象图标 我不想使用xcode——因为我的应用程序已经内置了QT,它有很好的GUI,现在我想添加一些类似于Evernote的扩展功能。如果我点击一头大象,它会打开一个对话框来写笔记。在我的例子中,这是一个简单的事件,比如开/关按钮 我已经尝试并创建了GUI小部件应用程序,但如何创建一个像Evernote应用程序一样驻留的应用程序呢 如果您已经有一个为Qt编写的程序,那么您可以在MacOS/X下编译和运行它,就像在(您现在

如何创建位于MacOS顶部的应用程序,类似于下图。您可以看到
Evernote大象图标

我不想使用
xcode
——因为我的应用程序已经内置了QT,它有很好的GUI,现在我想添加一些类似于Evernote的扩展功能。如果我点击一头大象,它会打开一个对话框来写笔记。在我的例子中,这是一个简单的事件,比如开/关按钮


我已经尝试并创建了GUI小部件应用程序,但如何创建一个像Evernote应用程序一样驻留的应用程序呢

如果您已经有一个为Qt编写的程序,那么您可以在MacOS/X下编译和运行它,就像在(您现在使用的任何操作系统)下编译它一样。您需要安装XCODEL,因为XCODE包含编译C++ QT程序所需的C++编译器(CLAN),但如果不想使用XCIDE IDE,则不必使用XCIDE IDE。相反,您可以在MacOS/X下使用QtCreator IDE,或者只需打开一个终端窗口,在基于Qt的程序的.pro文件所在的目录中执行“qmake;make”,然后从命令行以这种方式构建它


另一方面,如果您的问题实际上是关于如何将图标添加到MacOS/X桌面的全局菜单,那么我认为Qt没有用于此的API,因此您需要使用MacOS/X的一个本机API。这可能需要学习一些Objective-C(或者Objective-C++,如果你愿意的话),但是将Objective-C/C++集成到你的Qt应用程序中只需要一点工作就可以了。

像图中那样的自定义弹出菜单可以在Qt中以多种方式完成

QML
是使用您正在寻找的定制样式制作菜单的最现代方式

将适当的标志应用于窗口/小部件,使其显示为弹出窗口

同样的效果也可以在
QWidgets
中实现,但是需要更多的代码,而且可能需要更长的时间。您要查找的标志将在Qt窗口标志和/或Qt小部件属性下找到

不同操作系统的Qt的库存样式主要涉及标题栏、状态栏、按钮、下拉列表等

Mac的基本样式可在此处找到:

一旦你进入一个定制的弹出窗口,你必须自己绘制所有的内容。。。但是Qt中的原生绘图元素足够友好,可以让你看起来像你想要做的那样

甚至有一些工具可以直接从Photoshop或Gimp导出到QML


希望对您有所帮助。

您正在寻找一个托盘图标。Qt在中实现它

进一步信息

  • 你可以看一看这本书

  • 在这个问题上存在许多问题


查看并查看。“要求我们推荐或查找书籍、工具、软件库、教程或其他非现场资源的问题与堆栈溢出无关,因为它们往往会吸引自以为是的答案和垃圾邮件。相反,请描述问题以及迄今为止为解决此问题所做的工作。”@pvg-我认为这不是垃圾邮件,也不是意见问题,因为我在问如何制作一款类似Evernote的应用程序?到目前为止,我只知道如何创建简单的GUI,但不知道如何创建复杂的GUI,如我在这里提到的GUI。没有任何东西表明你的问题是垃圾邮件。请阅读链接文档。这类问题只是不在主题上,文档解释了原因。我改进了这个问题,我认为现在它更有意义了@你可能在找一个新的工作。