qt作业day2

//widget.cpp

#include "widget.h"
#include "ui_widget.h"



void Widget::usr_login()
{
    if("admin" == this->edit_acc->text())
    {
        if("123456" == this->edit_psd->text())
        {
            speech->say("登录成功");
            emit jump_sig1();
            this->hide();
        }
        else {
            speech->say("账号或密码错误");
            this->edit_psd->clear();
        }
        return;
    }
    speech->say("账号或密码错误");

    this->edit_psd->clear();
}

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

    //设置窗口标题
    this->setWindowTitle("第七史诗");
    //设置窗口icon
    this->setWindowIcon(QIcon(":/icon/1.png"));

    //设置窗口大小
    this->resize(QSize(500,400));


    //创建标签,设置图片
    this->lab_front = new QLabel(this);
    lab_front->setPixmap(QPixmap(":/icon/logo.png"));
    lab_front->setScaledContents(true);
    lab_front->resize(500,200);

    lab_acc = new QLabel(this);
    lab_acc->setPixmap(QPixmap(":/icon/userName.jpg"));
    lab_acc->setScaledContents(true);
    lab_acc->resize(40,30);
    lab_acc->move(100,lab_front->y() + lab_front->height() + 30);


    lab_psd = new QLabel(this);
    lab_psd->setPixmap(QPixmap(":/icon/passwd.jpg"));
    lab_psd->resize(lab_acc->size());
    lab_psd->setScaledContents(true);
    lab_psd->move(lab_acc->x(),lab_acc->y() + 50);

    //增加单行编辑器
    edit_acc = new QLineEdit(this);
    edit_acc->setPlaceholderText("stove账号/邮箱");
    cout << lab_acc->width() << endl;
    edit_acc->move(lab_acc->x() + lab_acc->width() + 50,lab_acc->y());

    edit_psd = new QLineEdit(this);
    edit_psd->setPlaceholderText("密码");
    edit_psd->move(edit_acc->x(),edit_acc->y() + 50);

    //设置输入内容隐藏
    edit_psd->setEchoMode(QLineEdit :: Password);

    //登录按钮
    btn_login = new QPushButton("登录",this);
    btn_login->setIcon(QIcon(":/icon/login.png"));
    btn_login->move(300,edit_psd->y() + edit_psd->height() + 30);

    //取消按钮
    btn_cancel = new QPushButton("取消",this);
    btn_cancel->setIcon(QIcon(":/icon/cancel.png"));
    btn_cancel->move(btn_login->x() + btn_login->width() + 10,btn_login->y());

    //设置语音播报
    speech = new QTextToSpeech(this);


    server = new QComboBox(this);
    server->addItem("日本服务器");
    server->addItem("韩国服务器");
    server->addItem("国际服务器");
    server->move(50,btn_cancel->y());
    connect(btn_cancel,&QPushButton :: clicked,this,&Widget :: close);
    connect(btn_login,&QPushButton :: clicked,this,&Widget :: usr_login);



}

Widget::~Widget()
{
    delete ui;
}
//widget.h

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include <QSize>
#include <QPushButton>
#include <QLineEdit>
#include <QLabel>
#include <QComboBox>
#include <iostream>
#include <QString>
#include <QDebug>
#include <QTextToSpeech>
#include <windows.h>

using namespace std;


namespace Ui {
class Widget;
}

class Widget : public QWidget
{
    Q_OBJECT
    public:
signals:
    void my_signal();
    void jump_sig1();
public slots:
    void usr_login();

public:
    explicit Widget(QWidget *parent = nullptr);
    ~Widget();


private:
    Ui::Widget *ui;
    QLabel *lab_front,*lab_acc,*lab_psd;
    QLineEdit *edit_acc,*edit_psd;
    QPushButton *btn_login,*btn_cancel;
    QComboBox *server;
    QTextToSpeech *speech;

};

//void Widget :: jump_sig1()
//{
//    this->hide();
//}

#endif // WIDGET_H
//form.h

#ifndef FORM_H
#define FORM_H

#include <QWidget>
#include "widget.h"
namespace Ui {
class Form;
}

class Form : public QWidget
{


    Q_OBJECT


public slots:
    void jump_slot();

public:
    explicit Form(QWidget *parent = nullptr);
    ~Form();

private:
    Ui::Form *ui;
    QPushButton *return_key;
};

#endif // FORM_H
//form.cpp

#include "form.h"
#include "ui_form.h"

void Form::jump_slot()
{
    this->show();
}

