отобразить вывод printf в главном окне в QT

0

Я новичок в программировании Qt, я сделал простой gui с помощью одной кнопки. В основном я написал программу в C++, теперь я хочу сделать Gui для моего проекта. Я хочу отобразить вывод всей инструкции printf в моем gui. printf, показывающие их вывод в консоли, но я хочу добавить что-то похожее на консоль в моем gui, чтобы всякий раз, когда я вызываю printf, он показывает его результат в gui. Не могли бы вы посоветовать мне, как я могу это сделать?

Теги:
qt
qt4

3 ответа

2

Вы можете использовать QLabel для отображения вывода в графическом интерфейсе.

Каждый раз, когда вы вызываете printf, вместо этого вы вызываете setText (...). Теперь текст отладки будет отображаться в текстовой метке в вашем графическом интерфейсе.

Если вы хотите, вы можете добавить несколько QLabels для разных отладочных выходов.

РЕДАКТИРОВАТЬ:

Это также может представлять интерес.

  • 0
    Это решение с низкой производительностью
  • 0
    @KamilKlimek: Возможно, вы обрабатываете расширенный текст вместо простого текста, я могу представить, что это занимает больше времени. Попробуйте установить обычный текст специально с textFormat () , если вы используете только простой текст.
Показать ещё 6 комментариев
0

Я нашел ответ на свой вопрос, я использовал textbrowser в gui и создаю функцию, которую я вызываю для печати своих данных в gui. Я не могу показать картинку моего ги, потому что у меня меньше репутации.

вот функция, которую я использовал для печати.

void MainWindow::print(const QString &input){

data_lab += input;//to display all data in stream
ui->label->setText(input);
ui->textBrowser->setText(data_lab);


}

и вот вызов функции из основного.

w.print("hellok\n");
w.print("l\n");

Надеюсь, это поможет кому-то вроде меня.

  • 0
    Вы также можете использовать QTextEdit :: append (const QString & text) . Таким образом, вам не нужно хранить переменную, которая содержит все напечатанные данные, вы можете просто добавить новые строки в ваш текстовый браузер. ui->textBrowser->append(input);
  • 0
    Если вы так обеспокоены производительностью, добавление и повторная установка текста в поле не очень хороши.
Показать ещё 1 комментарий
0

используйте QProcess, запустите свою программу CLI и используйте readData/writeData, чтобы получить информацию и поместить ее в QTextEdit

Ещё вопросы

Сообщество Overcoder
Наверх
Меню