2014-02-08 1 views
0

Я делаю программу C++ GUI в Qt, используя qtcreator, но она еще не завершена, но когда я когда-либо создаю и запускаю, чтобы протестировать программу, она запускается, если я нажимаю кнопки, открывающие файл или пишу что-то в файл, кнопка делает это, а затем программа зависает. Почему это происходит, что я делаю неправильно или в чем проблема.

Оно главным образом замерзает в тезисах две функции:
Программа Qt зависает каждый раз

void MainWindow::on_kmpOpenButton_clicked() 
{ 
    QString kmplayerloc = "\"F:\\Program Files\\The KMPlayer\\KMPlayer.exe\""; 
    QProcess::execute(kmplayerloc); 
} 

void MainWindow::on_nbopenbutton_clicked() 
{ 
    // Remember tha if you have to insert " in a string \"....location of file or anything u want to put.......\" 
    QString netbeansloc = "\"F:\\Program Files\\NetBeans 7.4\\bin\\netbeans.exe\""; 
    QProcess::execute(netbeansloc); 
} 
+4

показать ваш код, в противном случае мы беспомощны –

+0

Я думаю, что вы хотите это: http://stackoverflow.com/questions/18074826/qprocess-fails-to-execute-external-executable – cageman

+0

@cageman Нет Qprocess работает и запускаются оба приложения, но затем программа зависает, и окна не дают ответной ошибки. –

ответ

3

Из documentation

запускает программу программы [..] в новом процессе ждет его завершения, а затем возвращает код выхода процесса .

Вызывающая нить замерзает до завершения внешнего процесса. Если вы этого не хотите, используйте метод start или startDetached.