QTday1(实现图形化界面、QT工程项目各文件初始程序的介绍)

news2024/11/30 0:34:50

1.实现图形化界面 

#include "widget.h"
#include "ui_widget.h"
#include <QDebug>                     //输出函数对应的头文件
#include <QIcon>

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);

    this->setFixedSize(540,410);                 //设置固定尺寸
    this->setWindowTitle("小徐的聊天室");          //窗口标题
    this->setWindowIcon(QIcon("C:/Users/潇潇小仙女/Desktop/icon/wodepeizhenshi.png"));   //设置窗口的icon

    //1、实例化标签
    QLabel *lab1 = new QLabel("LOGO",this);
    lab1->resize(540,205);
    lab1->setPixmap(QPixmap("C:/Users/潇潇小仙女/Desktop/icon/logo.png"));
    lab1->setScaledContents(true);                 //设置内容自适应

    QLabel *lab2 = new QLabel("账号",this);
    lab2->resize(35,35);
    lab2->move(115,230);
    lab2->setPixmap(QPixmap("C:/Users/潇潇小仙女/Desktop/icon/userName.jpg"));
    lab2->setScaledContents(true);

    QLabel *lab3 = new QLabel("密码",this);
    lab3->resize(35,35);
    lab3->move(lab2->x(),lab2->y()+65);
    lab3->setPixmap(QPixmap("C:/Users/潇潇小仙女/Desktop/icon/passwd.jpg"));
    lab3->setScaledContents(true);

    //2、构造行编辑器,构造时给定父组件
    QLineEdit *edit1 = new QLineEdit(this);
    edit1->setPlaceholderText("QQ/手机/邮箱");           //设置编辑器的占位文本
    edit1->resize(230,40);                              //设置尺寸
    edit1->move(lab2->x()+80,lab2->y());                //移动位置
    edit1->setStyleSheet("broder-color:black");         //设置样式表

    //3、构造行编辑器,构造时给定父组件以及文本内容
    QLineEdit *edit2 = new QLineEdit(this);
    edit2->setPlaceholderText("密码");                   //设置编辑器的占位文本
    edit2->resize(230,40);                              //设置尺寸
    edit2->move(lab3->x()+80,lab2->y());                //移动位置
    edit2->resize(edit1->size());
    edit2->move(edit1->x(),edit1->y()+60);
    edit2->setEchoMode(QLineEdit::Password);             //设置回显模式

    //4、使用无参构造添加一个按钮
    QPushButton *btn1 = new QPushButton;   //无参构造
    btn1->setParent(this);         //给组件指定父组件,让其依附于界面而存在
    btn1->setText("登录");         //给组件设置文本内容
    btn1->resize(QSize(90,35));   //设置按钮组件的大小
    btn1->move(195,360);          //移动组件位置
    btn1->setIcon(QIcon("C:/Users/潇潇小仙女/Desktop/icon/login.png"));

    //5、构造按钮时,指定父组件
    QPushButton *btn2 = new QPushButton(this);      //将当前界面设置成父组件
    btn2->setText("取消");
    btn2->resize(btn1->size());                     //使用其他按钮的大小设置该组件的大小
    btn2->move(btn1->x()+140,btn1->y());
    btn2->setIcon(QIcon("C:/Users/潇潇小仙女/Desktop/icon/cancel.png"));    //设置图标

}
Widget::~Widget()
{
    delete ui;
}

2.QT工程项目各文件初始程序的介绍

①配置文件:.pro文件

QT       += core gui
# QT工程所需的类库 core是核心库 gui图形化界面相关类库

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
#版本超过4.0,会加上widgets

CONFIG += c++11
#该编译器支持C++11后的版本

# The following define makes your compiler emit warnings if you use
# any Qt feature that has been marked deprecated (the exact warnings
# depend on your compiler). Please consult the documentation of the
# deprecated API in order to know how to port your code away from it.
DEFINES += QT_DEPRECATED_WARNINGS

# You can also make your code fail to compile if it uses deprecated APIs.
# In order to do so, uncomment the following line.
# You can also select to disable deprecated APIs only up to a certain version of Qt.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0

#管理源文件
SOURCES += \
    main.cpp \
    mywindow.cpp

#管理头文件
HEADERS += \
    mywindow.h

#管理ui文件
FORMS += \
    mywindow.ui

# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target

②头文件

#ifndef MYWINDOW_H
#define MYWINDOW_H   //防止文件重复包含

#include <QWidget>   //QWidget类所在的头文件、父类头文件

QT_BEGIN_NAMESPACE
namespace Ui { class MyWindow; }     //命名空间的声明
QT_END_NAMESPACE

