Cómo crear una aplicación que se mantenga en la parte superior de MacOS, algo similar a la imagen de abajo. Puedes ver el Evernote elephant icon. ingrese la descripción de la imagen aquí

No quiero usar xcode, porque mi aplicación ya está construida en QT, tiene una GUI agradable, ahora quería agregar una función extendida algo similar a Evernote. Si hago clic en un elefante, se abrirá un cuadro de diálogo para escribir notas. En mi caso, es un evento simple como botones de encendido / apagado. ingrese la descripción de la imagen aquí

He intentado y creado aplicaciones de widgets GUI, pero ¿cómo hacer una que resida como la aplicación Evernote?

-1
ajayramesh 25 jun. 2017 a las 03:35

3 respuestas

La mejor respuesta

Si ya tiene un programa escrito para Qt, puede compilarlo y ejecutarlo en MacOS / X de la misma manera que lo haría (cualquier sistema operativo que esté usando ahora). Deberá instalar Xcode porque Xcode incluye el compilador de C ++ (clang) que necesitará para compilar su programa Qt, pero no tiene que usar el IDE de Xcode si no lo desea. Por el contrario, puede usar el IDE de QtCreator en MacOS / X, o simplemente puede abrir una ventana de Terminal y hacer un "qmake; make" en el directorio donde está el archivo .pro de su programa basado en Qt, y construirlo desde el línea de comando de esa manera.

Si, por otro lado, su pregunta es en realidad sobre cómo agregar un icono al menú global de un escritorio MacOS / X, entonces no creo que Qt tenga una API para eso, por lo que deberá desplegar utilizando una de las API nativas de MacOS / X. Eso probablemente implicará aprender un poco de Objective-C (u Objective-C ++, si lo prefiere), pero integrar un poco de Objective-C / C ++ en su aplicación Qt es factible con un poco de trabajo.

0
Jeremy Friesner 25 jun. 2017 a las 01:14

Un menú emergente personalizado como el que se muestra en la imagen se puede hacer de varias maneras en Qt.

QML es la forma más moderna de hacer el menú con el estilo personalizado que estás buscando.

Aplique las banderas apropiadas a la ventana / widget para que aparezca como una ventana emergente.

Los mismos efectos también se pueden hacer en QWidgets, pero requiere más código y probablemente tomará más tiempo. Las banderas que está buscando se encontrarán en Qt Window Flags y / o en Qt Widget Attributes.

Los estilos de stock para Qt para diferentes sistemas operativos tratan principalmente con barras de título, barras de estado, botones, menús desplegables, etc.

Los estilos base para Mac se pueden encontrar aquí:

http://doc.qt.io/qt-5/gallery-macintosh.html

Una vez que vaya a una ventana emergente personalizada, debe dibujarla usted mismo ... pero los elementos de dibujo nativos en Qt son lo suficientemente amigables y le dan esa apariencia que está tratando de hacer.

Incluso hay algunas herramientas para exportar desde Photoshop o Gimp directamente a QML.

http://doc.qt.io/qtcreator/quick-export-to-qml.html

Espero que eso ayude.

2
phyatt 25 jun. 2017 a las 02:23

Estás buscando un icono de bandeja. Qt lo implementa en QSystemTrayIcon.

Más información

1
m7913d 26 jun. 2017 a las 21:17