qt 读取手机传感器

手机界面对qt 里面的ui界面支持很低,如果想做个好看的界面还是用qml去搞吧。通过assitant的查找,发现手机有如下传感器可以使用:

这里我就挑几个来说,其他的都类似。下面是QAccelerometer 和 Gyroscope ,代码如下:

#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    setAttribute(Qt::AA_SynthesizeTouchForUnhandledMouseEvents);
    setAttribute(Qt::WA_AcceptTouchEvents);
    ui->setupUi(this);
    gyroscope = new QGyroscope(this);
    gyroscope->start();
    reader = gyroscope->reading();
    acceler = new QAccelerometer(this);
    acceler->setAccelerationMode(QAccelerometer::Combined);
    acceler->start();
    accelereader = acceler->reading();
    qreal x = reader->x();
    qreal y = reader->y();
    qreal z = reader->z();
    ui->lcdNumber->display(x);
    ui->lcdNumber->display(y);
    ui->lcdNumber->display(z);
    x = accelereader->x();
    y = accelereader->y();
    z = accelereader->z();
    ui->lcdNumber_4->display(x);
    ui->lcdNumber_5->display(y);
    ui->lcdNumber_6->display(z);
    timer = new QTimer();
    timer->setInterval(1000);
    connect(timer,SIGNAL(timeout()),this,SLOT(on_pushButton_clicked()));
    timer->start();
}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::on_pushButton_clicked()
{
        qreal x = reader->x();
        qreal y = reader->y();
        qreal z = reader->z();
        ui->lcdNumber->display(x);
        ui->lcdNumber_2->display(y);
        ui->lcdNumber_3->display(z);
        x = accelereader->x();
        y = accelereader->y();
        z = accelereader->z();
        ui->lcdNumber_4->display(x);
        ui->lcdNumber_5->display(y);
        ui->lcdNumber_6->display(z);
}


  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值