//定义属于自己的类,MyWindow是类名,公共继承自QWidget
class MyWindow : public QWidget
{
    Q_OBJECT    //信号与槽的元对象

public:
    MyWindow(QWidget *parent = nullptr);     //构造函数的声明,有一个默认参数的形参
    ~MyWindow();                             //析构函数的声明

private:
    Ui::MyWindow *ui;       //后期可以通过ui指针找到ui界面上拖拽出来的组件
};
#endif // MYWINDOW_H

③源文件

#include "mywindow.h"            //自己的头文件
#include "ui_mywindow.h"         //ui界面对应的头文件

MyWindow::MyWindow(QWidget *parent)        //构造函数的定义
    : QWidget(parent)                      //显性调用父类的构造函数完成对子类从父类继承下来的成员的初始化工作
    , ui(new Ui::MyWindow)                 //对自己类中的指针成员开辟空间
{
    ui->setupUi(this);                     //给拖拽出来的组件实例化空间
}

MyWindow::~MyWindow()             //析构函数的定义
{
    delete ui;                    //释放ui指针的内存
}

④主程序

#include "mywindow.h"               //图形化界面的头文件

#include <QApplication>             //应用程序的头文件

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);     //实例化一个应用程序的对象,调用的是有参构造
    MyWindow w;                     //在栈区实例化自定义类的对象
    w.show();                       //调用show函数,展示图形化界面,该函数是父类提供的,直接用即可
    return a.exec();                //为了阻塞界面不被关闭,等待相关事情发生
                                    //等待信号与槽、事件处理、等待用户操作
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/951576.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Ansible学习笔记11

Command和Shell模块&#xff1a; 两个模块都是用于执行Linux命令的&#xff0c;这个对于命令熟悉的工程师来说&#xff0c;用起来非常high。 Shell模块跟Command模块差不多&#xff08;Command模块不能执行一类$HOME、> 、<、| 等符号&#xff0c;但是Shell是可以的。&…

MySQL函数和约束

MySQL常见函数 字符串常见函数 # concat : 字符串拼接 select concat(Hello , MySQL); # lower : 全部转小写 SELECT LOWER(Hello); # upper : 全部转大写 SELECT UPPER(hello); # lpad : 左填充 SELECT LPAD(hello,10,0); # rpad : 右填充 SELECT RPAD(hello,10,0); # trim…

K8S容器OOM killed排查

背景 数据服务平台南海容器k8s设置的内存上限2GB&#xff0c;多次容器被OOM killed。 启动命令 java -XX:MaxRAMPercentage70.0 -XX:HeapDumpOnOutOfMemoryError -XX:HeapDumpPath/apps/logs/ ***.jar排查过程 1 当收到实例内存超过95%告警时&#xff0c;把jvm进程堆dump下…

kotlin 转 Java

今天突然想研究下有些kotlin文件转为Java到底长什么样&#xff0c;好方便优化kotlin代码&#xff0c;搞了半天发现一个非常简单的Android Studio或者Intellij idea官方插件Kotlin&#xff0c;Kotlin是插件的名字&#xff0c;真是醉了&#xff1b; 这里以AS为例&#xff0c;使用…

git在windows上安装

介绍git工具在windows上如何安装 git官网下载地址 1.1、下载 https://github.com/git-for-windows/git/releases/download/v2.36.0.windows.1/Git-2.36.0-64-bit.exe自行选择版本&#xff0c;这里我选择的是 Git-2.36.0-64-bit这个版本 1.2、安装 安装路径选择英文且不带空格…

九、适配器模式

一、什么是适配器模式 适配器模式&#xff08;Adapter&#xff09;的定义如下&#xff1a;将一个类的接口转换成客户希望的另外一个接口&#xff0c;使得原本由于接口不兼容而不能一起工作的那些类能一起工作。 适配器模式&#xff08;Adapter&#xff09;包含以下主要角色&…

OpenVPN服务器

目录 一、OpenVPN是什么&#xff1f; 二、OpenVPN连接建立的过程 三、数据包远程传输处理过程&#xff08;自我理解&#xff09; 四、OpenVPN实验案例 4.1生成OpenVPN所需证书文件 4.2配置OpenVPN服务器 4.3配置OpenVPN客户端 4.4在远程客户端windows 10上进行测试 一、OpenVPN…

HTML5之drawImage函数

参数说明&#xff1a; drawImage(image, x, y) //按原图片大小绘制。 drawImage(image, x, y, width, height) //按指定大小绘制。 drawImage(image, sourceX, sourceY, sourceWidth, sourceHeight, destX, destY, destWidth, destHeight) //常用于图片裁剪。 其中&#xff1a…

实战:基于卷积的MNIST手写体分类

