ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 05.12.2023
Просмотров: 888
Скачиваний: 3
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
СОДЕРЖАНИЕ
Глава 27. Создание SDI- и MDI-приложений
663
addAction()
— добавляет действие на панель инструментов. Форматы метода: addAction(
addSeparator()
— добавляет разделитель и возвращает представляющий его экземпляр класса
QAction
;
insertSeparator(
— добавляет разделитель перед указанным действием и возвращает представляющий разделитель экземпляр класса
QAction
;
addWidget(
— позволяет добавить компонент (например, раскрывающийся список). Метод возвращает представляющий компонент экземпляр класса
QAction
;
insertWidget(
— добавляет компонент перед указанным действи- ем и возвращает представляющий компонент экземпляр класса
QAction
;
widgetForAction(
— возвращает ссылку на компонент (экземпляр класса
QWidget
), который связан с указанным действием;
clear()
— удаляет все действия из панели инструментов;
setOrientation(<Ориентация>)
— задает ориентацию панели в виде следующих атрибу- тов класса
QtCore.Qt
:
•
Horizontal
—
1
— горизонтальная (значение по умолчанию);
•
Vertical
—
2
— вертикальная;
setAllowedAreas(<Области>)
— задает области, к которым можно прикрепить панель инструментов. В качестве параметра указываются атрибуты (или их комбинация через оператор
|
)
LeftToolBarArea
(слева),
RightToolBarArea
(справа),
TopToolBarArea
(свер- ху),
BottomToolBarArea
(снизу) или
AllToolBarAreas
(все области) класса
QtCore.Qt
;
setMovable(<Флаг>)
— если в качестве параметра указано значение
False
, будет невоз- можно перемещать панель с помощью мыши. Значение
True вновь разрешает перемеще- ние панели;
isMovable()
— возвращает значение
True
, если панель можно перемещать с помощью мыши, и
False
— в противном случае;
setFloatable(<Флаг>)
— если в качестве параметра указано значение
False
, панель нельзя будет вынести в отдельное окно. Значение
True вновь разрешает выносить панель в окно;
isFloatable()
— возвращает значение
True
, если панель можно вынести в отдельное окно, и
False
— в противном случае;
isFloating()
— возвращает значение
True
, если панель в данный момент вынесена в отдельное окно, и
False
— в противном случае;
setToolButtonStyle(<Стиль>)
— задает стиль кнопок на панели инструментов. Метод является слотом. В качестве параметра указываются следующие атрибуты класса
QtCore.Qt
:
•
ToolButtonIconOnly
—
0
— отображается только значок;
•
ToolButtonTextOnly
—
1
— отображается только текст;
664
Часть II. Библиотека PyQt 5
•
ToolButtonTextBesideIcon
—
2
— текст отображается справа от значка;
•
ToolButtonTextUnderIcon
—
3
— текст отображается под значком;
•
ToolButtonFollowStyle
—
4
— зависит от используемого стиля;
toolButtonStyle()
— возвращает стиль кнопок на панели инструментов;
setIconSize(
— задает размеры значков. Метод является слотом;
iconSize()
— возвращает размеры значков (экземпляр класса
QSize
);
toggleViewAction()
— возвращает объект действия (экземпляр класса
QAction
), с по- мощью которого можно скрыть или отобразить панель.
Класс
QToolBar поддерживает следующие сигналы (здесь приведены только основные — полный их список можно найти на странице https://doc.qt.io/qt-5/qtoolbar.html):
actionTriggered(
— генерируется при нажатии кнопки на панели. Внутри обработчика через параметр доступно действие, связанное с этой кнопкой;
visibilityChanged(<Флаг>)
— генерируется при изменении видимости панели. Внутри обработчика через параметр доступно значение
True
, если панель видима, и
False
— если скрыта;
topLevelChanged(<Флаг>)
— генерируется при изменении состояния панели. Внутри об- работчика через параметр доступно значение
True
, если панель вынесена в отдельном окне, и
False
— если прикреплена к области.
27.3.2. Класс QToolButton
При добавлении действия на панель инструментов автоматически создается кнопка, пред- ставляемая классом
QToolButton
. Получить ссылку на кнопку позволяет метод widgetForAction()
класса
QToolBar
. Иерархия наследования для класса
QToolButton выгля- дит так:
(QObject, QPaintDevice) — QWidget — QAbstractButton — QToolButton
Конструктор класса
QToolButton имеет следующий формат:
<Объект> = QToolButton([parent=None])
В параметре parent указывается ссылка на родительский компонент.
Класс
QToolButton
, помимо методов базовых классов, поддерживает следующие методы
(здесь приведены только основные — полный их список можно найти на странице https://doc.qt.io/qt-5/qtoolbutton.html):
setDefaultAction(
— связывает объект действия с кнопкой. Метод является слотом;
defaultAction()
— возвращает ссылку на объект действия (экземпляр класса
QAction
), связанный с кнопкой;
setToolButtonStyle(<Стиль>)
— задает стиль кнопки. Метод является слотом. До- пустимые значения параметра приведены в описании метода setToolButtonStyle()
(см. разд. 27.3.1);
toolButtonStyle()
— возвращает стиль кнопки;
setMenu(
— добавляет к кнопке меню;
Глава 27. Создание SDI- и MDI-приложений
665
menu()
— возвращает ссылку на меню (экземпляр класса
QMenu
), добавленное к кнопке, или значение
None
;
showMenu()
— отображает меню, связанное с кнопкой. Метод является слотом;
setPopupMode(<Режим>)
— задает режим отображения меню, связанного с кнопкой.
В качестве параметра указываются следующие атрибуты класса
QToolButton
:
•
DelayedPopup
—
0
— меню отображается при удержании кнопки, нажатой в течение некоторого промежутка времени;
•
MenuButtonPopup
—
1
— справа от кнопки отображается кнопка со стрелкой, нажатие которой приводит к немедленному открытию меню;
•
InstantPopup
—
2
— нажатие кнопки приводит к немедленному открытию меню.
Сигнал triggered()
при этом не генерируется;
popupMode()
— возвращает режим отображения меню, связанного с кнопкой;
setArrowType(<Тип значка>)
— позволяет вместо стандартного значка действия устано- вить значок в виде стрелки, указывающей в заданном направлении. В качестве парамет- ра задаются атрибуты
NoArrow
(значение по умолчанию),
UpArrow
,
DownArrow
,
LeftArrow или
RightArrow класса
QtCore.Qt
;
setAutoRaise(<Флаг>)
— если в качестве параметра указано значение
False
, кнопка будет отображаться с рамкой. По умолчанию кнопка сливается с фоном, а при наведе- нии указателя мыши становится выпуклой.
Класс
QToolButton поддерживает сигнал triggered(
, который генерируется при нажатии кнопки или комбинации клавиш, а также при выборе пункта в связанном меню.
Внутри обработчика через параметр доступно соответствующее действие.
27.4. Прикрепляемые панели
Если возможностей панелей инструментов недостаточно, и необходимо вывести на экран компоненты, занимающие много места (например, таблицу или иерархический список), можно воспользоваться прикрепляемыми панелями. Прикрепляемые панели реализуются с помощью класса
QDockWidget
Его иерархия наследования выглядит так:
(QObject, QPaintDevice) — QWidget — QDockWidget
Форматы конструктора класса
QDockWidget
:
<Объект> = QDockWidget([parent=None][, flags=0])
<Объект> = QDockWidget(<Название>[, parent=None][, flags=0])
В параметре
<Название>
задается название панели, которое отображается в заголовке панели и в контекстном меню при щелчке правой кнопкой мыши в области меню, области панелей инструментов или на заголовке прикрепляемых панелей. С помощью контекстного меню можно скрыть или отобразить прикрепляемую панель. В параметре parent указывается ссылка на родительское окно. Доступные значения параметра flags мы рассматривали в разд. 18.2.
Класс
QDockWidget наследует все методы базовых классов и поддерживает следующие до- полнительные методы (здесь приведены только интересующие нас — полный их список можно найти на странице https://doc.qt.io/qt-5/qdockwidget.html):
666
Часть II. Библиотека PyQt 5
setWidget(
— устанавливает компонент, который будет отображаться на при- крепляемой панели;
widget()
— возвращает ссылку на компонент, расположенный на панели;
setTitleBarWidget(
— позволяет указать пользовательский компонент, ото- бражаемый в заголовке панели;
titleBarWidget()
— возвращает ссылку на пользовательский компонент, расположен- ный в заголовке панели, или значение
None
, если компонент не был установлен;
setAllowedAreas(<Области>)
— задает области, к которым можно прикрепить панель.
В качестве параметра указываются атрибуты (или их комбинация через оператор
|
)
LeftDockWidgetArea
(слева),
RightDockWidgetArea
(справа),
TopDockWidgetArea
(сверху),
BottomDockWidgetArea
(снизу) или
AllDockWidgetAreas
(все области) класса
QtCore.Qt
;
setFloating(<Флаг>)
— если в качестве параметра указано значение
True
, панель ото- бразится в отдельном окне, а если указано значение
False
, она будет прикреплена к ка- кой-либо области;
isFloating()
— возвращает значение
True
, если панель отображается в отдельном окне, и
False
— в противном случае;
setFeatures(<Свойства>)
— устанавливает свойства панели. В качестве параметра ука- зывается комбинация (через оператор
|
) следующих атрибутов класса
QDockWidget
:
•
DockWidgetClosable
— панель можно закрыть;
•
DockWidgetMovable
— панель можно перемещать с помощью мыши;
•
DockWidgetFloatable
— панель можно вынести в отдельное окно;
•
DockWidgetVerticalTitleBar
— заголовок панели отображается с левой стороны, а не сверху;
•
NoDockWidgetFeatures
— панель нельзя закрыть, переместить и вынести в отдельное окно;
features()
— возвращает комбинацию установленных свойств панели;
toggleViewAction()
— возвращает объект действия (экземпляр класса
QAction
), с по- мощью которого можно скрыть или отобразить панель.
Класс
QDockWidget поддерживает следующие полезные сигналы (полный их список можно найти на странице https://doc.qt.io/qt-5/qdockwidget.html):
dockLocationChanged(<Область>)
— генерируется при переносе панели в другую об- ласть. Внутри обработчика через параметр доступен целочисленный идентификатор области, на которую была перенесена панель;
visibilityChanged(<Флаг>)
— генерируется при изменении видимости панели. Внутри обработчика через параметр доступно значение
True
, если панель видима, и
False
— если скрыта;
topLevelChanged(<Флаг>)
— генерируется при изменении состояние панели. Внутри об- работчика через параметр доступно значение
True
, если панель вынесена в отдельное окно, и
False
— если прикреплена к области.
Глава 27. Создание SDI- и MDI-приложений
667 27.5. Управление строкой состояния
Класс
QStatusBar реализует строку состояния, в которой можно выводить различные сооб- щения. Помимо текстовой информации, туда можно добавить различные компоненты, например индикатор хода выполнения процесса. Строка состояния состоит из трех секций:
секция для временных сообщений. Реализована по умолчанию. В эту секцию, в частно- сти, при наведении указателя мыши на пункт меню или кнопку на панели инструментов выводятся сообщения, сохраненные в объекте действия с помощью метода setStatusTip()
Вывести пользовательское сообщение во временную секцию можно с помощью метода showMessage()
;
обычная секция. При выводе временного сообщения содержимое обычной секции скры- вается. Чтобы отображать сообщения в этой секции, необходимо предварительно доба- вить туда компоненты вызовом метода addWidget()
или insertWidget()
. Добавленные компоненты выравниваются по левой стороне строки состояния;
постоянная секция. При выводе временного сообщения содержимое постоянной секции не скрывается. Чтобы отображать там сообщения, необходимо предварительно добавить туда компоненты методом addPermanentWidget()
или insertPermanentWidget()
. Добав- ленные компоненты выравниваются по правой стороне строки состояния.
Получить ссылку на строку состояния, установленную в главном окне, позволяет метод statusBar()
класса
QMainWindow
, а установить пользовательскую панель вместо стандартной можно с помощью метода setStatusBar(
. Иерархия наследования для класса
QStatusBar выглядит так:
(QObject, QPaintDevice) — QWidget — QStatusBar
Формат конструктора класса
QStatusBar
:
<Объект> = QStatusBar([parent=None])
В параметре parent указывается ссылка на родительское окно.
Класс
QStatusBar наследует все методы базовых классов и поддерживает следующие до- полнительные методы (здесь приведены только основные — полный их список можно най- ти на странице https://doc.qt.io/qt-5/qstatusbar.html):
showMessage(<Текст>[, msecs=0])
— выводит временное сообщение. Во втором пара- метре можно указать время в миллисекундах, на которое показывается сообщение: если указано значение
0
, то сообщение показывается, пока не будет выведено новое сообще- ние или вызван метод clearMessage()
. Метод является слотом;
currentMessage()
— возвращает временное сообщение, отображаемое в текущий мо- мент;
clearMessage()
— удаляет временное сообщение. Метод является слотом;
addWidget(
— добавляет указанный компонент в конец обыч- ной секции. В параметре stretch может быть указан фактор растяжения;
insertWidget(<Индекс>,
— добавляет компонент в указанную позицию обычной секции и возвращает индекс позиции. В параметре stretch может быть указан фактор растяжения;
addPermanentWidget(
— добавляет указанный компонент в ко- нец постоянной секции. В параметре stretch может быть указан фактор растяжения;