1> 将系统给定的工程文件相关代码全部进行注释
头文件
#ifndef WIDGET_H
#define WIDGET_H
//防止文件重复包含
#include <QMainWindow> //父类的头文件
QT_BEGIN_NAMESPACE
namespace Ui { class widget; } // 命名空间的声明,ui界面生成的头文件中的命名空间
QT_END_NAMESPACE
class widget : public QMainWindow //自定义的类,继承自QMainWindow类
{
Q_OBJECT //处理信号与槽的元对象
public:
widget(QWidget *parent = nullptr);//构造函数的声明
~widget(); //析构函数的声明
private:
Ui::widget *ui;//指向ui界面的指针,如果使用拖拽后的组件,需要使用该指针找到
};
#endif // WIDGET_H
源文件
#include "widget.h" //包含自定义的头文件
#include "ui_widget.h" //包含ui界面的头文件
widget::widget(QWidget *parent) //构造函数的实现
: QMainWindow(parent) //调用父类的构造函数
, ui(new Ui::widget) //给指针成员初始化空间
{
ui->setupUi(this); //调用ui界面中的设置界面函数
}
widget::~widget() //析构函数的定义
{
delete ui;//将类中指针成员空间释放
}
测试文件
#include "widget.h"//引入自定义头文件
#include <QApplication> //引入应用程序的头文件
int main(int argc, char *argv[])//主函数
{
QApplication a(argc, argv); //实例化应用程序的对象
widget w; //使用自定义对象在栈区实例化一个对象
w.show(); //调用show方法将界面显示出来
return a.exec(); //阻塞等待界面处理:等待信号与槽、等待用户操作界面、等待事件发生
}
2> 将登录框的两个按钮进行实现,登录按钮需要手动连接自定义的槽函数,取消按钮右键转到
对于登录按钮对应的槽函数中实现:判断输入的账号是否等于"admin",密码是否为“123456”,如果匹配成功,则输出登录成功后关闭界面
如果匹配失败,输出账号和密码不匹配,请重新输入,并将密码框内容清空
对于取消按钮,在对应的槽函数中,关闭整个界面即可
源文件
#include "widget.h" //引入自定义的头文件
#include <QApplication> //引入应用程序的头文件
int main(int argc, char *argv[]) //主函数
{
QApplication a(argc, argv); //实例化应用程序的对象
Widget w; //用自定义对象在栈区实例化一个对象
w.show(); //调用show将界面显示出来
return a.exec(); //阻塞等待界面处理
}
头文件
#ifndef WIDGET_H
#define WIDGET_H
#include <QDebug>
#include <QPushButton>
#include <QLineEdit>
#include <QLabel>
QT_BEGIN_NAMESPACE
namespace Ui { class Widget; } //命名空间的声明
QT_END_NAMESPACE
class Widget : public QWidget //自定义的类,用来继承QMainWindow类
{
Q_OBJECT //处理信号与槽的元对象
signals:
void my_signal();
private slots:
void my_slot();
void on_btn3_clicked();
public:
Widget(QWidget *parent = nullptr); //声明构造函数
~Widget(); //声明析构函数
private:
Ui::Widget *ui; //指向ui界面的指针
};
#endif // WIDGET_H
测试文件
#include "widget.h" //包含自定义的头文件
#include "ui_widget.h" //包含ui界面的头文件
Widget::Widget(QWidget *parent) //构造函数的实现
: QWidget(parent) //调用父类的构造函数
, ui(new Ui::Widget) //给指针成员初始化空间
{
ui->setupUi(this); //调用ui界面的设置界面函数
//设置固定尺寸
// this->setFixedSize(300,400);
//更改窗口标题
this->setWindowTitle("QQ");
//更改窗口图标
this->setWindowIcon(QIcon("D:\\ProgramDate\\QT\\DAY8\\516work\\icon\\QQ.png"));
ui->btn1->setIcon(QIcon("D:\\ProgramDate\\QT\\DAY8\\516work\\icon\\denglu.png"));
ui->btn2->setIcon(QIcon("D:\\ProgramDate\\QT\\DAY8\\516work\\icon\\denglu.png"));
ui->btn3->setIcon(QIcon("D:\\ProgramDate\\QT\\DAY8\\516work\\icon\\quxiao.png"));
ui->edt->setPlaceholderText("账号");
ui->edt1->setEchoMode(QLineEdit::Password);
ui->label1->setScaledContents(true);
ui->label2->setScaledContents(true);
ui->label1->setPixmap(QPixmap("D:\\ProgramDate\\QT\\DAY8\\516work\\icon\\zhanghao.png"));
ui->label2->setPixmap(QPixmap("D:\\ProgramDate\\QT\\DAY8\\516work\\icon\\denglumima.png"));
ui->label->setScaledContents(true);
ui->label->setPixmap(QPixmap("D:\\ProgramDate\\QT\\DAY8\\516work\\icon\\logo.png"));
connect(ui->btn2,SIGNAL(clicked()),this,SLOT(my_slot()));
}
Widget::~Widget() //定义析构函数
{
delete ui; //释放类中的指针成员空间
}
void Widget::my_slot()
{
QString count = ui->edt->text();
QString passwd = ui->edt1->text();
if(count == "admin" && passwd == "123456")
{
qDebug() << "login success!";
close();
}
else
{
qDebug() << "账号和密码不匹配,请重新输入!";
ui->edt1->clear();
ui->edt->clear();
}
}
void Widget::on_btn3_clicked()
{
close();
}
ui界面
运行结果