• QT--day1


    登陆界面

    1. #include "mainwindow.h"
    2. #include "ui_mainwindow.h"
    3. MainWindow::MainWindow(QWidget *parent)
    4. : QMainWindow(parent)
    5. , ui(new Ui::MainWindow)
    6. {
    7. ui->setupUi(this);
    8. //设置固定大小
    9. this->setFixedSize(400,300);
    10. //设置窗口标题
    11. this->setWindowTitle("HUAQI");
    12. //设置窗口图标
    13. this->setWindowIcon(QIcon("D:\\Qt\\icon\\icon\\wodepeizhenshi.png"));
    14. //构建两个按钮
    15. QPushButton *btn1=new QPushButton(QIcon("D:\\Qt\\icon\\icon\\login.png"),"登录",this);
    16. btn1->resize(100,40);
    17. btn1->move(100,250);
    18. QPushButton *btn2=new QPushButton(QIcon("D:\\Qt\\icon\\icon\\cancel.png"),"取消",this);
    19. btn2->resize(btn1->size());
    20. btn2->move(btn1->x()+150,btn1->y());
    21. //构建两个行编辑器
    22. QLineEdit *edit1=new QLineEdit(this);
    23. edit1->resize(200,30);
    24. edit1->setEchoMode(QLineEdit::Password);
    25. edit1->setText("123456");
    26. edit1->move(125,btn1->y()-50);
    27. QLineEdit *edit2=new QLineEdit(this);
    28. edit2->resize(200,30);
    29. edit2->setText("admin");
    30. edit2->move(125,edit1->y()-50);
    31. //构建三个标签
    32. QLabel *lab1=new QLabel(this);
    33. lab1->resize(30,30);
    34. lab1->setPixmap(QPixmap("D:\\Qt\\icon\\icon\\passwd.jpg"));
    35. lab1->setScaledContents(true);
    36. lab1->move(edit1->x()-40,edit1->y());
    37. QLabel *lab2=new QLabel(this);
    38. lab2->resize(lab1->size());
    39. lab2->setPixmap(QPixmap("D:\\Qt\\icon\\icon\\userName.jpg"));
    40. lab2->setScaledContents(true);
    41. lab2->move(edit2->x()-40,edit2->y());
    42. QLabel *lab3=new QLabel(this);
    43. lab3->resize(400,120);
    44. lab3->setPixmap(QPixmap("D:\\Qt\\icon\\icon\\logo.png"));
    45. lab3->setScaledContents(true);
    46. }
    47. MainWindow::~MainWindow()
    48. {
    49. delete ui;
    50. }

    将工程文件进行注释

    1.工程管理文件

    1. QT += core gui
    2. #引入QT所需要的库,core是核心库,gui是图形开发相关类的库
    3. greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
    4. #超过40版本的,加上widgets库
    5. CONFIG += c++11
    6. #支持C++11版本的
    7. # The following define makes your compiler emit warnings if you use
    8. # any Qt feature that has been marked deprecated (the exact warnings
    9. # depend on your compiler). Please consult the documentation of the
    10. # deprecated API in order to know how to port your code away from it.
    11. DEFINES += QT_DEPRECATED_WARNINGS
    12. # You can also make your code fail to compile if it uses deprecated APIs.
    13. # In order to do so, uncomment the following line.
    14. # You can also select to disable deprecated APIs only up to a certain version of Qt.
    15. #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
    16. #对源文件进行管理
    17. SOURCES += \
    18. main.cpp \
    19. mywnd.cpp
    20. #对头文件进行管理
    21. HEADERS += \
    22. mywnd.h
    23. #对UI文件进行管理
    24. FORMS += \
    25. mywnd.ui
    26. # Default rules for deployment.
    27. qnx: target.path = /tmp/$${TARGET}/bin
    28. else: unix:!android: target.path = /opt/$${TARGET}/bin
    29. !isEmpty(target.path): INSTALLS += target

    2.头文件

    1. #ifndef MYWND_H
    2. #define MYWND_H
    3. //防止头文件重复包含
    4. //父类的头文件
    5. #include <QWidget>
    6. QT_BEGIN_NAMESPACE
    7. //声明UI文件对应的命名空间
    8. namespace Ui { class MyWnd; }
    9. QT_END_NAMESPACE
    10. //公共继承QWidget
    11. class MyWnd : public QWidget
    12. {
    13. //信号和槽的元对象,没有元对象,信号和槽就不能使用
    14. Q_OBJECT
    15. public:
    16. //构造函数,带有一个默认变量
    17. MyWnd(QWidget *parent = nullptr);
    18. ~MyWnd();
    19. private:
    20. //可以使用UI指针调用Ui界面中的组件
    21. Ui::MyWnd *ui;
    22. };
    23. #endif // MYWND_H

    3.源文件

    1. #include "mywnd.h"
    2. #include "ui_mywnd.h"
    3. MyWnd::MyWnd(QWidget *parent)
    4. //先行调用父类有参构造函数
    5. : QWidget(parent)
    6. //给自己类中的Ui指针舒适化空间
    7. , ui(new Ui::MyWnd)
    8. {
    9. //调用Ui
    10. ui->setupUi(this);
    11. }
    12. MyWnd::~MyWnd()
    13. {
    14. //释放指针空间
    15. delete ui;
    16. }

    4.主程序文件

    1. #include "mywnd.h"
    2. //引入应用程序的头文件
    3. #include
    4. int main(int argc, char *argv[])
    5. {
    6. //实例化一个应用程序对象
    7. QApplication a(argc, argv);
    8. //实例化自定义的图形化界面的类
    9. MyWnd w;
    10. //展示界面
    11. w.show();
    12. //阻塞等待应用程序,等待用户操作
    13. return a.exec();
    14. }

  • 相关阅读:
    金仓数据库KingbaseES 插件kdb_exists_expand
    css-vxe列表中ant进度条与百分比
    [python]用flask框架搭建微信公众号的后台
    管理类联考——数学——汇总篇——知识点突破——数据分析——计数原理——排列组合——排队
    【数据结构学习笔记】18:线段树(单点修改)
    【UiPath2022+C#】UiPath 调试
    pytorch学习3(pytorch手写数字识别练习)
    全国行政区划2023年最新版
    MySQL数据库的基本概念以及MySQL8.0版本的部署(一)
    第二十一节——路由初识
  • 原文地址:https://blog.csdn.net/m0_70569664/article/details/132911051