Класс QStatusBar
Класс QStatusBar предоставляет горизонтальную панель, подходящую для отображения статусной информации. Подробнее...
| Заголовок: | #include <QStatusBar> |
| 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 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, Руководство по разработке пользовательского интерфейса: Панель состояния и Пример приложения.
Документация по свойствам
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)
Добавляет указанный виджет постоянно в эту строку состояния, переродив виджет, если он еще не является дочерним элементом этого объекта QStatusBar. Параметр stretch используется для вычисления подходящего размера для данного виджета по мере изменения размера строки состояния. Значение по умолчанию для параметра stretch равно 0, то есть виджету предоставляется минимальное пространство.
«Постоянно» означает, что виджет не может быть скрыт временными сообщениями. Он расположен в правой части строки состояния.
См. также insertPermanentWidget(), removeWidget() и addWidget().
void QStatusBar::addWidget(QWidget *widget, int stretch = 0)
Добавляет указанный виджет в эту строку состояния, переродив виджет, если он еще не является дочерним элементом этого объекта QStatusBar. Параметр stretch используется для вычисления подходящего размера для данного виджета по мере изменения размера строки состояния. Значение по умолчанию для параметра 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)
Вставляет указанный виджет в заданную позицию постоянно в эту строку состояния, переродив виджет, если он еще не является дочерним элементом этого объекта QStatusBar. Если индекс находится вне допустимого диапазона, виджет добавляется в конец (в этом случае возвращается фактический индекс виджета).
Параметр stretch используется для вычисления подходящего размера для данного виджета по мере изменения размера строки состояния. Значение по умолчанию для параметра stretch равно 0, то есть виджету предоставляется минимальное пространство.
«Постоянно» означает, что виджет не может быть скрыт временными сообщениями. Он расположен в правой части строки состояния.
Эта функция была добавлена в Qt 4.2.
См. также addPermanentWidget(), removeWidget() и addWidget().
int QStatusBar::insertWidget(int index, QWidget *widget, int stretch = 0)
Вставляет указанный виджет в заданную позицию в эту строку состояния, переродив виджет, если он еще не является дочерним элементом этого объекта QStatusBar. Если индекс находится вне допустимого диапазона, виджет добавляется в конец (в этом случае возвращается фактический индекс виджета).
Параметр stretch используется для вычисления подходящего размера для данного виджета по мере изменения размера строки состояния. Значение по умолчанию для параметра stretch равно 0, то есть виджету предоставляется минимальное пространство.
Виджет расположен в крайней левой части, слева от первого постоянного виджета (см. addPermanentWidget()), и может быть скрыт временными сообщениями.
Эта функция была добавлена в Qt 4.2.
См. также 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)
Удаляет указанный виджет из строки состояния.
Примечание: Эта функция не удаляет виджет, а скрывает его. Чтобы добавить виджет снова, необходимо вызвать функции 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-5.13/qstatusbar.html