QT--底子

灌篮少年  金牌会员 | 2024-9-29 03:46:25 | 来自手机 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 778|帖子 778|积分 2334

将默认提供的步调都解释上意义
    0101.pro
  1. QT       += core gui
  2. #QT表示要引入的类库   core:核心库  gui:图形化界面库
  3. #如果要使用其他库类中的相关函数,则需要加对应的库类后,才能使用
  4. greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
  5. #QT超过版本4时,会自动加上widgets
  6. CONFIG += c++11
  7. #支持C++11新特性
  8. # The following define makes your compiler emit warnings if you use
  9. # any Qt feature that has been marked deprecated (the exact warnings
  10. # depend on your compiler). Please consult the documentation of the
  11. # deprecated API in order to know how to port your code away from it.
  12. DEFINES += QT_DEPRECATED_WARNINGS
  13. # You can also make your code fail to compile if it uses deprecated APIs.
  14. # In order to do so, uncomment the following line.
  15. # You can also select to disable deprecated APIs only up to a certain version of Qt.
  16. #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0
  17. #实现工程项目的管理
  18. #管理源文件
  19. SOURCES += \
  20.     main.cpp \
  21.     widget.cpp
  22. #管理头文件
  23. HEADERS += \
  24.     widget.h
  25. #管理所有ui文件
  26. FORMS += \
  27.     widget.ui
  28. # Default rules for deployment.
  29. qnx: target.path = /tmp/$${TARGET}/bin
  30. else: unix:!android: target.path = /opt/$${TARGET}/bin
  31. !isEmpty(target.path): INSTALLS += target
复制代码
  widget.h
  1. #ifndef WIDGET_H
  2. #define WIDGET_H
  3. //防止头文件重复包含
  4. #include <QWidget>
  5. //ui_mywnd.h中的命名空间的声明
  6. QT_BEGIN_NAMESPACE
  7. namespace Ui { class Widget; }     //将其他文件中的命名空间进行声明
  8. QT_END_NAMESPACE
  9. //自定义的类声明,公共继承自QWidget:QWidget中封装了有关图形化界面的相关操作的具体实现
  10. //由于继承的是系统提供的类,那么自定义的类中即使没有写任何东西,其类中也有很多成员
  11. class Widget : public QWidget
  12. {
  13.     Q_OBJECT    //信号与槽的源对象,直接写即可。没有该宏,就不能使用信号与槽
  14. public:
  15.     Widget(QWidget *parent = nullptr);      //构造函数的声明
  16.     ~Widget();                              //析构函数的声明,虚析构函数
  17. private:
  18.     Ui::Widget *ui;        //成员属性,指针
  19. };
  20. #endif // WIDGET_H
复制代码
  main.cpp
  1. #include "widget.h"
  2. //文件包含自定义的头文件,该头文件中包含了图形化界面类
  3. #include <QApplication>
  4. //包含应用程序的头文件
  5. int main(int argc, char *argv[])
  6. {
  7.     QApplication a(argc, argv);      //使用应用程序实例化对象调用有参构造
  8.     Widget w;            //使用自定义的类调用无参构造在栈区构造一个界面对象
  9.     w.show();            //调用对象的成员函数,将界面展示出来
  10.     return a.exec();
  11.    //a.exec():使用应用程序类对象,调用应用程序的成员函数,保证界面不被关闭,轮询等待界面上的事件发生
  12.     //等待用户操作界面上的组件
  13.    //等待界面上的信号与槽的响应
  14.     //等待事件处理机制的实现
  15. }
复制代码
  widget.cpp
  1. #include "widget.h"
  2. #include "ui_widget.h"
  3. //构造函数的定义
  4. Widget::Widget(QWidget *parent)
  5.     : QWidget(parent)          //在子类的初始化列表中显式调用父类的有参构造,来完成对子类从父类继承下来的成员的初始化
  6.     , ui(new Ui::Widget)       //给自己的类中的指针成员实例化空间
  7. {
  8.     ui->setupUi(this);         //将ui界面上拖拽的组件展示到this界面上
  9. }
  10. //析构函数的定义
  11. Widget::~Widget()
  12. {
  13.     delete ui;       //释放ui界面申请的组件空间
  14. }
