1.作业:
完成一个登录界面(图片未附带):
头文件:
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
#include <QLineEdit>//行编辑器
#include<QIcon>//图标
#include<QLabel>//标签
#include<QPushButton>//按钮
#include<QIcon>//图标
class Widget : public QWidget
{
Q_OBJECT
public:
Widget(QWidget *parent = nullptr);
~Widget();
};
#endif // WIDGET_H
主函数:
#include "widget.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Widget w;
w.show();
return a.exec();
}
实现函数:
#include "widget.h"
Widget::Widget(QWidget *parent)
: QWidget(parent)
{
this->setFixedSize(500,600);//设置窗口固定大小尺寸
this->setWindowTitle("来也匆匆");//设置窗口标题
this->setWindowIcon(QIcon("C:\\Users\\86183\\Desktop\\photo\\窗口标签.jpg"));//设置窗口图标
this->setStyleSheet("background-color:purple");//设置窗口颜色
QLabel *lab1 = new QLabel(this);//创建一个标签,设置父组件为当前窗口组件
lab1 -> resize(500,200);//设置标签大小
lab1 -> setPixmap(QPixmap("C:\\Users\\86183\\Desktop\\photo\\背景.jpg"));//标签中添加图片内容
lab1 -> setScaledContents(true);//设置标签内容自适应
QLabel *lab2 = new QLabel(this);//创建标签,设置父组件为当前窗口组件
lab2 -> resize(40,40);//设置标签大小
lab2 -> move(120,300);//设置标签位置
lab2 -> setPixmap(QPixmap("C:\\Users\\86183\\Desktop\\photo\\userName.jpg"));
lab2 -> setScaledContents(true);//设置内容自适应
QLabel *lab3 = new QLabel(this);//创建标签,设置父组件为当前窗口组件
lab3 -> resize(40,40);//设置标签大小
lab3 -> move(lab2->x(),lab2->y()+100);//设置标签位置
lab3 -> setPixmap(QPixmap("C:\\Users\\86183\\Desktop\\photo\\passwd.jpg"));
lab3 -> setScaledContents(true);//设置标签内容自适应
QLineEdit *dit1 = new QLineEdit(this);//创建一个行编辑器,指定父组件
dit1->setPlaceholderText("QQ/手机/邮箱");//设置占位文本
dit1->move(lab2->x()+70,lab2->y());//设置行编辑器位置
dit1->resize(250,40);//设置行编辑器大小
dit1->setStyleSheet("background-color:white");//设置背景颜色
QLineEdit *dit2 = new QLineEdit(this);//创建一个行编辑器,父组件为当前窗口组件
dit2->setPlaceholderText("密码");//设置占位文本
dit2->move(lab3->x()+70,lab3->y());
dit2->resize(250,40);//设置行编辑器大小
dit2->setStyleSheet("background-color:white");//设置背景颜色
dit2->setEchoMode(QLineEdit::Password);//设置输入为密文模式
QPushButton *btn1 = new QPushButton("登录",this);//创建一个按钮,设置按钮文本为登录
QPushButton *btn2 = new QPushButton("取消",this);//创建一个按钮,设置按钮文本为取消
btn1->resize(80,40);//设置按钮大小
btn2->resize(80,40);//设置按钮大小
btn1->move(300,500);//设置按钮位置
btn2->move(btn1->x()+100,btn1->y());//设置按钮位置
btn1->setIcon(QIcon("C:\\Users\\86183\\Desktop\\photo\\login.png"));//设置按钮图标
btn2->setIcon(QIcon("C:\\Users\\86183\\Desktop\\photo\\cancel.png"));//设置按钮图标
}
Widget::~Widget()
{
}
运行结果:
文件注释(创建后未修改代码时的模板理解):
头文件:
#ifndef MAINWINDOW_H//防止重复包含头文件
#define MAINWINDOW_H
#include <QMainWindow>//头文件
QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }//定义了一个叫Ui的命名空间,里面声明了一个MainWindow类
QT_END_NAMESPACE
class MainWindow : public QMainWindow//定义属于自己的类
{
Q_OBJECT//信号与槽的元对象
public:
MainWindow(QWidget *parent = nullptr);//构造函数声明,声明有一个默认的形参
~MainWindow();//析构函数
private:
Ui::MainWindow *ui;//定义一个私有的指针,指针类型是Ui中声明的MainWindow类型,可以用过Ui指针找到Ui界面上拖拽的组件
};
#endif // MAINWINDOW_H
主函数:
#include "mainwindow.h"//图形化界面的头文件
#include <QApplication>//应用程序的头文件
int main(int argc, char *argv[])
{
QApplication a(argc, argv);//实例化一个应用程序的对象,调用有参构造
MainWindow w;//实例化一个类对象
w.show();//调用类中的函数,展示窗口组件和其中的所有子组件
return a.exec();//exec为了阻塞界面不被关闭,等待相关事件发生
//等待信号与槽,等待事件处理,等待用户操作
}
实现函数:
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent)//有参构造函数的定义
: QMainWindow(parent)//初始化列表,
, ui(new Ui::MainWindow)//给类中的指针成员Ui开辟堆区空间
{
ui->setupUi(this);//构造MainWindo时给ui指针指向的组件实例化空间
}
MainWindow::~MainWindow()//析构函数的定义
{
delete ui;//释放Ui指针的堆区空间
}