前面实现了基于多层感知机的MNIST手写体识别&#xff0c;本章将实现以卷积神经网络完成的MNIST手写体识别。 1. 数据的准备 在本例中&#xff0c;依旧使用MNIST数据集&#xff0c;对这个数据集的数据和标签介绍&#xff0c;前面的章节已详细说明过了&#xff0c;相对于前面章…

对比Flink、Storm、Spark Streaming 的反压机制

分析&回答 Flink 反压机制 Flink 如何处理反压? Storm 反压机制 Storm反压机制 Storm 在每一个 Bolt 都会有一个监测反压的线程&#xff08;Backpressure Thread&#xff09;&#xff0c;这个线程一但检测到 Bolt 里的接收队列&#xff08;recv queue&#xff09;出现了…

C++笔记之临时变量与临时对象与匿名对象

C笔记之临时变量与临时对象与匿名对象 code review! 文章目录 C笔记之临时变量与临时对象与匿名对象1.C中的临时变量指的是什么&#xff1f;2.C中的临时对象指的是什么&#xff1f;3.C中临时对象的作用是什么&#xff1f;什么时候要用到临时对象?4.给我列举具体的例子说明临…

idm下载视频

idm下载视频 安装后 地址为&#xff1a; 链接&#xff1a;下载地址 提取码&#xff1a;fgzv 安装后 设置浏览器插件 完成 参考文章

自动驾驶和辅助驾驶系统的概念性架构(二)

摘要&#xff1a; 本篇为第二部分主要介绍底层计算单元、示例工作负载 前言 本文档参考自动驾驶计算联盟(Autonomous Vehicle Computing Consortium)关于自动驾驶和辅助驾驶计算系统的概念系统架构。该架构旨在与SAE L1-L5级别的自动驾驶保持一致。本文主要介绍包括功能模块图…

自从学了C++之后,小雅兰就有对象了!!!(类与对象)(下)——“C++”

各位CSDN的uu们好呀&#xff0c;好久没有更新啦&#xff0c;今天继续类和对象的内容&#xff0c;下面&#xff0c;让我们进入西嘎嘎类和对象的世界吧&#xff01;&#xff01;&#xff01; 1. 再谈构造函数 2. Static成员 3. 友元 4. 内部类 5.匿名对象 6.拷贝对象时的一些…

设计模式的使用——模板方法模式+动态代理模式

一、需求介绍 现有自己写的的一套审批流程逻辑&#xff0c;由于代码重构&#xff0c;需要把以前的很多业务加上审批的功能&#xff0c;再执行完审批与原有业务之后&#xff0c;生成一个任务&#xff0c;然后再统一处理一个任务&#xff08;本来是通过数据库作业去处理的&#x…

pandas数据分析之数据绘图

一图胜千言&#xff0c;将信息可视化&#xff08;绘图&#xff09;是数据分析中最重要的工作之一。它除了让人们对数据更加直观以外&#xff0c;还可以帮助我们找出异常值、必要的数据转换、得出有关模型的想法等等。pandas 在数据分析、数据可视化方面有着较为广泛的应用。本文…

C# 试图加载格式不正确的程序。 (异常来自 HRESULT:0x8007000B)

C# 在调用Cdll时&#xff0c;可能会出现 &#xff1a;试图加载格式不正确的程序。 (异常来自 HRESULT:0x8007000B)这个错误。 一般情况下是C#目标平台跟Cdll不兼容&#xff0c;64位跟32位兼容性问题&#xff0c; a.客户端调用Cdll报的错则&#xff0c; 1)允许的话把C#客户端…

SQL-basics

SQL 一些常用的查询语句用法 SQL 中的聚合函数 SQL 中的子查询 SQL 使用实例 SELECT F_NAME , L_NAME FROM EMPLOYEES WHERE ADDRESS LIKE ‘%Elgin,IL%’; SELECT F_NAME , L_NAME FROM EMPLOYEES WHERE B_DATE LIKE ‘197%’; SELECT * FROM EMPLOYEES WHERE (SALARY BET…

总结974

今日共计学习12h&#xff0c;日计划完成90%.今晚又把总结时间占用了&#xff0c;明天预留0.5h进行月总结吧&#xff0c;重新制定学习时间表&#xff0c;之前的已经用不了。 跟一个学府的老师聊了聊天&#xff0c;感觉聊完之后&#xff0c;本以为会心情舒畅&#xff0c;没想到反…

ELK安装、部署、调试(五)filebeat的安装与配置

1.介绍 logstash 也可以收集日志&#xff0c;但是数据量大时太消耗系统新能。而filebeat是轻量级的&#xff0c;占用系统资源极少。 Filebeat 由两个主要组件组成&#xff1a;harvester 和 prospector。 采集器 harvester 的主要职责是读取单个文件的内容。读取每个文件&…