Класс 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)
Скрывает нормальные индикаторы состояния и отображает указанное message на заданное количество миллисекунд (timeout). Если timeout равно 0 (по умолчанию), message отображается до тех пор, пока не будет вызван слот 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.1/qstatusbar.html