#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;
Я бы хотел, чтобы он был внизу, над моей строкой состояния.
Я хотел бы спросить сейчас:
-
QPlainTextEdit
илиQTextEdit
: какой из них лучше подходит для моей задачи? Мне нужно только добавить текст и, возможно, выделить и раскрасить текст. -
Как получить
Q(Plain)TextEdit
as, например, в QtCreator внизу с фиксированной позицией и фиксированной шириной?
Я попытался создать MdiSubWindow и добавить в него виджет открытого текста и показать его. Он работает так, как я хотел, и я могу добавить в него текст. Но я все еще не могу исправить внизу. Есть идеи?
Ответ №1:
-
Если вам нужен цвет и другие параметры форматирования,
QTextEdit
это ваш путь.QPlainTextEdit
не позволяет форматировать. -
Вам лучше использовать a
QDockWidget
, чем aQMdiSubWindow
. Затем вы можете закрепить свой регистратор в нижней части главного окна.
Комментарии:
1. Привет, спасибо. Могу ли я по-прежнему использовать QDockWidget с QMdiArea или это должно быть только в QMainWindow? Мне нужна MdiArea для отображения нескольких QMdiSubWindows.
2. Область MDI — это место, где находятся все подокна MDI. Обычно он устанавливается в качестве центрального виджета
QMainWindow
, если вы хотите, чтобы внешний вид был похож на MDI. Виджеты dock будут закреплены на одной из четырех сторон вокруг центрального виджета. Если вы посмотрите документацию дляQMainWindow
, вы получите хорошее объяснение того, как это сделать.3. Спасибо. Потрясающая идея использовать DockWidget. Это именно то, что я хотел.