Qt day1

 工程管理文件

QT       += core gui
#工程文件项目所包含的类   core核心类  gui图形化界面类
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
#4.0版本后,自动添加widgets库
CONFIG += c++11
#支持C++11
# The following define makes your compiler emit warnings if you use
# any Qt feature that has been marked deprecated (the exact warnings
# depend on your compiler). Please consult the documentation of the
# deprecated API in order to know how to port your code away from it.
DEFINES += QT_DEPRECATED_WARNINGS

# You can also make your code fail to compile if it uses deprecated APIs.
# In order to do so, uncomment the following line.
# You can also select to disable deprecated APIs only up to a certain version of Qt.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0
#管理源文件
SOURCES += \
    main.cpp \
    widget.cpp
#管理头文件
HEADERS += \
    widget.h
#管理ui界面文件
FORMS += \
    widget.ui

# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target

 头文件

//防止重复文件包含
#ifndef WIDGET_H
#define WIDGET_H
//父类的头文件
#include <QWidget>

QT_BEGIN_NAMESPACE
namespace Ui { class Widget; } //命名空间的声明,ui界面生成的头文件中的命名空间
QT_END_NAMESPACE

class Widget : public QWidget   //自定义的类,继承子QWidget类
{
    Q_OBJECT                 //处理信号与槽的元对象
signals:                   //该权限下声明的时信号函数,只有这一个权限
    void my_signal();      //信号函数不能直接被调用,调用需要使用关键字emit
public:
    Widget(QWidget *parent = nullptr);  //构造函数的声明
    ~Widget();                          //析构函数的声明
private slots:                 //该权限下声明槽函数,也可以是protected和public

    void my_slot();             //槽函数可以被当作普通函数使用,但普通函数不能当作槽函数使用

    void on_btn2_clicked();

private:
    Ui::Widget *ui;                  //指向ui界面的指针
};
#endif // WIDGET_H

 源文件

#include "widget.h"     //包含自定义的头文件
#include "ui_widget.h"   //包含ui界面的头文件
#include <QDebug>
Widget::Widget(QWidget *parent)      //构造函数的实现
    : QWidget(parent)                //调用父类的构造函数
    , ui(new Ui::Widget)              //给指针成员初始化空间
{
    ui->setupUi(this);               //调用ui界面中的设置界面函数
    this->setFixedSize(500,400);
    //回显模式
    ui->lineEdit2->setEchoMode(QLineEdit::Password);
    //占位符
    ui->lineEdit1->setPlaceholderText("请输入");
    ui->lineEdit2->setPlaceholderText("请输入");
    //连接信号与槽
    connect(ui->btn1,SIGNAL(clicked()),this,SLOT(my_slot()));
}

Widget::~Widget()                //析构函数的定义
{
    delete ui;                      //将指针成员释放
}
//登录按钮对应的槽函数
 void Widget::my_slot()
 {
     if(ui->lineEdit1->text()=="admin"&& ui->lineEdit2->text()=="123456")
     {
        qDebug()<<"登录成功";
        close();
     }
     else
     {
         qDebug()<<"账号和密码不匹配,请重新输入";
         ui->lineEdit2->clear();
     }
 }
//取消按钮对应的槽函数
void Widget::on_btn2_clicked()
{
        close();
}

 测试文件

#include "widget.h"       //引入自定义的头文件

#include <QApplication>   //引入应用程序的头文件

int main(int argc, char *argv[])  //主函数
{
    QApplication a(argc, argv);   //实例化应用程序的对象
    Widget w;                      //使用自定义对象在栈区实例化一个对象
    w.show();        // 调用show将界面显示出来
    return a.exec();    //阻塞等待界面处理:等待信号与槽,等待用户操作界面,等待事件发生
}

 结果

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值