Класс QStatusBar
Класс QStatusBar предоставляет горизонтальную строку состояния для отображения информации о состоянии. Подробнее...
| Заголовок: | #include <QStatusBar> |
| CMake: | find_package(Qt6 COMPONENTS Widgets REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
| qmake: | QT += widgets |
| Наследуется от: | QWidget |
Свойства
- sizeGripEnabled : bool
Открытые функции
| QStatusBar(QWidget *parent = nullptr) | |
| virtual | ~QStatusBar() |
| void | addPermanentWidget(QWidget *widget, int stretch = 0) |
| void | addWidget(QWidget *widget, int stretch = 0) |
| QString | currentMessage() const |
| int | insertPermanentWidget(int index, QWidget *widget, int stretch = 0) |
| int | insertWidget(int index, QWidget *widget, int stretch = 0) |
| bool | isSizeGripEnabled() const |
| void | removeWidget(QWidget *widget) |
| void | setSizeGripEnabled(bool) |
Открытые слоты
| void | clearMessage() |
| void | showMessage(const QString &message, int timeout = 0) |
Сигналы
| void | messageChanged(const QString &message) |
Защищённые функции
| void | hideOrShow() |
| void | reformat() |
Переопределённые защищённые функции
| virtual bool | event(QEvent *e) override |
| virtual void | paintEvent(QPaintEvent *event) override |
| virtual void | resizeEvent(QResizeEvent *e) override |
| virtual void | showEvent(QShowEvent *) override |
Подробное описание
Каждый индикатор состояния относится к одной из трёх категорий:
- Временный - кратковременно занимает большую часть строки состояния. Используется, например, для пояснений к подсказкам или элементам меню.
- Обычный - занимает часть строки состояния и может быть скрыт временными сообщениями. Используется, например, для отображения номера страницы и строки в текстовом редакторе.
- Постоянный - никогда не скрывается. Используется, например, для важных индикаций режима (некоторые приложения размещают индикатор Caps Lock в строке состояния).
QStatusBar позволяет отображать все три типа индикаторов.
Обычно запрос функциональности строки состояния происходит по отношению к объекту QMainWindow. QMainWindow предоставляет главное окно приложения, с меню, панелями инструментов, вкладками и строкой состояния вокруг большого центрального виджета. Строку состояния можно получить с помощью функции QMainWindow::statusBar() и заменить с помощью функции QMainWindow::setStatusBar().
Используйте слот showMessage(), чтобы отобразить временное сообщение:
void MainWindow::createStatusBar()
{
statusBar()->showMessage(tr("Ready"));
} Чтобы удалить временное сообщение, используйте слот clearMessage() или установите лимит времени при вызове showMessage(). Например:
void MainWindow::print()
{
#if defined(QT_PRINTSUPPORT_LIB) && QT_CONFIG(printdialog)
QTextDocument *document = textEdit->document();
QPrinter printer;
QPrintDialog dlg(&printer, this);
if (dlg.exec() != QDialog::Accepted) {
return;
}
document->print(&printer);
statusBar()->showMessage(tr("Ready"), 2000);
#endif
} Используйте функцию currentMessage(), чтобы получить текущее отображаемое временное сообщение. Класс QStatusBar также предоставляет сигнал messageChanged(), который испускается всякий раз, когда временное сообщение состояния меняется.
Обычные и постоянные сообщения отображаются путём создания небольшого виджета (QLabel, QProgressBar или даже QToolButton) и добавления его в строку состояния с помощью функции addWidget() или addPermanentWidget(). Используйте функцию removeWidget(), чтобы удалить такие сообщения из строки состояния.
statusBar()->addWidget(new MyReadWriteIndication);
По умолчанию QStatusBar предоставляет QSizeGrip в правом нижнем углу. Вы можете отключить его, используя функцию setSizeGripEnabled(). Используйте функцию isSizeGripEnabled(), чтобы определить текущее состояние маркёра размера.
См. также QMainWindow, QStatusTipEvent, Справочник по разработке графического интерфейса: Строка состояния и Пример приложения Qt Widgets.
Документация по свойствам
sizeGripEnabled : bool
Это свойство задаёт, включён ли QSizeGrip в правом нижнем углу строки состояния.
По умолчанию маркёр размера включён.
Функции доступа:
| bool | isSizeGripEnabled() const |
| void | setSizeGripEnabled(bool) |
Документация по функциям-членам
QStatusBar::QStatusBar(QWidget *parent = nullptr)
Конструирует строку состояния с маркёром размера и заданным parent.
См. также setSizeGripEnabled().
[slot] void QStatusBar::clearMessage()
Удаляет любое отображаемое временное сообщение.
См. также currentMessage(), showMessage() и removeWidget().
[signal] void QStatusBar::messageChanged(const QString &message)
Этот сигнал испускается всякий раз, когда временное сообщение состояния изменяется. Новое временное сообщение передаётся в параметре message, который равен пустой строке, когда сообщение удалено.
См. также showMessage() и clearMessage().
[slot] void QStatusBar::showMessage(const QString &message, int timeout = 0)
Скрывает обычные индикаторы состояния и отображает заданное сообщение в течение указанного количества миллисекунд (timeout). Если timeout равен 0 (по умолчанию), сообщение отображается до тех пор, пока не будет вызван слот clearMessage() или пока не будет вызван снова слот showMessage() для изменения сообщения.
Обратите внимание, что showMessage() используется для отображения временных пояснений к подсказкам, поэтому передача timeout равного 0 недостаточно для отображения постоянного сообщения.
См. также messageChanged(), currentMessage() и clearMessage().
[virtual] QStatusBar::~QStatusBar()
Уничтожает эту строку состояния и освобождает все выделенные ресурсы и дочерние виджеты.
void QStatusBar::addPermanentWidget(QWidget *widget, int stretch = 0)
Добавляет заданный widget постоянно в эту строку состояния, переродив виджет, если он еще не является дочерним элементом этого объекта QStatusBar. Параметр stretch используется для вычисления подходящего размера для заданного widget по мере изменения размера строки состояния. Значение по умолчанию для параметра stretch равно 0, что обеспечивает минимум места для виджета.
Постоянно означает, что виджет не может быть скрыт временными сообщениями. Он расположен в самом правом углу строки состояния.
См. также insertPermanentWidget(), removeWidget() и addWidget().
void QStatusBar::addWidget(QWidget *widget, int stretch = 0)
Добавляет заданный widget в эту строку состояния, переродив виджет, если он еще не является дочерним элементом этого объекта QStatusBar. Параметр stretch используется для вычисления подходящего размера для заданного widget по мере изменения размера строки состояния. Значение по умолчанию для параметра stretch равно 0, что обеспечивает минимум места для виджета.
Виджет расположен слева от первого постоянного виджета (см. addPermanentWidget()) и может быть скрыт временными сообщениями.
См. также insertWidget(), removeWidget() и addPermanentWidget().
QString QStatusBar::currentMessage() const
Возвращает временное сообщение, отображаемое в настоящее время, или пустую строку, если такого сообщения нет.
См. также showMessage().
[override virtual protected] bool QStatusBar::event(QEvent *e)
Переопределяет: QWidget::event(QEvent *event).
[protected] void QStatusBar::hideOrShow()
Обеспечивает видимость необходимых виджетов.
Используется функциями showMessage() и clearMessage().
int QStatusBar::insertPermanentWidget(int index, QWidget *widget, int stretch = 0)
Вставляет заданный widget в заданный index постоянно в эту строку состояния, переродив виджет, если он еще не является дочерним элементом этого объекта QStatusBar. Если index находится вне диапазона, виджет добавляется в конец (в этом случае возвращается фактический индекс виджета).
Параметр stretch используется для вычисления подходящего размера для заданного widget по мере изменения размера строки состояния. Значение по умолчанию для параметра stretch равно 0, что обеспечивает минимум места для виджета.
Постоянно означает, что виджет не может быть скрыт временными сообщениями. Он расположен в самом правом углу строки состояния.
См. также addPermanentWidget(), removeWidget() и addWidget().
int QStatusBar::insertWidget(int index, QWidget *widget, int stretch = 0)
Вставляет заданный widget в заданный index в эту строку состояния, переродив виджет, если он еще не является дочерним элементом этого объекта QStatusBar. Если index находится вне диапазона, виджет добавляется в конец (в этом случае возвращается фактический индекс виджета).
Параметр stretch используется для вычисления подходящего размера для заданного widget по мере изменения размера строки состояния. Значение по умолчанию для параметра stretch равно 0, что обеспечивает минимум места для виджета.
Виджет расположен слева от первого постоянного виджета (см. addPermanentWidget()) и может быть скрыт временными сообщениями.
См. также addWidget(), removeWidget() и addPermanentWidget().
[override virtual protected] void QStatusBar::paintEvent(QPaintEvent *event)
Переопределяет: QWidget::paintEvent(QPaintEvent *event).
Отображает временное сообщение, если это необходимо, в ответ на событие рисования event.
[protected] void QStatusBar::reformat()
Изменяет внешний вид строки состояния, учитывая изменения элементов.
Специальным подклассам может потребоваться эта функция, но управление геометрией обычно позаботится о необходимых перестановках.
void QStatusBar::removeWidget(QWidget *widget)
Удаляет указанный widget из строки состояния.
Примечание: Эта функция не удаляет виджет, а скрывает его. Чтобы добавить виджет снова, необходимо вызвать обе функции addWidget() и show().
См. также addWidget(), addPermanentWidget() и clearMessage().
[override virtual protected] void QStatusBar::resizeEvent(QResizeEvent *e)
Переопределяет: QWidget::resizeEvent(QResizeEvent *event).
[override virtual protected] void QStatusBar::showEvent(QShowEvent *)
Переопределяет: QWidget::showEvent(QShowEvent *event).
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.2/qstatusbar.html