Come si realizzerebbe un'applicazione sulla barra delle applicazioni su altre piattaforme?
-
03-07-2019 - |
Domanda
Windows ha la "barra delle applicazioni" che ospita l'orologio e i servizi sempre in esecuzione come MSN, Steam, ecc.
Mi piacerebbe sviluppare un'applicazione nella barra delle applicazioni di wxPython, ma mi chiedo quanto questo porti su altre piattaforme. Qual è il vassoio equivalente su ciascuna piattaforma e quanto lavoro manuale sarebbe necessario per supportare Windows, OSX e Linux (quali shell in particolare sarebbero più amichevoli).
Soluzione
wx è una GUI multipiattaforma e una libreria di strumenti che supporta Win32, Mac OS X, GTK +, X11, Motif, WinCE e altro. E se usi le sue classi, la tua applicazione dovrebbe funzionare su tutte queste piattaforme. Per la barra delle applicazioni, consultare wxTaskBarIcon ( http://docs.wxwidgets.org/stable/wx_wxtaskbaricon. html # wxtaskbaricon ).
Altri suggerimenti
In OS X hai la barra dei menu di stato: le voci più a destra sono spesso cose relative allo stato (come lo stato della batteria, le connessioni WiFi, ecc.)
Prova a cercare NSStatusBar e NSMenuExtra . È quasi banale trasformare un'applicazione in una che ha un menu NSStatusBar e non appare nel Dock. Ci sono tutorial circa su come farlo.
Per molti sistemi desktop Linux (Gnome, KDE, ecc.) di Freedesktop SysTray Protocol è implementato. Puoi provarlo se qualsiasi altra soluzione fallisce.
Su Linux dipende davvero: ci sono diversi ambienti di programmazione lì e alcuni gestori di finestre non hanno nemmeno un'area del vassoio. Inoltre, se usi Gtk (e wx è davvero Gtk), il gtk.StatusIcon è tuo amico.
Qui ne sono alcuni esempi (non ho controllato se funzionano davvero, ma dovrebbero mostrarti il ??percorso).
Per wx
ho trovato un codice di esempio qui .
Usa Qt: Esempio di Qt Systray
Questo mostrerà un'icona systray su tutte le piattaforme su cui Qt gira e che supporta tali icone. Tuttavia, dovrai elaborare una strategia quando la funzionalità systray non è supportata.