View Full Version : [qtcreator]pulsante che avvia un'applicazione
Prince_81
01-03-2009, 16:25
vorrei creare un pulsante che avvia un'applicazione con una funzione simile a system() visto che system non funziona, sbirciando nel manuale non sono riuscito a trovare niente forse perchè è in inglese sapreste consigliarmi?
system deve funzionare. Programmando con le QT non è che smette di funzionare il resto :D Sei sempre con il C++.
In ogni caso ci sono metodi molto QT-style per avviare applicazioni. Guarda la classe QProcess nella documentazione.
Prince_81
03-03-2009, 19:07
ho provato system su visual studio e funziona ma in qtcreator no ho dato anche un'occhiata a qprocess ma per adesso non sono riuscito a trovare nulla per avviare un'applicazione.
Ti dico che funziona system...dimmi cosa vuoi eseguire da system, magari è solo un problema di Path.
Non hai letto bene la documentazione di QProcess. Il metodo start serve proprio ad avviare un programma.
Prince_81
04-03-2009, 09:49
allora usando il metodo qprocess ecco il codice QProcess process;
process.start("C:\\Users\\utente\\Desktop\\Remove Associazione file\\Unassoc.exe");
start prevede anche un tipo openmode ma visto che non mi dava errori non l'ho messo.
Il problema è sicuramente lo spazio nel path.
Prova così:
process.start("\"C:\\Users\\utente\\Desktop\\Remove Associazione file\\Unassoc.exe\"");
Prince_81
04-03-2009, 14:56
continua a non funzionare non capisco perchè!!!!!!!!!!!!! :doh:
continua a non funzionare non capisco perchè!!!!!!!!!!!!! :doh:
Prova prima con qualcosa di facile, metti solo "dir > pippo.txt" e verifica che pippo.txt venga creato.
Prince_81
04-03-2009, 21:47
bhe non ha funzionato ma poi il file pippo.txt in quale directory verrebbe creato? comunque ho fatto una ricerca e non è stato creato non so che dire come mai a me non funziona? comunque qtcreator lo sto usando su vista.
Prince_81
09-03-2009, 12:15
il codice è questo
void MainWindow::on_pushButton_2_clicked()
{
QProcess process;
process.start("\"G:\\SOFTWARE\\Remove Associazione file\\Unassoc.exe\"");
}
non capisco perchè non funziona
A me così funziona:
QProcess process;
process.start("c:\\windows\\notepad.exe");
process.waitForFinished();
Prince_81
09-03-2009, 15:56
si finalmente qualcosa si apre mancava process.waitForFinished(); pultroppo però non si apre il programma che si trova nella partizione logica G quello nell'esempio di prima.
Devi metterti lì e provare, certo non posso farlo io, visto che non ho quell'eseguibile.
Prince_81
09-03-2009, 16:07
il fatto che quel programma quando lo apro normalmente con il mouse mi chieda il permesso per aprirlo in quanto l'autore è sconosciuto potrebbe essere la causa del fatto che non riesco ad aprirlo con qprocess? hai un programma che ha l'autore sconosciuto e quindi di chieda la conferma dell'apertura?
No, non ne ho. Prova a lanciarlo dal terminale e guarda se lo chiede ancora.
Prince_81
09-03-2009, 16:40
si anche da terminale me lo chiede
Prince_81
13-03-2009, 15:38
una volta avviato il programma ho notato che il pulsante rimane come posso dire cliccato fin quando il programma rimane aperto impedendomi così di cliccarne altri, come posso fare a sbloccare (se questo è il termine giusto) il pulsante una volta avviato il programma?
Crei un thread con QThread e avvii il programma da lì.
Prince_81
13-03-2009, 16:37
ok grazie ci proverò
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.