사용자 정의 명령어
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