• 4227阅读
  • 0回复

[提问]业务逻辑类的数据如何在GUI界面类上显示输出? [复制链接]

上一主题 下一主题
离线cc_guodong
 
只看楼主 倒序阅读 楼主  发表于: 2012-12-29
关键词: 求助
如题,我有两个类:
业务逻辑类Xsens,实时获取、处理外部设备(传感器)传递的数据
界面GUI类XsensQt,继承自QMainWindow,头文件为xsensqt.h和ui_xsensqt.h


XsensQt构造函数
XsensQt::XsensQt(QWidget *parent, Qt::WFlags flags)
: QMainWindow(parent, flags)
{
    ui.setupUi(this);
    connect(ui.action_ScanXsens, SIGNAL(triggered()), &sensor, SLOT(dohardwarescan()));
    connect(ui.action_ViewData, SIGNAL(triggered()), this, SLOT(putXsensInAThread()));    
}
void XsensQt::putXsensInAThread()
{
    QThread *XsensThread = new QThread(this);
    connect(XsensThread, SIGNAL(started()), &sensor, SLOT(showData()));
    connect(XsensThread, SIGNAL(finished()), &sensor, SLOT(deleteLater()));
    sensor.moveToThread(XsensThread);
    XsensThread->start();
}


Xsens数据处理函数
void Xsens::showData()
{
    while(!userQuit && res == XRV_OK)
    {
        // 这里得到传感器的数据并进行相应处理
        ui.labelAccX->setText(QString::number(data));
    }
}


最终的结果需要显示到XsensQt的Label中(定义在ui_xsensqt.h)
我直接在void Xsens::showData()中调用ui.labelAccX->setText()报错Unhandled exception at 0x779415de in XsensQt.exe: 0xC0000005: Access violation reading location 0x8b55ff93.
应该如何才能正确的在GUI界面上实时显示处理得到的数据呢?


另外我需要在GUI界面上以类似心电图的方式显示出来,又应该怎么做呢?
快速回复
限100 字节
 
上一个 下一个