2011-07-13 7 views
7

Estoy transfiriendo mi aplicación Qt a Mac OS X. En Windows/Linux utilicé QLineEdit para proporcionar una función de búsqueda en el menú Ayuda.Qt en Mac: cómo acceder a "buscar" en el menú de ayuda

En Mac OS X, vi algo como esto está incorporado: enter image description here

cómo puedo acceder a esta barra de búsqueda con Qt (es decir, añadir mis propios elementos a ella)? Miré QMenuBar en los documentos pero no pude encontrar nada relevante. Si no es posible, ¿puedo al menos usar alguna API nativa de mi aplicación C++ Qt?

Muchas gracias.

+5

1 por preocuparse por proporcionar una experiencia de plataforma consistente. –

Respuesta

3

Parece que no puede hacer esto directamente a través de Qt, sin embargo, puede implementar esta característica en Objective-C++/Cocoa.

Es posible a través del método - registerUserInterfaceItemSearchHandler de NSApplication registrar una función personalizada para consultar y devolver elementos de búsqueda.

QtHelp parece tener soporte para la indexación automática, lo que significa que puede delegar la búsqueda a eso.

4

Este es el centro de atención por Ayuda campo de búsqueda, que está totalmente controlado por el sistema. Proporciona automáticamente los resultados de la Ayuda de la aplicación y los elementos del menú. AFAIK no puedes poblarlo "manualmente". Funciona automáticamente cuando crea un libro de ayuda para su aplicación.

Ver Apple Help Concepts: The Help Menu.

+0

Te di un +1, parece que esta es mi única opción. Voy a esperar quizás un día para ver si no hay una manera de hacerlo directamente desde el programa, de lo contrario, lo aceptaré. – houbysoft

+1

acaba de descubrir que en la aplicación Terminal, el menú de ayuda también muestra páginas man. Intente escribir 'man' en el campo de búsqueda de Spotlight en Terminal. Luego, si hace clic en él, se abre una nueva ventana de terminal que muestra la página de manual. Por lo tanto, parece que tal vez podría ser poblado manualmente? Las páginas man no están en el Libro de Ayuda ni en los elementos del menú. – houbysoft

+0

Hmm, ¡muy intrigante! Lo siento, no sé si eso es una API pública. – deceze

3

Si agrega un menú de Ayuda a su aplicación, Qt agregará automáticamente el cuadro de búsqueda. Consulte http://doc.qt.io/qt-4.8/mac-differences.html#menu-bar

+0

Sí, se añade automáticamente, pero lo que necesito es añadir mis propios elementos a ella - parece que tengo para crear un libro de ayuda de acuerdo con la respuesta de deceze a continuación. En este momento solo busca en los elementos del menú. – houbysoft

1

Puede deshacerte del menú de búsqueda Mac OSX agrega a los menús de Ayuda simplemente llamando al menú de otra forma. Solo agregue un espacio:

QMenu *helpMenu = menuBar()->addMenu(" Help")); 

funcionará.

Cuestiones relacionadas