QT 9.28

作业:

1>创建一个新项目,将默认提供的程序都注释上意义

2>使用代码的形式实现登录框

main.cpp
复制代码
#include "login.h"
复制代码
//文件包含,自定义的头文件,该头文件中包含了图形化界面类
复制代码
#include <QApplication>
复制代码
//包含应用程序的头文件
复制代码
int main(int argc, char *argv[])
复制代码
{
复制代码
    QApplication a(argc, argv);   //使用应用程序类实例化对象,调用有参构造
复制代码
    login w;                 //使用自定义的类调用无参构造在栈区构造一个界面对象
复制代码
    w.show();               //调用对象的成员函数,将界面展示出来
复制代码
    return a.exec();
复制代码
复制代码
    //a.exec():使用应用程序类对象,调用应用程序的成员函数,保证界面不被关闭,轮询等待界面上的时间发生
复制代码
    //等待用户操作界面上的组件
复制代码
    //等待界面上的信号与槽的响应
复制代码
    //等待事件处理机制的实现
复制代码
}
复制代码
login.h
复制代码
#ifndef LOGIN_H
复制代码
#define LOGIN_H
复制代码
//防止头文件重复包含
复制代码
#include<QPushButton>
复制代码
#include<QLineEdit>
复制代码
#include<QIcon>
复制代码
#include <QWidget>
复制代码
#include<QLabel>
复制代码
#include<qmovie.h>
复制代码
#include<QDebug>
复制代码
复制代码
//自定义的类的声明,公共继承自QWidget:QWidget中封装了有关图形化界面的相关操作的具体实现
复制代码
//由于继承的是系统提供的类,那么自定义的类中即使没有写任何东西,其类中也有很多成员了
复制代码
class login : public QWidget
复制代码
{
复制代码
    Q_OBJECT            //信号与槽的元对象,直接写即可,没有该宏,就不能使用信号与槽
复制代码
复制代码
public:
复制代码
    login(QWidget *parent = nullptr);   //构造函数的声明
复制代码
    ~login();                           //析构函数的声明   虚析构函数
复制代码
};
复制代码
#endif // LOGIN_H
复制代码
login.cpp
复制代码
#include "login.h"
复制代码
复制代码
login::login(QWidget *parent)
复制代码
    : QWidget(parent)    //在子类的初始化列表中显式调用父类的有参构造,来完成对子类从父类中继承下来成员的初始化
复制代码
{
复制代码
    //设置窗口标题
复制代码
    qDebug() << "当前界面标题为:"<< this->windowTitle();
复制代码
    this->setWindowTitle("QQ Client");
复制代码
复制代码
    //设置窗口图标
复制代码
    this->setWindowIcon(QIcon("C:/浏览/QQ.png"));
复制代码
复制代码
    //尺寸
复制代码
    qDebug() << "width:"<<this->width() <<"   height:"<<this->height();
复制代码
    qDebug() <<"size :"<<this->size();
复制代码
    this->setMaximumSize(800,600);
复制代码
    this->setMinimumSize(QSize(400,300));
复制代码
复制代码
//    //背景
复制代码
//    this->setStyleSheet("background-color:skyblue;");
复制代码
复制代码
复制代码
    //设置当前界面大小
复制代码
    this->setFixedSize(350,500);
复制代码
复制代码
    //1、使用无参构造在堆区申请一个按钮
复制代码
       QPushButton * btn1 = new QPushButton;
复制代码
       btn1->setParent(this);               //将当前界面设置成组件的父组件
复制代码
       btn1->setText("登录");              //设置按钮文本内容
复制代码
       btn1->resize(80,40);                //重新设置按钮尺寸
复制代码
       btn1->move(80, 300);               //移动当前组件位置
复制代码
       btn1->setStyleSheet("color:white; background-color:skyblue; border-radius:10px;");    //设置样式表
复制代码
复制代码
复制代码
       //2、使用有参构造,构造一个按钮,实例化对象时,顺便给定父组件
复制代码
       QPushButton *btn2 = new QPushButton(this);
复制代码
       btn2->setText("注册");
复制代码
       btn2->resize(btn1->size());                    //使用btn1的尺寸设置当前按钮的尺寸
复制代码
       btn2->move(btn1->x()+btn1->width()+10, btn1->y());        //使用btn1的位置,确定btn2的位置
复制代码
       btn2->setStyleSheet("color:white; background-color:skyblue; border-radius:10px;");
复制代码
//       btn2->setEnabled(false);                              //设置按钮不可用
复制代码
复制代码
复制代码
       //构建一个行编译器并指定父组件
复制代码
       QLineEdit *edit1 = new QLineEdit(this);
复制代码
       edit1->resize(300, 50);          //重新设置大小
复制代码
       edit1->move(25,200);
复制代码
       edit1->setStyleSheet("color:Pink;");
复制代码
       edit1->setAlignment(Qt::AlignCenter);
复制代码
       edit1->setEchoMode(QLineEdit::Password);
复制代码
       edit1->setPlaceholderText("输入QQ密码");
复制代码
复制代码
       QLineEdit *edit2 = new QLineEdit(this);
复制代码
       edit2->setStyleSheet("color:Pink;");
复制代码
       edit2->setAlignment(Qt::AlignCenter);
复制代码
       edit2->setEchoMode(QLineEdit::Password);
复制代码
       edit2->setPlaceholderText("输入QQ号");
复制代码
       edit2->resize(edit1->size());
复制代码
       edit2->move(edit1->x(),edit1->y()-edit1->height()-10);
复制代码
复制代码
复制代码
}
复制代码
复制代码
login::~login()
复制代码
{
复制代码
}
复制代码
复制代码

效果展示:

Xmind

相关推荐
用户805533698032 天前
不止三件套:QObject 属性系统全关键字与运行时反射!
c++·qt
xcyxiner2 天前
DicomViewer (vcpkg Windows和ubuntu编译)7
qt
Quz7 天前
QML Hello World 入门示例
qt
xcyxiner10 天前
DicomViewer (dcmtk读取dcm文件)5
qt
xcyxiner10 天前
DicomViewer (后台线程处理文件)4
qt
xcyxiner11 天前
DicomViewer (添加模型类)3
qt
xcyxiner11 天前
DicomViewer (目录调整) 2
qt
xcyxiner12 天前
dcmtk vtk vtk-dicom(gdcm) 编译(debug) v2
qt
LDR00613 天前
Type-C 快充全面升级!LDR6601 赋能个人护理便携电机,重塑剃须刀 / 理发器新体验
c语言·开发语言
雪碧聊技术13 天前
Tree.js是什么?一文讲透
开发语言·javascript·ecmascript