Я использую Qt в ubuntu с C ++. Я читаю видео, используя VideoCapture в openCV. Но сразу после открытия видеоконтейнера мое приложение не отвечает.

char filename[50];
VideoCapture cap;
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{

ui->setupUi(this);
sprintf(filename,"/media/sf_Shared_with_VM/helicopter_with_stickers.mp4");
cap.open(filename);
printf("\nFile Opened");

}

Здесь файл открыт, но не выводится «Файл открыт».

Это часть большой программы, в которой при нажатии кнопки я должен записывать необработанное видео и накладывать видео. Отображение и хранение видео работает нормально. Но я хочу печатать «Raw record», когда я нажимаю кнопку «record raw», и так для других кнопок. Но он не печатался, если я не нажимал его дважды или не нажимал другую кнопку, то есть он реагирует после одного нажатия кнопки. Я отлаживал его до cap.open(filename);, потому что сразу после этого я не мог распечатать «Файл открыт».

2
A.k. 5 Окт 2018 в 13:16

1 ответ

Лучший ответ

Вы не видите свое последнее сообщение журнала, потому что не очищаете стандартный поток вывода.

Вы можете сделать это, добавив новую строку после сообщения printf("\nFile Opened\n") или явно вызвав fflush(stdout) после последнего printf.

1
Dmitrii Z. 6 Окт 2018 в 05:21