#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);