QT槽和信号故障
QT slots and signals fail
嗨,qt中的信号和插槽有问题。我主要创建了主窗口的对象。在mainwindow.cpp中,我创建了另一个类的对象(modbus_tcp)。我还在这里创建连接
void MainWindow::on_ConnectB_clicked()
{
modbus_tcp appts;
appts.slave();
connect(&appts,SIGNAL(msgSended(QString)),this,SLOT(msgEdit(QString)));
}
在主窗口.cpp/h 中声明的插槽之间
public slots:
void msgEdit(QString m);
void MainWindow::msgEdit(QString m)
{
ui->sendEdit->setText(m);
ui->recvEdit->setText(m);
//QMessageBox::information(0,"bad", "nope nope nope");
}
和modbus_tcp.h 中声明的信号
signals:
void msgSended(QString);
下一个i在modbus_tcp.cpp 中发射信号
emit msgSended("asdasd");
什么也没发生
当我试图在mainwindow.cpp中发射它的工作时
有什么想法吗?
void MainWindow::on_ConnectB_clicked()
{
modbus_tcp appts;
appts.slave();
connect(&appts,SIGNAL(msgSended(QString)),this,SLOT(msgEdit(QString)));
}
appts
是在堆栈中创建的,因此它将在插槽执行结束时被删除。尝试在堆中创建它(尝试使用指针)。
void MainWindow::on_ConnectB_clicked()
{
modbus_tcp *appts = new modbus_tcp;
connect(appts,SIGNAL(msgSended(QString)),this,SLOT(msgEdit(QString)));//first!
appts->slave();//now you can call it
}
使用指针,但首先使用connect
,然后使用此调用slave
。您在slave
中发出信号,但此时没有连接。你应该先进行连接,然后才能捕捉到信号。
相关文章:
- 分段故障(堆芯转储)矢量
- Qt VTK交互风格的信号到小部件
- C++中的动态铸造故障
- 数组的指针从不分段故障
- 获取日期异步信号安全吗?如果在信号处理程序中使用,它会导致死锁吗
- vscode g++链路故障:体系结构x86_64的未定义符号
- 访问被拒绝后,c++中的故障保护代码
- 程序接收了信号sigsegv,在代码块中调试时的细分故障
- 程序收到信号sigsegv,分段故障.在al_draw_tinted_bitmap中(bitmap = 0x0,tint
- 当程序遇到故障时,如何在信号处理函数中写入日志和上传日志到MYSQL
- 分段故障-接收到信号,SIGABORT
- Qt 信号在连接时导致分段故障
- Android原生libc信号11(SIGSEGV),代码2(SEGV_ACCERR),故障地址
- Qt信号和插槽故障
- 程序接收信号SIGSEGV,输出分段故障
- QT槽和信号故障
- gSoap中的分段故障,由于接收到来自操作系统的信号,劣化停止
- 当迭代通过大串集时,for循环接收到信号SIGSEGV,出现分段故障
- 分段故障错误(信号名称:SIGSEGV)的原因是什么,以及如何查找/修复它
- c++控制台程序接收到SIGSEGV信号,出现分段故障