QAbstractFormBuilder Class

QAbstractFormBuilder 클래스는 런타임에 사용자 인터페이스를 생성하는 클래스에 대한 기본 구현을 제공합니다. 더 보기...

Header: #include <QAbstractFormBuilder>
CMake: find_package(Qt6 REQUIRED COMPONENTS Designer)
target_link_libraries(mytarget PRIVATE Qt6::Designer)
qmake: QT += designer
상속 대상:

QFormBuilder

공용 함수

QAbstractFormBuilder()
virtual ~QAbstractFormBuilder()
QString errorString() const
virtual QWidget *load(QIODevice *device, QWidget *parent = nullptr)
virtual void save(QIODevice *device, QWidget *widget)
void setWorkingDirectory(const QDir &directory)
QDir workingDirectory() const

상세 설명

QAbstractFormBuilder는 사용자 인터페이스 파일에서 폼을 구성하기 위한 표준 인터페이스와 기본 구현을 제공합니다. 직접 인스턴스화할 수 있는 것은 아닙니다. 런타임에 UI 파일에서 사용자 인터페이스를 만들려면 QFormBuilder 클래스를 사용합니다. 예를 들어

        MyForm::MyForm(QWidget *parent)
            : QWidget(parent)
        {
            QFormBuilder builder;
            QFile file(":/forms/myWidget.ui");
            file.open(QFile::ReadOnly);
            QWidget *myWidget = builder.load(&file, this);
            file.close();

            auto *layout = new QVBoxLayout(this);
            layout->addWidget(myWidget);
        }

양식 작성기 동작의 특정 측면을 재정의하려면 QAbstractFormBuilder를 서브클래싱하고 관련 가상 함수를 다시 구현하세요:

  • load()는 임의의 QIODevices에서 UI 형식 파일을 읽고, 포함된 XML 데이터에서 위젯을 구성하는 작업을 처리합니다.
  • save()는 UI 형식의 위젯 세부 정보를 임의의 QIODevices에 저장하는 작업을 처리합니다.
  • workingDirectory() 및 setWorkingDirectory()는 폼이 저장되는 디렉터리를 제어합니다. 폼 빌더는 이 디렉터리에 상대적인 경로에서 다른 리소스를 찾습니다.

QFormBuilder 클래스는 일반적으로 Qt Widgets Designer 을 임베드하는 사용자 정의 컴포넌트 및 애플리케이션에서 사용됩니다. 런타임에 사용자 인터페이스를 동적으로 생성해야 하는 독립 실행형 애플리케이션은 QUiLoader 를 사용합니다. Qt UI Tools 모듈을 사용합니다.

또한 Qt UI Tools.

멤버 함수 문서

QAbstractFormBuilder::QAbstractFormBuilder()

새 양식 작성기를 구축합니다.

[virtual noexcept] QAbstractFormBuilder::~QAbstractFormBuilder()

양식 작성기를 파괴합니다.

QString QAbstractFormBuilder::errorString() const

load()에서 발생한 마지막 오류에 대한 사람이 읽을 수 있는 설명을 반환합니다.

load()도 참조하세요 .

[virtual] QWidget *QAbstractFormBuilder::load(QIODevice *device, QWidget *parent = nullptr)

지정된 device 에서 위젯의 XML 표현을 로드하고 지정된 parent 을 사용하여 새 위젯을 구성합니다.

save() 및 errorString()도 참조하세요 .

[virtual] void QAbstractFormBuilder::save(QIODevice *device, QWidget *widget)

지정된 widget 의 XML 표현을 표준 UI 파일 형식으로 지정된 device 에 저장합니다.

참고: Qt Widgets Designer 에 양식을 저장할 때와 달리 모든 속성 값이 기록됩니다. 이는 속성 값이 수정되었는지 여부에 대한 상태가 Qt 속성 시스템에 저장되지 않기 때문입니다. 저장 중인 위젯은 load()를 통해 로드된 것이 아니라 동적으로 생성되었을 수 있으므로 이 경우 폼 빌더는 변경된 속성 목록을 인식하지 못합니다. 또한 동적으로 생성된 위젯에 대해 이 작업을 수행할 수 있는 일반적인 방법이 없습니다.

따라서 결과 XML 파일에서 필요하지 않은 속성은 로드하기 전에 제거해야 합니다. 또는 이 메서드를 호출할 때 저장할 속성을 이미 알고 있는 경우 computeProperties() 을 오버로드하여 필요한 속성의 필터링된 목록을 반환할 수 있습니다. 그렇지 않으면 이러한 속성 중 일부가 서로 의존할 수 있으므로 예기치 않은 동작이 발생할 수 있습니다.

load()도 참조하세요 .

void QAbstractFormBuilder::setWorkingDirectory(const QDir &directory)

양식 작성기의 현재 작업 디렉터리를 지정된 directory 으로 설정합니다.

workingDirectory()도 참조하세요 .

QDir QAbstractFormBuilder::workingDirectory() const

폼 빌더의 현재 작업 디렉터리를 반환합니다.

setWorkingDirectory()도 참조하세요 .

© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.