基于ARM开发板的QT双屏显示之间的通讯问题
一般只有一个界面时,子界面和主界面通讯 可以使用信号和槽函数。
在主界面创建子界面的指针,可以直接调用子界面的槽函数。在子界面创建信号,发送,在修护洁面接收信号,同样可以实现通信。
但在双屏时,就需要把连接建立在main.cpp中才能进行通讯。
在mainwindow.h下创建信号。
signals:
void send_data(int );
在按键槽函数发送;
void MainWindow::on_pushButton_clicked()
{
int a=rand();
emit send_data(a);
}
在window2.h窗口创建槽函数。
private slots:
void show_data(int );
在window2.cpp中写槽函数。
void Window2::show_data(int x)
{
QString str= QString::number(x);
ui->lineEdit->setText(str);
qDebug()<<"已经执行槽函数";
//1秒之后显示为厉害
QTimer::singleShot(1000,this,[=](){
ui->lineEdit->setText("厉害");
});
}
最后再main.cpp中连接一下就行。
QObject::connect(&w, SIGNAL(send_data(int )), &w2, SLOT(show_data(int )));
我是一开始只写了类型,没带形参,所以这里也不用带。
整个文档见云盘。
链接:https://pan.baidu.com/s/1Ey7p28F8ih1npCkz7BEUJg
提取码:nuli
复制这段内容后打开百度网盘手机App,操作更方便哦