实验室智能管理系统(2)——Arm+QT部分(一)

由于QT本身不自带arm的串口函数,用了别人写的串口函数添加到QT工程中。从网上下载qextserialport-1.2win-alpha.zip
将posix_qextserialport.h、qextserialbase.h两个头文件添加到工程

登录界面
这里写图片描述

图中的按键变色效果:改变样式表 QPushButton { background-color: rgb(0, 170, 255); border-radius: 3px; color: rgb(255, 255, 255); } QPushButton:hover { background-color: rgb(245, 69, 234); }

safegate.h

#ifndef SAFEGATE_H
#define SAFEGATE_H

#include <QDialog>
#include <QProgressDialog>

namespace Ui {
    class Safegate;
}

class Safegate : public QDialog
{
    Q_OBJECT

public:
    explicit Safegate(QWidget *parent = 0);
    ~Safegate();
    QString pwd;
    void delay();

signals:
    void ask_for_wakeup();

private slots:
    void on_num1_clicked();

    void on_num2_clicked();

    void on_num3_clicked();

    void on_num4_clicked();

    void on_num5_clicked();

    void on_num6_clicked();

    void on_num7_clicked();

    void on_num8_clicked();

    void on_num9_clicked();

    void on_num0_clicked();

    void on_del_clicked();

    void on_enter_clicked();

private:
    Ui::Safegate *ui;
};

#endif // SAFEGATE_H

safegate.cpp

#include "safegate.h"
#include "ui_safegate.h"

Safegate::Safegate(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::Safegate)
{
    ui->setupUi(this);
    this->setMaximumSize(800,500);
    this->setMinimumSize(800,500);
    this->setWindowFlags(Qt::FramelessWindowHint);
}

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

void Safegate::on_num1_clicked()
{
    pwd.append(tr("1"));
    ui->lcd->setText(pwd);

}

void Safegate::on_num2_clicked()
{
    pwd.append(tr("2"));
    ui->lcd->setText(pwd);
}

void Safegate::on_num3_clicked()
{
    pwd.append(tr("3"));
    ui->lcd->setText(pwd);
}

void Safegate::on_num4_clicked()
{
    pwd.append(tr("4"));
    ui->lcd->setText(pwd);
}

void Safegate::on_num5_clicked()
{
    pwd.append(tr("5"));
    ui->lcd->setText(pwd);
}

void Safegate::on_num6_clicked()
{
    pwd.append(tr("6"));
    ui->lcd->setText(pwd);
}

void Safegate::on_num7_clicked()
{
    pwd.append(tr("7"));
    ui->lcd->setText(pwd);
}

void Safegate::on_num8_clicked()
{
    pwd.append(tr("8"));
    ui->lcd->setText(pwd);
}

void Safegate::on_num9_clicked()
{
    pwd.append(tr("9"));
    ui->lcd->setText(pwd);
}

void Safegate::on_num0_clicked()
{
    pwd.append(tr("0"));
    ui->lcd->setText(pwd);
}

void Safegate::on_del_clicked()
{
    pwd.chop(1);
    ui->lcd->setText(pwd);
}

void Safegate::on_enter_clicked()
{
    if(pwd == "000000")
    {
        QProgressDialog dialog(NULL,NULL, 0, 50, this);
        dialog.setWindowTitle(tr(""));
        dialog.setWindowModality(Qt::WindowModal);
        dialog.setWindowFlags(Qt::FramelessWindowHint);//去掉标题栏
        dialog.show();
        for(int k = 0; k < 50; k++)
        {
            dialog.setValue(k);
            QCoreApplication::processEvents();
            if(dialog.wasCanceled())
            {
                break;
            }
        }
        dialog.setValue(50);
        pwd.clear();
        ui->lcd->setText(pwd);
        emit ask_for_wakeup();
    }
    else
    {
        pwd.clear();
        pwd = QString(tr("密码错误"));
        ui->lcd->setText(pwd);
        pwd.clear();
    }
}

void Safegate::delay()
{
    QProgressDialog dialog(NULL,NULL, 0, 50, this);
    dialog.setWindowTitle(tr(""));
    dialog.setWindowModality(Qt::WindowModal);
    dialog.setWindowFlags(Qt::FramelessWindowHint);//去掉标题栏
    dialog.show();
    for(int k = 0; k < 50; k++)
    {
        dialog.setValue(k);
        QCoreApplication::processEvents();
        if(dialog.wasCanceled())
        {
            break;
        }
    }
    dialog.setValue(50);
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值