Skip to content

自定义指令

在TeachPendantDemo中,建立三个文件

在widget_mannager.cpp中将signal_userdefine_cmd_init与signal_userdefine_cmd_alter这两个信号和我们的界面绑定起来

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


    // 注册my_custom_widget界面
    connect(Nextp::getInstance(),SIGNAL(signal_openWidget()),this,SLOT(slot_openMyCustomWidget()));


    // 注册my_custom_command界面
    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)));


    // 注册关闭界面的信号,收到这个系统信号需要关闭所有custom界面
    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_commamd.ui

在实现slot_modifyMyCustomCommand是打开一个界面,并根据int,QString,QString这三个参数,初始化界面。

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