• 【无标题】


    目录

    1、实现图形化界面

    2、将工程文件进行注释


    1、实现图形化界面

    1. #include "mywnd.h"
    2. Mywnd::Mywnd(QWidget *parent)
    3. : QMainWindow(parent)
    4. {
    5. this->setFixedSize(800,600); //设置固定尺寸
    6. this->setWindowTitle("Widget"); //设置窗口标题
    7. this->setWindowIcon(QIcon("D:\\qt23062\\day8\\qq.png")); //设置窗口图标
    8. //实例化标签
    9. QLabel* lab1=new QLabel(this);
    10. lab1->setPixmap(QPixmap("D:\\qt23062\\day8\\logo.png")); //设置图片
    11. lab1->setScaledContents(true); //设置图片自动适应大小
    12. lab1->resize(800,270); //重新设置尺寸
    13. //标签2
    14. QLabel* lab2=new QLabel(this);
    15. lab2->setPixmap(QPixmap("D:\\qt23062\\day8\\userName")); //设置图片
    16. lab2->setScaledContents(true); //设置图片自动适应大小
    17. lab2->resize(60,60); //重新设置尺寸
    18. lab2->move(200,300);
    19. //标签3
    20. QLabel* lab3=new QLabel(this);
    21. lab3->setPixmap(QPixmap("D:\\qt23062\\day8\\passwd")); //设置图片
    22. lab3->setScaledContents(true); //设置图片自动适应大小
    23. lab3->resize(60,60); //重新设置尺寸
    24. lab3->move(lab2->x(),lab2->y()+90);
    25. //行编辑器
    26. QLineEdit* edit1=new QLineEdit("admin",this);
    27. edit1->move(lab2->x()+75,lab2->y());
    28. edit1->resize(360,60);
    29. QLineEdit* edit2=new QLineEdit("123456",this);
    30. edit2->move(lab3->x()+75,lab3->y());
    31. edit2->resize(360,60);
    32. edit2->setEchoMode(QLineEdit::Password); //设置回显模式
    33. //按钮
    34. QPushButton *btn1=new QPushButton(QIcon("D:\\qt23062\\day8\\login.png"),"登录",this);
    35. btn1->move(edit2->x()+50,edit2->y()+100);
    36. btn1->resize(110,70); //重新设置尺寸
    37. QFont font = btn1->font();
    38. font.setPointSize(16); // 设置字体大小为16像素
    39. btn1->setFont(font);
    40. QPushButton *btn2=new QPushButton(QIcon("D:\\qt23062\\day8\\cancel.png"),"取消",this);
    41. btn2->move(btn1->x()+150,btn1->y());
    42. btn2->resize(110,70); //重新设置尺寸
    43. QFont font1 = btn2->font();
    44. font1.setPointSize(16); // 设置字体大小为16像素
    45. btn2->setFont(font1);
    46. }
    47. Mywnd::~Mywnd()
    48. {
    49. }

    2、将工程文件进行注释

    1. QT += core gui network
    2. #引入QT工程所需的类库core是核心库,gui是图形开发相关类库
    3. greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
    4. #超过4.0版本自动加上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
    1. #ifndef MYWND_H
    2. #define MYWND_H //防止文件重复包含
    3. #include //父类的头文件
    4. QT_BEGIN_NAMESPACE
    5. namespace Ui { class MyWnd; } //声明ui界面对应头文件中的命名空间
    6. QT_END_NAMESPACE
    7. //自定义自己的界面类,公共继承自QWidget,父类中重写了绘制事件处理函数
    8. class MyWnd : public QWidget
    9. {
    10. Q_OBJECT //信号与槽的元对象,没有这个对象,信号与槽就不能使用了
    11. public:
    12. MyWnd(QWidget *parent = nullptr); //构造函数的声明,并且有一个带默认参数的形参
    13. ~MyWnd(); //析构函数的声明
    14. private:
    15. Ui::MyWnd *ui; //可以通过该指针调用ui界面上拖拽出来的组件
    16. };
    17. #endif // MYWND_H
    1. #include "mywnd.h"
    2. #include "ui_mywnd.h"
    3. //构造函数的定义
    4. MyWnd::MyWnd(QWidget *parent)
    5. : QWidget(parent) //显性调用父类的有参构造完成对子类从父类继承下来成员的初始化工作
    6. , ui(new Ui::MyWnd) //给自己类中的指针成员初始化空间,ui界面中拖拽出来的组件,就在这个对象中
    7. {
    8. ui->setupUi(this); //调用Ui::MyWnd类里面的成员函数,给拖拽的组件实例化空间,并设置相关属性
    9. }
    10. //析构函数的定义
    11. MyWnd::~MyWnd()
    12. {
    13. delete ui; //释放指针空间
    14. }
    1. #include "mywnd.h" //引入自定义图形化界面类的头文件
    2. #include //引入应用程序类的头文件
    3. int main(int argc, char *argv[])
    4. {
    5. QApplication a(argc, argv); //使用应用程序类,实例化一个应用程序的对象
    6. MyWnd w; //用自定义的图形化界面类实例化一个对象
    7. w.show(); //调用show函数展示界面,父类提供的,可以展示自己的组件,以自己作为父组件的所有子组件也会被展示出来
    8. return a.exec(); //阻塞等待应用程序,防止应用程序结束,等待用户操作、等待信号与槽、等待事件发生
    9. }

  • 相关阅读:
    SpringBoot配置文件的加载顺序
    【前端】ECMAScript6从入门到进阶
    【ESP32 手机配网教程】
    ubutun上编译出现undefined reference to symbol ‘dladdr@@GLIBC_2.2.5‘的错误
    基于dlib库关键点检测(图片和视频)demo
    扩展欧几里得(acwing877)
    第五十九章 IIS 7 或更高版本的替代选项 (Windows) - 替代选项 2:将本机模块与 - 映射 InterSystems IRIS 文件扩展名
    Linux系统配置及服务管理-07-文件系统及RAID
    MobileViT代码分析及添加SE注意力的实验结果
    Socks5代理和代理IP:网络工程师的多面利器
  • 原文地址:https://blog.csdn.net/weixin_58469613/article/details/132910501