QSignalTransition Class
QSignalTransition 클래스는 Qt 신호를 기반으로 한 전환 효과를 제공합니다. 더 보기...
| 헤더: | #include <QSignalTransition> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS StateMachine) target_link_libraries(mytarget PRIVATE Qt6::StateMachine) |
| qmake: | QT += statemachine |
| 상속: | QAbstractTransition |
속성
- senderObject : const QObject*
- signal : QByteArray
공개 함수
| QSignalTransition(QState *sourceState = nullptr) | |
| QSignalTransition(const QObject *sender, const char *signal, QState *sourceState = nullptr) | |
| QSignalTransition(const QObject *sender, PointerToMemberFunction signal, QState *sourceState = nullptr) | |
| virtual | ~QSignalTransition() |
| QBindable<const QObject *> | bindableSenderObject() |
| QBindable<QByteArray> | bindableSignal() |
| const QObject * | senderObject() const |
| void | setSenderObject(const QObject *sender) |
| void | setSignal(const QByteArray &signal) |
| QByteArray | signal() const |
신호
| void | senderObjectChanged() |
| void | signalChanged() |
재구현된 보호된 함수
| virtual bool | event(QEvent *e) override |
| virtual bool | eventTest(QEvent *event) override |
| virtual void | onTransition(QEvent *event) override |
상세 설명
일반적으로 QSignalTransition 객체를 직접 생성하기보다는, 발신자와 신호를 인수로 받는 QState::addTransition()의 오버로드를 사용합니다. QSignalTransition은 Qt State Machine 프레임워크의 일부입니다.
QSignalTransition의 서브클래스를 생성하고 eventTest()을 재구현하여 신호 전환을 조건부로 만들 수 있습니다. 이때 eventTest()에 전달되는 이벤트 객체는 QStateMachine::SignalEvent 객체가 됩니다. 예시:
class CheckedTransition : public QSignalTransition
{
public:
CheckedTransition(QCheckBox *check)
: QSignalTransition(check, SIGNAL(stateChanged(int))) {}
protected:
bool eventTest(QEvent *e) {
if (!QSignalTransition::eventTest(e))
return false;
QStateMachine::SignalEvent *se = static_cast<QStateMachine::SignalEvent*>(e);
return (se->arguments().at(0).toInt() == Qt::Checked);
}
};
...
QCheckBox *check = new QCheckBox();
check->setTristate(true);
QState *s1 = new QState();
QState *s2 = new QState();
CheckedTransition *t1 = new CheckedTransition(check);
t1->setTargetState(s2);
s1->addTransition(t1);속성 문서
[bindable] senderObject : const QObject*
참고: 이 속성은 ‘ QProperty ’ 바인딩을 지원합니다.
이 속성은 해당 신호 전환과 연관된 발신자 객체를 포함합니다.
액세스 함수:
| const QObject * | senderObject() const |
| void | setSenderObject(const QObject *sender) |
알림 신호:
| void | senderObjectChanged() | [see note below] |
참고: 이 신호는 비공개 신호입니다. 신호 연결에서 사용할 수 있지만, 사용자가 직접 발신할 수는 없습니다.
[bindable] signal : QByteArray
참고: 이 속성은 ‘ QProperty ’ 바인딩을 지원합니다.
이 속성은 해당 신호 전환과 연관된 신호를 포함합니다.
액세스 함수:
알림 신호:
| void | signalChanged() | [see note below] |
참고: 이 신호는 비공개 신호입니다. 신호 연결에서 사용할 수 있지만 사용자가 직접 발생시킬 수는 없습니다.
멤버 함수 문서
QSignalTransition::QSignalTransition(QState *sourceState = nullptr)
지정된 ` sourceState`를 사용하여 새로운 신호 전환을 생성합니다.
QSignalTransition::QSignalTransition(const QObject *sender, const char *signal, QState *sourceState = nullptr)
지정된 signal, sender, 그리고 sourceState 와 연관된 새로운 신호 전환을 생성합니다.
template <typename PointerToMemberFunction> QSignalTransition::QSignalTransition(const QObject *sender, PointerToMemberFunction signal, QState *sourceState = nullptr)
주어진 ` sender ` 객체의 ` signal ` 및 주어진 ` sourceState`과 연관된 새로운 신호 전환을 생성합니다. 이 생성자는 매크로 `Q_COMPILER_DELEGATING_CONSTRUCTORS`의 존재로 표시되는 바와 같이, 컴파일러가 위임 생성자를 지원하는 경우 활성화됩니다.
이 함수는 오버로드된 함수입니다.
[virtual noexcept] QSignalTransition::~QSignalTransition()
이 신호 전환을 제거합니다.
[override virtual protected] bool QSignalTransition::event(QEvent *e)
QAbstractTransition::event(QEvent *e)를 재구현합니다.
[override virtual protected] bool QSignalTransition::eventTest(QEvent *event)
QAbstractTransition::eventTest(QEvent *event)를 재구현합니다.
기본 구현은 ` event `가 ` QStateMachine::SignalEvent ` 객체이고, 이벤트의 발신자와 신호 인덱스가 이 전환과 일치할 경우 ` true `를 반환하며, 그렇지 않은 경우에는 ` false `를 반환합니다.
[override virtual protected] void QSignalTransition::onTransition(QEvent *event)
QAbstractTransition::onTransition(QEvent *event)를 재구현합니다.
const QObject *QSignalTransition::senderObject() const
이 신호 전환과 관련된 발신자 객체를 반환합니다.
참고: senderObject 속성에 대한게터 함수입니다.
참조: ` setSenderObject()` 함수.
[private signal] void QSignalTransition::senderObjectChanged()
senderObject 속성이 변경되면 이 신호가 전송됩니다.
참고: 이 신호는 비공개 신호입니다. 신호 연결에서 사용할 수는 있지만, 사용자가 직접 발생시킬 수는 없습니다.
참고: 속성 ` senderObject`에 대한알림 신호입니다.
참조: QSignalTransition::senderObject.
void QSignalTransition::setSenderObject(const QObject *sender)
이 신호 전이와 관련된 sender 객체를 설정합니다.
참고: senderObject 속성에 대한설정 함수입니다.
senderObject()도 참조하십시오 .
void QSignalTransition::setSignal(const QByteArray &signal)
이 신호 전이와 관련된 signal 를 설정합니다.
참고: signal 속성에 대한설정 함수입니다.
signal()도 참조하십시오 .
QByteArray QSignalTransition::signal() const
이 신호 전이와 관련된 신호를 반환합니다.
참고: signal 속성에 대한게터 함수입니다.
setSignal()도 참조하십시오 .
[private signal] void QSignalTransition::signalChanged()
이 신호는 신호 속성이 변경될 때 전송됩니다.
참고: 이 신호는 비공개 신호입니다. 신호 연결에서 사용할 수는 있지만, 사용자가 직접 발생시킬 수는 없습니다.
참고: 속성 ` signal`에 대한알림 신호입니다.
QSignalTransition::signal도 참조하십시오 .
© 2026 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.