复制代码
  使用代码的情势实现登录框
  1. #include "code1.h"
  2. #include<QDebug>
  3. #include<QIcon>
  4. #include<QPushButton>
  5. #include<QLineEdit>
  6. #include<QLabel>
  7. code1::code1(QWidget *parent)
  8.     : QWidget(parent)
  9. {
  10.     this->setWindowTitle("lili's window");
  11.     this->setWindowIcon(QIcon("D:/BaiduNetdiskDownload/qt/yingyong/f54cccba4ab9b9122909fb0e0a4f3d3.jpg"));
  12.     this->setMaximumSize(800,600);
  13.     this->setMinimumSize(400,300);
  14.     this->setFixedSize(500,400);
  15.     //this->resize(800,600);
  16.     //this->set(QIcon("D:/BaiduNetdiskDownload/qt/yingyong/7adcf1a6baf7073e8434ae912bbb52a.png"));
  17.     this->setWindowOpacity(0.9);
  18.     this->move(400,300);
  19.     QPushButton *btn1=new QPushButton(QIcon("D:/BaiduNetdiskDownload/qt/yingyong/12067205a1d2c773274d113ab9594f8.jpg"),"登录",this);
  20.     btn1->resize(60,30);
  21.     btn1->move(150,300);
  22.     btn1->setStyleSheet("color:white;background:pink;border-radius:10px;");
  23.     QPushButton *btn2=new QPushButton("注册",this);
  24.     btn2->resize(btn1->size());
  25.     btn2->move(btn1->x()+btn1->width()+70,btn1->y());
  26.     btn2->setStyleSheet("color:white;background:pink;border-radius:10px;");
  27.     btn2->setIcon(QIcon("D:/BaiduNetdiskDownload/qt/yingyong/1359e195af6400e83b7490ddae6808f.jpg"));
  28.     QLabel *lab1=new QLabel("账号:",this);
  29.     lab1->resize(50,30);
  30.     lab1->move(btn1->x()-60,btn1->y()-90);
  31.     lab1->setStyleSheet("color:pink;");
  32.     QLabel *lab2=new QLabel("密码:",this);
  33.     lab2->resize(50,30);
  34.     lab2->move(btn1->x()-60,lab1->y()+40);
  35.     lab2->setStyleSheet("color:pink;");
  36.     QLineEdit *edit1=new QLineEdit(this);
  37.     edit1->resize(250,30);
  38.     edit1->move(lab1->x()+lab1->width()+10,lab1->y());
  39.     edit1->clear();
  40.     edit1->setStyleSheet("color:pink");
  41.     edit1->setAlignment(Qt::AlignCenter);
  42.     edit1->setPlaceholderText("请输入账号");
  43.     QLineEdit *edit2=new QLineEdit("密码",this);
  44.     edit2->resize(250,30);
  45.     edit2->move(edit1->x(),edit1->y()+40);
  46.     edit2->clear();
  47.     edit2->setStyleSheet("color:pink");
  48.     edit2->setAlignment(Qt::AlignCenter);
  49.     edit2->setPlaceholderText("请输入密码");
  50.     edit2->setEchoMode(QLineEdit::Password);
  51.     QLabel *lab3=new QLabel(this);
  52.     lab3->resize(500,200);
  53.     lab3->setStyleSheet("background:skyblue;");
  54.     //QMovie *movie=new QMovie("");
  55.     //lab3->setScaledContents(true);
  56.     //lab3->setPixmap(QPixmap("D:/BaiduNetdiskDownload/qt/yingyong/218f6c69c7208efb13d66d558999dec.jpg"));
  57.     lab3->setPixmap(QPixmap("D:/BaiduNetdiskDownload/qt/yingyong/7adcf1a6baf7073e8434ae912bbb52a.png"));
  58.     lab3->setScaledContents(true);
  59. }
  60. code1::~code1()
  61. {
  62. }
复制代码



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

灌篮少年

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表