Шаг 268.
Библиотека PyQt5.
Диалоговые окна. Создание многостраничного мастера. Класс QWizard
На этом шаге мы перечислим основные методы и сигналы этого класса.
Класс QWizard реализует набор страниц, отображаемых последовательно или в произвольном порядке. Иерархия наследования для него выглядит так:
(QObject, QPaintDevice) - QWidget - QDialog - QWizard
Формат конструктора класса QWizard:
<Объект> = QWizard([parent=None][, flags=0])
Помимо унаследованных методов, класс QWizard поддерживает следующие (здесь приведены только основные - полный их список доступен на странице
https://doc.qt.io/qt-5/qwizard.html):
- addPage (<QWizardPage>) - добавляет страницу в конец мастера и возвращает ее целочисленный идентификатор. В качестве параметра указывается
экземпляр класса QWizardPage;
- setPage (<Идентификатор>, <QWizardPage>) - добавляет страницу в указанную позицию;
- removePage (<Идентификатор>) - удаляет страницу с указанным идентификатором;
- page (<Идентификатор>) - возвращает ссылку на страницу (экземпляр класса QWizardPage), соответствующую указанному идентификатору,
или значение None, если такой страницы не существует;
- pageIds () - возвращает список с идентификаторами страниц;
- currentId () - возвращает идентификатор текущей страницы;
- currentPage () - возвращает ссылку на текущую страницу (экземпляр класса QWizardPage) или None, если страницы не существует;
- setStartId (<Идентификатор>) - задает идентификатор начальной страницы;
- startId () - возвращает идентификатор начальной страницы;
- visitedPages () - возвращает список с идентификаторами посещенных страниц или пустой список;
- hasvisitedPage (<Идентификатор>) - возвращает значение True, если страница была посещена, и False - в противном случае;
- back() - имитирует нажатие кнопки Back. Метод является слотом;
- next () - имитирует нажатие кнопки Next. Метод является слотом;
- restart () - перезапускает мастер. Метод является слотом;
- nextId (self) - этот метод следует переопределить в классе, наследующем класс QWizard, если необходимо изменить порядок отображения страниц. Метод вызывается
при нажатии кнопки Next и должен возвращать идентификатор следующей страницы или значение -1;
- initializePage (self, <Идентификатор>) - этот метод следует переопределить в классе, наследующем QWizard, если необходимо производить настройку свойств
компонентов на основе данных, введенных на предыдущих страницах. Метод вызывается при нажатии кнопки Next на предыдущей странице, но до отображения следующей страницы. Если
установлена опция IndependentPages, метод вызывается только при первом отображении страницы;
- cleanupPage (self, <Идентификатор>) - этот метод следует переопределить в классе, наследующем QWizard, если необходимо контролировать нажатие кнопки Back. Метод
вызывается при нажатии кнопки Back на текущей странице, но до отображения предыдущей страницы. Если установлена опция IndependentPages, метод не вызывается;
- validateCurrentPage (self) - этот метод следует переопределить в классе, наследующем QWizard, если необходимо производить проверку данных, введенных на текущей
странице. Метод вызывается при нажатии кнопки Next или Finish. Метод должен вернуть значение True, если данные корректны, и False - в противном случае. Если метод
возвращает значение False, переход на следующую страницу не производится;
- setField (<Свойство>, <Значение>) - устанавливает значение указанного свойства. Создание свойства производится с помощью метода registerField() класса
QWizardPage. С помощью этого метода можно изменять значения компонентов, расположенных на разных страницах мастера;
- field (<Свойство>) - возвращает значение указанного свойства. Создание свойства производится с помощью метода registerField() класса QWizardPage. С помощью
метода field() можно также получить значения компонентов, расположенных на разных страницах мастера;
- setWizardStyle (<Стиль>) - задает стилевое оформление мастера. В качестве параметра указываются следующие атрибуты класса QWizard:
- ClassicStyle (или 0);
- ModernStyle (или 1);
- MacStyle (или 2);
- AeroStyle (или 3) - доступен только в операционной системе Windows Vista и последующих версиях этой системы. В остальных системах будет соответствовать стилю ModernStyle;
- setTitleFormat (<Формат>) - задает формат отображения названия страницы. В качестве параметра указываются следующие атрибуты класса QtCore.Qt:
- PlainText (или 0) - простой текст;
- RichText (или 1) - форматированный текст;
- AutoText (или 2) - автоматическое определение (режим по умолчанию). Если текст содержит HTML-теги, то используется режим RichText, в противном случае - режим PlainText;
- setSubTitleFormat (<Формат>) - задает формат отображения описания страницы. Допустимые значения см. в описании метода setTitleFormat();
- setButton (<Роль>, <QAbstractButton>) - добавляет кнопку для указанной роли. В первом параметре указываются следующие атрибуты класса QWizard:
- BackButton (или 0) - кнопка Back;
- NextButton (или 1) - кнопка Next;
- CommitButton (или 2) - кнопка Commit;
- FinishButton (или 3) - кнопка Finish;
- CancelButton (или 4) - кнопка Cancel (если установлена опция NoCancelButton, кнопка не отображается);
- HelpButton (или 5) - кнопка Help (чтобы отобразить кнопку, необходимо установить опцию HaveHelpButton);
- CustomButtonl (или 6) - первая пользовательская кнопка (чтобы отобразить кнопку, необходимо установить опцию HaveCustomButtonl);
- CustomButton2 (или 7) - вторая пользовательская кнопка (чтобы отобразить кнопку, необходимо установить опцию HaveCustomButton2);
- CustomButton3 (или 8) - третья пользовательская кнопка (чтобы отобразить кнопку, необходимо установить опцию HaveCustomButton3);
- button (<Роль>) - возвращает ссылку на кнопку с указанной ролью;
- setButtonText (<Роль>, <Текст надписи>) - устанавливает текст надписи для кнопки с указанной ролью;
- buttonText (<Роль>) - возвращает текст надписи кнопки с указанной ролью;
- setButtonLayout (<Список с ролями>) - задает порядок отображения кнопок. В качестве параметра указывается список с ролями кнопок. Список может также содержать значение атрибута
Stretch класса QWizard, который задает фактор растяжения;
- setPixmap (<Роль>, <QPixmap>) - добавляет изображение для указанной роли. В первом параметре указываются следующие атрибуты класса QWizard:
- WatermarkPixmap (или 0) - изображение, которое занимает всю левую сторону страницы при использовании стилей ClassicStyle или ModernStyle;
- LogoPixmap (или 1) - небольшое изображение, отображаемое в правой части заголовка при использовании стилей ClassicStyle или ModernStyle;
- BannerPixmap (или 2) - фоновое изображение, отображаемое в заголовке страницы при использовании стиля ModernStyle;
- BackgroundPixmap (или 3) - фоновое изображение при использовании стиля MacStyle;
- setOption (<Опция>[, on=True]) - если во втором параметре указано значение True, заданная в первом параметре опция будет установлена, а если указано
значение False, сброшена. В первом параметре указываются следующие атрибуты класса QWizard:
- IndependentPages - страницы не зависят друг от друга. В этом случае метод initializePage() будет вызван только при первом отображении страницы, а метод
cleanupPage() не вызывается;
- IgnoreSubTitles - не отображать описание страницы в заголовке;
- ExtendedWatermarkPixmap - изображение с ролью WatermarkPixmap будет занимать всю левую сторону страницы вплоть до нижнего края окна;
- NoDefaultButton - не делать кнопки Next и Finish кнопками по умолчанию;
- NoBackButtonOnStartPage - не отображать кнопку Back на стартовой странице;
- NoBackButtonOnLastPage - не отображать кнопку Back на последней странице;
- DisabledBackButtonOnLastPage - сделать кнопку Back неактивной на последней странице;
- HaveNextButtonOnLastPage - показать неактивную кнопку Next на последней странице;
- HaveFinishButtonOnEarlyPages - показать неактивную кнопку Finish на непоследних страницах;
- NoCancelButton - не отображать кнопку Cancel;
- CancelButtonOnLeft - поместить кнопку Cancel слева от кнопки Back (по умолчанию кнопка Cancel расположена справа от кнопок Next и Finish);
- HaveHelpButton - показать кнопку Help;
- HelpButtonOnRight - поместить кнопку Help у правого края окна;
- HaveCustomButtonl - показать пользовательскую кнопку с ролью CustomButtonl;
- HaveCustomButton2 - показать пользовательскую кнопку с ролью CustomButton2;
- HaveCustomButton3 - показать пользовательскую кнопку с ролью CustomButton3;
- NoCancelButtonOnLastPage - не показывать кнопку Cancel на последней странице;
- setOptions (<Опции>) - устанавливает сразу несколько опций;
- setSideWidget (<QWidget>) - устанавливает заданный компонент в левую часть мастера.
Если используется стиль ClassicStyle или ModernStyle, компонент будет выведен выше заданного с ролью WatermarkPixmap изображения.
Класс QWizard поддерживает следующие сигналы:
- currentIdChanged (<Идентификатор>) - генерируется при изменении текущей страницы.
Внутри обработчика через параметр доступен целочисленный идентификатор текущей страницы;
- customButtonClicked (<Роль>) - генерируется при нажатии кнопок с ролями CustomButtonl, CustomButton2 и CustomButton3.
В параметре доступна целочисленная роль нажатой кнопки;
- helpRequested () - генерируется при нажатии кнопки Help;
- pageAdded (<Идентификатор>) - генерируется при добавлении страницы. В параметре передается целочисленный идентификатор добавленной страницы;
- pageRemoved (<Идентификатор>) - генерируется при удалении страницы. В параметре передается целочисленный идентификатор удаленной страницы.
На следующем шаге мы рассмотрим класс QWizardPage.
Предыдущий шаг
Содержание
Следующий шаг