树莓派安装QT
sudo apt-get update sudo apt-get upgrade sudo apt-get install qt5-default sudo apt-get install qtcreator
QT显示时间 include "QTimer" include "QDateTime"
QTimer *timer = new QTimer(this); connect(timer,SIGNAL(timeout()),this,SLOT(timerUpdate())); timer ->start(1000); void MainWindow::timerUpdate(void) { QDateTime time = QDateTime::currentDateTime(); QString str = time.toString("yyyy-MM-dd hh::mm:ss dddd"); ui -> label -> setText(str); }
QT 数据库 pro
头文件包含 #include <QSqlDriver #include <QSqlDatabase> #include <QSqlQuery> #include <QSqlError> #include <QSqlRecord> #include <QSqlResult>
建立新表 QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE"); db.setDatabaseName(data_station.db); if(!db.open()) { qDebug() << "Error: failed to connected database." << db.lastError(); } else { qDebug() << "Success to connect database."; } //如果不存在则创建表格 //序号 : ID int //账号 : user text //密码 : key text QString str = "create table userManagers(ID int primary key, user text,key text)"; QSqlQuery sql_query; if(!sql_query.exec(str)) { qDebug() << "Error:fail to create table." << sql_query.lastError(); } else { qDebug() << "Table created!"; } db.close();
插入数据 QSqlQuery sql_query; QString ID; QString user; QString key; QString str; str = "INSERT INTO userManagers VALUES(" + ID + ",'" + user + "','" + key +"')"; qDebug() << str; if(!sql_query.exec(str)) { qDebug() << sql_query.lastError(); } else { qDebug() << "INSERT SUCCESSED!"; } db.close();
删除数据 QString str; str = "DELETE FROM userManagers"; QSqlQuery sql_query; sql_query.exec(str); if(!sql_query.exec()) { qDebug() << sql_query.lastError(); } else { qDebug() << "DELETE SUCCESSED!"; } db.close();
查询数据 QString str = "select * from userManagers"; QSqlQuery sql_query; sql_query.exec(str); if(!sql_query.exec()) { qDebug() << sql_query.lastError(); } else { while(sql_query.next()) { QString ID = sql_query.value(0).toString(); QString user = sql_query.value(1).toString(); QString KEY = sql_query.value(2).toString(); } } db.close();
QT 弹出提示窗口
头文件
函数QMessageBox message(QMessageBox ::Waring,"Waring","警告提示",QMessageBox::Yes|QMessageBox::No);
树莓派QT串口使用 安装
sudo apt-get install libqt5serialport5 sudo apt-get install libqt5serialport5-dev
pro
QT += core gui LIBS += -lwiringPi QT += serialport
头文件 #include <QWidget> #include <QtSerialPort/QSerialPort> #include <QtSerialPort/QSerialPortInfo> #include <QDebug> #include <QString> namespace Ui { class Widget; } class Widget : public QWidget { Q_OBJECT public: explicit Widget(QWidget *parent = 0); ~Widget(); private slots: void on_pushButton_clicked(); void read(); private: Ui::Widget *ui; QSerialPort *serial;
CPP #include "widget.h" #include "ui_widget.h" Widget::Widget(QWidget *parent) : QWidget(parent), ui(new Ui::Widget) { ui->setupUi(this); serial = new QSerialPort; serial->close(); serial->setPortName("ttyS0"); serial->open(QIODevice::ReadWrite); serial->setBaudRate(115200); serial->setDataBits(QSerialPort::Data8); serial->setParity(QSerialPort::NoParity); serial->setStopBits(QSerialPort::OneStop); serial->setFlowControl(QSerialPort::NoFlowControl); connect(serial,&QSerialPort::readyRead,this,&Widget::read); } Widget::~Widget(){ delete ui; } void Widget::on_pushButton_clicked(){ QByteArray a = QByteArray("\n"); a.append(ui->textEdit->toPlainText().toLatin1()); serial->write(a); } void Widget::read(){ QByteArray buf; buf = serial->readAll(); qDebug() << buf; QString a = QString(buf); ui->textEdit_2->setText(a); }
QT TCP客户端 pro
头文件 #include <QTcpServer> #include <QTcpSocket> #include <QHostAddress> #include <QMessageBox> private slots: void ReadData(); void ReadError(QAbstractSocket::SocketError); private: QTcpSocket *tcpClient
库文件 tcpClient = new QTcpSocket(this); tcpClient -> abort(); connect(tcpClient,SIGNAL(readyRead()),this,SLOT(ReadData())); connect(tcpClient,SIGNAL(error(QAbstractSocket::SocketError)),\ this,SLOT(ReadError(QAbstractSocket::SocketError))); void Network::ReadData() { QByteArray buffer = tcpClient -> readAll(); if(!buffer.isEmpty()) { ui -> edtRecv -> append(buffer); } } void Network::ReadError(QAbstractSocket::SocketError) { tcpClient -> disconnectFromHost(); QMessageBox msgBox; msgBox.setText(tr("failed to connect server because %1").arg(tcpClient -> errorString())); msgBox.exec(); } void Network::on_pushButton_clicked()//连接网络 { if(ui -> pushButton -> text() == "连接") { QString ipstr = ui -> textEdit ->toPlainText();//获取文本框IP地址 int portstr = (ui -> textEdit_2 -> toPlainText()).toInt();//获取文本框端口地址 tcpClient -> connectToHost(ipstr,portstr); if(tcpClient -> waitForConnected(1000)) { ui -> pushButton -> setText("断开"); ui -> pushButton_2 -> setEnabled(true); } } else { tcpClient -> disconnectFromHost(); if(tcpClient -> state() == QAbstractSocket::UnconnectedState || tcpClient -> waitForDisconnected(1000)) { ui -> pushButton -> setText("连接"); ui -> pushButton_2 -> setEnabled(false); } } } void Network::on_pushButton_2_clicked()//发送数据 { QString data = ui->textEdit_3 -> toPlainText(); if(data != "") { tcpClient -> write(data.toLatin1()); } }
QT 播放音频 sound类 pro
函数 #include <QSoundEffect> #include <QtMultimedia/QMediaPlayer> QSound *sound = new QSound("/home/pi/1.wav",this);//QSOUND只可以播放wav sound -> play();//播放音乐