come posso creare un programma scritto in c ++ con qt in modalità testo e grafica?

1

Ho visto in molti programmi, quasi solo su linux, che quando si esegue il programma con un gestore grafico (facendo clic sull'eseguibile) il programma viene eseguito in una finestra grafica e quando viene eseguito dal terminale viene eseguito in modalità testo . Voglio sapere come farlo. Qualcuno sa come?

    
posta Mike 23.03.2015 - 06:59
fonte

1 risposta

1

È specifico del sistema operativo.

Su Linux con X11 , puoi semplicemente utilizzare il fatto che DISPLAY è una variabile di ambiente non impostata al di fuori della grafica interfacce desktop (o test per il successo di XOpenDisplay );

Potresti anche utilizzare isatty (3) su STDIN_FILENO (che è 0) per verificare se stdin è un terminale (ma potresti anche aprire /dev/tty e vedere se fallisce, cf tty(4) ) così semplicemente il codice

if (getenv("DISPLAY"))
   startmyGUIapplication();
else if (isatty(STDIN_FILENO)) 
   startmyterminalapplication();
else 
   error(); // application started outside, e.g. from 'crontab'

Riguardo Qt, suppongo che QApplication non possa essere costruito se non utilizzato in una GUI, Oppure la sua funzione exec fallirebbe.

PS. Su Linux con un desktop Wayland (o su MacOSX con quarzo ), non so come farlo, ma sono sicuro che esiste una soluzione semplice.

    
risposta data 23.03.2015 - 07:13
fonte

Leggi altre domande sui tag