Spec-Zone.ru › Qt 5.14

Класс 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 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() для определения текущего состояния захвата размера.

A status bar shown in the Fusion widget style

См. также 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.14/qstatusbar.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API