Отображение текста журнала в QMainWindow с помощью MdiArea

#qt #qtextedit #qplaintextedit #qmdiarea

#qt #qtextedit #qplaintextedit #qmdiarea

Вопрос:

Я разработал приложение на Qt с QMainWindow в качестве основного виджета и добавил Mdiarea, который мне нужен для добавления QMdieSubWindows.

Я хочу знать, как создать область ведения журнала, как в Qt Creator.

Мой текст журнала — это в основном то, что происходит. Как

Запустил оптимизатор … Файл сохранен … Файл не загружен … и т.д.

Я думал о добавлении a QPlainTextEdit или a QTextEdit и просто добавлял к ним текст.

Я написал это в своем QMainWindow.cpp:

 QPlainText* mydebugger = new QPlainText(this);
mydebugger.appendPlaintext("Debugger started");
mydebugger.show();
  

Но это показывает открытый текст над моим меню в QMainWindow;

Я бы хотел, чтобы он был внизу, над моей строкой состояния.

Я хотел бы спросить сейчас:

  1. QPlainTextEdit или QTextEdit : какой из них лучше подходит для моей задачи? Мне нужно только добавить текст и, возможно, выделить и раскрасить текст.

  2. Как получить Q(Plain)TextEdit as, например, в QtCreator внизу с фиксированной позицией и фиксированной шириной?

Я попытался создать MdiSubWindow и добавить в него виджет открытого текста и показать его. Он работает так, как я хотел, и я могу добавить в него текст. Но я все еще не могу исправить внизу. Есть идеи?

Ответ №1:

  1. Если вам нужен цвет и другие параметры форматирования, QTextEdit это ваш путь. QPlainTextEdit не позволяет форматировать.

  2. Вам лучше использовать a QDockWidget , чем a QMdiSubWindow . Затем вы можете закрепить свой регистратор в нижней части главного окна.

Комментарии:

1. Привет, спасибо. Могу ли я по-прежнему использовать QDockWidget с QMdiArea или это должно быть только в QMainWindow? Мне нужна MdiArea для отображения нескольких QMdiSubWindows.

2. Область MDI — это место, где находятся все подокна MDI. Обычно он устанавливается в качестве центрального виджета QMainWindow , если вы хотите, чтобы внешний вид был похож на MDI. Виджеты dock будут закреплены на одной из четырех сторон вокруг центрального виджета. Если вы посмотрите документацию для QMainWindow , вы получите хорошее объяснение того, как это сделать.

3. Спасибо. Потрясающая идея использовать DockWidget. Это именно то, что я хотел.