Skip to content

사용자 정의 명령어

TeachPendantDemo에서 세 개의 파일을 생성합니다

widget_mannager.cpp에서 signal_userdefine_cmd_init과 signal_userdefine_cmd_alter 두 신호를 우리 UI와 바인딩합니다

cpp
WidgetManager::WidgetManager(QObject *parent) :
    QObject(parent)
{
    Nextp::getInstance();

    // my_custom_widget UI 등록
    connect(Nextp::getInstance(),SIGNAL(signal_openWidget()),this,SLOT(slot_openMyCustomWidget()));

    // my_custom_command UI 등록
    connect(Nextp::getInstance(),SIGNAL(signal_userdefine_cmd_init(int)),this,SLOT(slot_openMyCustomCommand(int)));
    connect(Nextp::getInstance(),SIGNAL(signal_userdefine_cmd_alter(int,QString,QString)),this,SLOT(slot_modifyMyCustomCommand(int,QString,QString)));

    // UI 닫기 신호 등록, 이 시스템 신호를 받으면 모든 custom UI를 닫아야 함
    connect(Nextp::getInstance(),SIGNAL(signal_closeWidget()),this,SLOT(slot_closeAllCustomWidget()));

    // 컨트롤러 메시지 수신 콜백 등록
    connect(Nextp::getInstance(),SIGNAL(signal_receiveMessage(const quint16 &,const QByteArray &)),this,SLOT(slot_receiveMessage(const quint16 &,const QByteArray &)));
}

void WidgetManager::slot_openMyCustomCommand(int)
{
    Nextp::getInstance()->setWidgetParentLocation((QWidget*)MyCustomCommand::getInstance(),86,96);
    MyCustomCommand::getInstance()->show();
    MyCustomCommand::getInstance()->raise();
    Nextp::getInstance()->widgetShowFinish();
}

첫 번째 신호는 열기 이벤트에 바인딩되고, 두 번째 신호는 수정 이벤트에 바인딩됩니다.

slot_openMyCustomCommand 구현에서는 새로운 custom_command.ui를 엽니다

slot_modifyMyCustomCommand 구현에서는 UI를 열고 int, QString, QString 세 매개변수에 따라 UI를 초기화합니다.

  • my_custom_command.h
  • my_custom_command.cpp
  • my_custom_command.ui