智能家居实训(华清远见)第六天

课程主要内容:
(1)安装QT 编译软件;
(2)学习软件的基本用法,创建工程文件
(3)了解软件中ui界面的组件及其属性用法。
(4)代码编写以及运行:组件使用;图片显示;计算器;多页面跳转;定时器生成;网络连接。
代码以及作业:

//图片显示
#include "pic.h"
#include "ui_pic.h"

pic::pic(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::pic)
{
    ui->setupUi(this);
    this->setWindowTitle("hhh");
    this->setWindowIcon(QIcon(":/004.png"));

    QPixmap pix = QPixmap(":/001.png").scaled(this->size());
    QPalette palette;
    palette.setBrush(backgroundRole(),QBrush(pix));
    this->setPalette(palette);
}

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

void pic::on_pushButton_clicked()
{

}
//计算器
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "qmessagebox.h"

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
}

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

void MainWindow::on_pushButton_clicked()
{
    QString str1 = ui->lineEdit->text();
    QString str2 = ui->lineEdit_2->text();

    double arg1 = str1.toDouble();
    double arg2 = str2.toDouble();
    double result = 0;
    if(ui->comboBox->currentText()=="+")
    {
        result = arg1 + arg2;
    }
    else if(ui->comboBox->currentText()=="-")
    {
        result = arg1 - arg2;
    }
    else if (ui->comboBox->currentText()=="*")
    {
        result = arg1 *arg2;
    }
    else
    {
        if(arg2==0)
        {
            QMessageBox::warning(this,"警告","除法运算中除数不能为0,请重新输入");
            myClear();
        }
        else
        {
            result = arg1/arg2;
        }
    }
    QString tmp1 = QString::number(result);
     ui->label_2->setText(tmp1);
}
void MainWindow::myClear()
{
    ui->lineEdit->clear();
     ui->lineEdit_2->clear();
      ui->label_2->clear();
}

//定时器生成:
#include "widget.h"
#include "ui_widget.h"
#include <QTimer>
#include <QTime>
widget::widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::widget)
{
    ui->setupUi(this);
    connect(&timer,SIGNAL(timeout()),this,SLOT(timeroutSlot()));
    //参数1:信号发出者
    //参数2:发出怎样的信号
    //参数3:this
    //参数4:槽函数
    ui->lcdNumber->setDigitCount(8);
    QTime time(0,0,0);
    ui->lcdNumber->display(time.toString("hh:mm:ss"));
    n = 0;
}

widget::~widget()
{
    delete ui;
}
void widget::timeroutSlot()
{
    QTime time(0,0,0);
    n++;
    QTime tmp = time.addSecs(n);
    ui->lcdNumber->display(tmp.toString("hh:mm:ss"));
}

void widget::on_pushButton_clicked()
{
    timer.start(1000);
}
//网络连接:
#include "widget.h"
#include "ui_widget.h"

Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);
    connect(&socket,SIGNAL(connected()),this,SLOT(myconnectSlot()));
    connect(&socket,SIGNAL(readyRead()),this,SLOT(recvSlot()));
}

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

void Widget::on_pushButton_clicked()
{
    QString ip=ui->lineEdit->text();
    int port = ui->lineEdit_2->text().toInt();
    socket.connectToHost(ip,port);
}
void Widget::myconnectSlot()
{
    ui->pushButton->setEnabled(false);
}

void Widget::on_pushButton_2_clicked()
{
   QString str = ui->lineEdit_3 ->text();
    QByteArray arr;
    arr.append(str);
    socket.write(arr);
}
void Widget::recvSlot()
{
    char buf[100]={0};
    socket.read(buf,sizeof(buf));
    QString str=QString::fromUtf8(buf);
    ui->recvlabel->setText(str);
}

收获和感悟:Qt这个软件是基于C++的编程语法,没有学过不过感觉还好学过C语言和C#之后,写代码也没有很困难,或者说很难理解中间的逻辑,界面设计方面和vs一样拖拽过去就好了,也是比较容易操作的。要注意的就是头文件部分,我老是忘记写头文件,找半天错误,还是要细心认真的写代码。

  • 1
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
项目开发环境 Linux+Arm53+C语言   项目需求    功能类别 功能名称 描述 家电控制模块 1、空调控制模块 信息显示 显示当前室内温度 自动控制 设置空调在某温度下自动开、关  2、风扇控制模块 状态显示 风扇开、关 自动控制 设置风扇的档数 3、灯光控制模块 状态控制 灯光的开/关控制 亮度 正常、节能  4、窗帘控制模块 自动开/关 根据室外的亮度自动开启/关闭窗帘 手动开/关 读取当前窗帘状态,手动开启/关闭 监控模块  1、烟感监控 自动控制 超过限量烟雾浓渡报警  2、红外监控 自动控制 有人非法闯进报警  3、报警功能 自动控制 打开、关闭  4、GPRS模块 信息收发 当有报警信息的时候,系统会自动将警报信息发送到指定的手机号码。 信息设定 设定接收信息的手机号  5、访客视频对讲 状态显示 观察访客信息、自定义门锁开、关 娱乐模块  1、收音机 状态控制 开、关 自定义 更换频道 自动调节声音 增大、减小  2、家庭影院 灯光控制 亮度效果调节 自动调节声音 增大、减小  3、音频播放 状态控制 开、关 自动调节声音 增大、减小 自定义模式 选择播放、随机播放、顺序播放、列表循环  4、数码相册 状态控制 开、关 自定义模式 选择播放、随机播放、顺序播放、列表循环 场景切换  1、在家模式 状态控制 家居电器开关、灯光亮度、监控状态  2、离家模式    项目源码结构:     |--bin            脚本目录         |--tar.sh     项目打包脚本     |--data           数据目录     |--include        头文件         |--beep.h     蜂鸣器模块         |--bmp.h      BMP图模块         |--config.h   项目配置文件         |--file.h     文件操作模块         |--jpeg.h     JPG图模块         |--led.h      LED模块         |--mp3.h      音频模块         |--mplayer.h  音频库模块         |--res.h      资源配置文件         |--tslib.h    触摸模块         |--ui.h       UI模块         |--vedio.h    视频模块     |--lib            库文件     |--pic            资源图片         |--icon       应用图标         |--ui         UI文件     |--shortcut       项目效果图     |--ext            第三方库         |--driver     驱动         |--lib        第三方库     |--src            代码目录         |--main.c     主程序         |--Makfile    自动编译脚本 --------------------- 作者:qq_39188039 来源:CSDN 原文:https://blog.csdn.net/qq_39188039/article/details/83751526 版权声明:本文为博主原创文章,转载请附上博文链接!

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值