Form::Form(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Form)
{
    ui->setupUi(this);
    this->resize(QSize(800,700));
    return_key = new QPushButton(this);
    return_key->resize(80,70);
    QPixmap icon1(":/icon/return.png");
    icon1.scaled(return_key->size());

//    QLabel *lab = new QLabel(this);
//    lab->setPixmap(icon1);
    return_key->setIcon(icon1);

    return_key->setStyleSheet("background-image:url(:/icon/return.png)");
    return_key->move(300,200);

}

Form::~Form()
{
    delete ui;
}
//main.cpp

#include "widget.h"
#include <QApplication>
#include "form.h"

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    Widget w;
    w.show();
    Form f;
    //f.show();
    QObject :: connect(&w,&Widget :: jump_sig1,&f,&Form :: jump_slot);
    return a.exec();
}

运行效果

登录成功后跳转from界面

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Qt是一款跨平台的C++图形用户界面应用程序开发框架,其提供了一些工具和类库,能够构建图形界面、网络、数据库、XML和数据可视化等各类应用程序。数据可视化在数据分析、预测、决策等方面十分重要,而Qt也是一种很好的工具来进行数据可视化。 对于Qt的数据可视化大作业,可以从以下几个方面入手: 1. 数据的获取与处理:首先需要确定可视化的数据,根据数据来源不同,获取数据的方法也会有所不同。可以是从API、文件、数据库中获取。接着需要对数据进行处理,对于数据的缺失、异常值和重复值进行处理。 2. 界面设计:界面设计应该具有易操作性和简洁明了性的特点,可以考虑使用Qt Designer创建界面,包括图表、下拉菜单、按钮等控件,同时界面的可扩展性也要考虑到。 3. 数据的可视化:选择合适的图表类型来展示数据,如折线图、环形图、散点图、3D图等。需要对图表进行美化,如添加标题、坐标轴标签和刻度值等。 4. 交互性:可以在界面中添加一些交互性的控件,如滑动条、复选框、下拉菜单,能够增加用户对数据的掌控度和趣味性。 5. 数据的输出:完成数据可视化之后,需要将可视化结果输出。可以考虑将数据图表保存为图片或PDF格式,也可以将数据导出为Excel格式等。 在进行Qt的数据可视化大作业时,需要遵循良好的软件工程原则,包括模块化、代码复用和文档化等,同时要注意代码的可读性和可维护性,使得代码具有良好的可扩展性和稳定性。 ### 回答2: 本人设计的数据可视化大作业是采用QT技术进行实现,旨在对数据进行可视化展示。数据可视化是数据分析的重要手段,能够将数据转化为图像,直观、简洁地展示数据信息,帮助人们更好地理解和分析数据。 本次作业以医疗数据为例,通过可视化展示患者的身高体重指数(BMI)、年龄、性别等信息,帮助医学研究人员分析患者群体情况,对各种疾病的发病率、筛查标准等进行研究。采用QT技术实现的优势在于其具有良好的跨平台性和界面友好性,结合数据的可视化效果,更好地满足了医学研究人员的工作需要。 在制作过程中,我使用QT中的QChart来绘制各种图表,例如:折线图、饼图等。同时结合QTableWidget控件对数据进行管理,方便用户快速选择并展示不同类别的数据。在交互体验方面,我还使用了QT提供的信号与槽机制,结合用户操作,使得用户能够自由切换不同的展示效果。 通过这次作业的制作,我不仅学习到了数据可视化技术的应用,还深刻体验到QT技术的跨平台性和方便易用性。最终,我将本次制作的QT数据可视化大作业,作为自己数据可视化学习的重要记录。 ### 回答3: 在数据可视化大作业中,使用Qt框架来进行数据可视化,可以实现一些非常强大和实用的功能。Qt提供了非常丰富的界面设计,具有跨平台特性,能够在不同的操作系统平台上进行开发和部署,灵活性和可移植性很高。 在数据可视化大作业中,我们可以使用Qt的图形界面功能来设计数据界面和图表,将数据呈现出来,通过算法和可视化方法等来分析数据的规律和特征。同时,还可以使用Qt的数据模型功能,将数据存储和管理起来,方便操作和查询。通过增加数据可视化方案,Qt在可视化方面成就非同凡响。 为了实现一个成功的数据可视化,还需要考虑一些因素,例如数据的精度、数据的规模、数据的类型、数据的样本和数据的分析等方面。通过对这些因素的认真考虑和策划,我们可以设计出非常有用的、有效的和实用的数据可视化程序,为人们的日常生活和工作提供便利。 总的来说,数据可视化大作业Qt是一个既有挑战性又充满创意性的大型项目。只有对数据有良好的理解,对算法有深入的了解和掌握,才能打造出一个既实用又精美的数据可视化程序,为我们的生活和工作带来极大的便利。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值