新做了一个音乐播放器项目,想加到之前做的智能家居项目里应该怎么操作?咨询过的人跟我说智能家居加个widget,然后整体移过去就行,有点懵
都是在linux系统运行的应用软件,看你智能家居系统留了网络接口了没,有网络接口的话,可以用ftp或scp指令拷贝进去,运行就可以了!
使用两个串口对象实现
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
#include <QSerialPort> //提供访问串口得到功能
#include <QSerialPortInfo> //提供系统中存在的串口信息
#include <QMessageBox> //信息弹出框
#include <QDebug>
QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE
//使用枚举保存波特率
typedef enum
{
B1200 =1200,
B9600 = 9600,
B115200 = 115200,
B921600 = 921600
}Baud;
class Widget : public QWidget
{
Q_OBJECT
public:
Widget(QWidget *parent = nullptr);
~Widget();
private slots:
//接收串口数据
void SerialPortReadyRead(); //比作COM6
void Serial2PortReadyRead(); //比作COM7
private slots:
void on_PB_receive_clicked();
void on_PB_send_clicked();
void on_PB_detectserial_clicked();
void on_PB_openserial_clicked();
void on_comboBox_b_currentIndexChanged(int index);
void on_PB_openserial_2_clicked();
void on_PB_send_2_clicked();
private:
Ui::Widget *ui;
QSerialPort serial; //串口1
QSerialPort serial2; //串口2
};
#endif // WIDGET_H
-------------------------------------------------------------------------------------------------------------------------------------
首先需要在qt智能家居项目中添加一个widget控件,可以按照参考资料中的段落2中的方法进行操作。然后将音乐播放器项目移动到这个widget控件中。移动的具体过程如下:
将音乐播放器项目中的ui界面文件拷贝到智能家居项目中widget控件所在的文件夹中。
如果音乐播放器项目中有使用qss样式表文件,将样式表文件也拷贝到智能家居项目中。
在widget控件的头文件中包含音乐播放器项目的头文件。
在widget控件的构造函数中创建音乐播放器项目的对象,并将其添加到widget控件中。
对于音乐播放器项目中使用继承QWidget的控件,在其构造函数中添加setAttribute(Qt::WA_StyledBackground, true)来保证样式表可以正常使用。
如果需要实现窗口边框和背景透明的效果,可以参考参考资料中的段落1中的方法进行操作。
可根据需要使用qss样式表文件对widget控件和音乐播放器项目中的控件进行美化,方法可以参考参考资料中的段落0和7。
代码示例:
#include "musicplayer.h"
...
private:
MusicPlayer *mp; //音乐播放器对象指针
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
...
mp = new MusicPlayer(this); //创建音乐播放器对象
mp->move(50, 50); //设置对象位置
mp->show(); //显示对象
}
MusicPlayer::MusicPlayer(QWidget *parent) :
QWidget(parent),
ui(new Ui::MusicPlayer)
{
ui->setupUi(this);
setAttribute(Qt::WA_StyledBackground, true); //添加此行代码
...
}