Qt creator C , добавляющий много меток в строку состояния

#c #qt #qt-creator

#c #qt #qt-creator

Вопрос:

Я хотел бы добавить 3 элемента в строку состояния. Разве каждая из них не должна быть в отдельной метке?

Возможно ли это? Когда я попытался добавить вторую метку, это выдало мне ошибку.

Файл mainwindow.h ,

 QLabel *m_statusLabel;
QLabel *m_pointLabel;
  

Файл mainwindow.cpp ,

 statusBar()->addWidget(m_statusLabel);
statusBar()->addWidget(m_pointLabel);
  

Это отлично работает с одной меткой, но когда я добавляю вторую, то получаю следующее.

 Starting C:UsersJansuDesktopcpp-praktikum05-alusJoonistamine-build-      desktopsrcbinJoonistamine.exe...
ASSERT: "d" in file ....include/QtCore/../../src/corelib/tools/qscopedpointer.h, line   112
Invalid parameter passed to C runtime function.
Invalid parameter passed to C runtime function.
C:UsersJansuDesktopcpp-praktikum05-alusJoonistamine-build-    desktopsrcbinJoonistamine.exe exited with code -1073741819
  

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

1. Вероятно, это вызвано не прямым добавлением виджетов в строку состояния. Как вы создаете QLabel s?

2. Зачем добавлять 3 разных виджета, а не только один, который содержит все? Возможно, QStatusBar поддерживает только один виджет, но вы также можете попробовать использовать addPermanentWidget .

Ответ №1:

Я нашел проблему. Я забыл создать QLabels, поэтому добавил это:

 m_statusLabel = new QLabel(this);
m_pointLabel = new QLabel(this);