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