QTday1(第一个QT界面、常用类与组件)

2023-11-05

一、Xmind整理:

Assistant帮助文档的使用:

设计师界面的介绍:

各文件之间调用方式:

二、上课笔记整理:

1.第一个QT界面

①创建自定义类时需要指定父类

②第一个界面的相关操作 

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

using namespace std;
MainWindow::MainWindow(QWidget *parent)
    : QWidget(parent)
{
    //输出函数 qDebug();
    //使用方式1:
    qDebug("%s","hello worrld");       //类似于 printf

    //使用方式2:
    qDebug() << "你好";                 //类似于cout

    //1、关于组件的尺寸设置
    qDebug() << "size = " << this->size();       //输出组件尺寸
    this->resize(540,410);                       //重新设置尺寸
    this->resize(QSize(800,600));                //使用匿名对象,调用重新设置尺寸函数
    qDebug() << "size = " << this->size();
    qDebug() << "width = " << this->width();     //输出组件宽度
    qDebug() << "height = " << this->height();   //获取高度

    //2、设置尺寸最值
    this->setMaximumSize(1000,800);              //设置最大尺寸
    this->setMinimumSize(400,300);               //设置最小尺寸
    this->setFixedSize(540,410);                 //设置固定尺寸

    //3、窗口标题
    qDebug() << this->windowTitle();
    this->setWindowTitle("My First Window");
    qDebug() << this->windowTitle();

    //4、设置窗口的icon
    this->setWindowIcon(QIcon("C:\\QT(C++)\\QTday1\\qq.png"));

    //5、设置背景色,一般使用样式表完成
    this->setStyleSheet("background-color:skyblue;");

    //6、设置窗口透明度
    this->setWindowOpacity(0.8);

    //7.设置纯净窗口
    this->setWindowFlag(Qt::FramelessWindowHint);

    //8、移动窗口位置
    this->move(50,100);
  }

MainWindow::~MainWindow()
{
}

2.常用类与组件

#include "widget.h"
#include "ui_widget.h"

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

    //1、使用无参构造添加一个按钮
    QPushButton *btn1 = new QPushButton;   //无参构造
    //btn1->show();
    btn1->setParent(this);       //给组件指定父组件,让其依附于界面而存在
    btn1->setText("按钮1");       //给组件设置文本内容
    qDebug() << btn1->size();    //界面大小
    btn1->resize(QSize(90,35));  //设置按钮组件的大小
    btn1->move(200,0);           //移动组件位置
    btn1->setStyleSheet("background-color:red;"    //设置样式表
                        "border-radius:10px;"
                        "color:white;");

    //2、构造一个按钮时,指定父组件
    QPushButton *btn2 = new QPushButton(this);      //将当前界面设置成父组件
    btn2->setText("按钮2");
    btn2->resize(btn1->size());                     //使用其他按钮的大小设置该组件的大小
    btn2->move(btn1->x(),80);
    btn2->setEnabled(false);                        //设置不可用状态
    btn2->setIcon(QIcon("C:\\QT(C++)\\QTday1\\qq.png"));    //设置图标

    //3、构造按钮时给定文本内容以及父组件
    QPushButton *btn3 = new QPushButton("按钮3",this);
    btn3->resize(btn1->size());
    btn3->move(btn2->x(),btn2->y()+50);
    btn3->setIcon(QIcon("C:\\QT(C++)\\QTday1\\qq.png"));

    //4、构造一个按钮,构造时给定父组件、文本内容、icon
    QPushButton *btn4 = new QPushButton(QIcon("C:\\QT(C++)\\QTday1\\qq.png"),"按钮4",this);
    btn4->resize(btn1->size());
    btn4->move(btn3->x(),btn3->y()+50);

    /******************************************************************************************/
    //1.构造一个行编辑器,构造时给定父组件
    QLineEdit *edit1 = new QLineEdit(this);
    //edit1->setText("请输入>>>");                      //设置编辑器中的文本内容
    edit1->setPlaceholderText("QQ/手机/邮箱");           //设置编辑器的占位文本
    edit1->resize(200,40);                              //设置尺寸
    edit1->move(btn1->x()+110,0);                       //移动位置
    edit1->setEnabled(false);                           //设置不可用状态

    //2、构造一个行编辑器,构造时给定父组件以及文本内容
    QLineEdit *edit2 = new QLineEdit("哈哈哈哈哈哈哈",this);
    qDebug() << edit2->text();                           //获取行编辑器中文本内容
    edit2->resize(edit1->size());
    edit2->move(edit1->x(),edit1->height()+40);
    edit2->setEchoMode(QLineEdit::Password);             //设置回显模式

    /******************************************************************************************/
    //1、实例化一个标签
    QLabel *lab1 = new QLabel("账号",this);
    lab1->resize(50,50);
    lab1->setStyleSheet("background-color:yellow");
    lab1->setPixmap(QPixmap(""));
    lab1->setScaledContents(true);                 //设置内容自适应
}

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

QTday1(第一个QT界面、常用类与组件) 的相关文章

随机推荐

  • AI算法工程师

    文章目录 一 我们身处人工智能的时代 人工智能的时代 人工智能的应用 二 人工智能的流程和基本概念 人工智能常见流程 人工智能基本概念与区别 三 人工智能的常见任务和本质 有监督机器学习任务与本质 无监督机器学习任务与本质 一 我们身处人工
  • docker 卸载镜像_为什么删除docker镜像后依然占用本地空间?

    bin bash Copyright 2017 Th o Chamley Permission is hereby granted free of charge to any person obtaining a copy of this
  • linux高级程序设计

    这本阿里P8撰写的算法笔记 再次推荐给大家 身边不少朋友学完这本书最后加入大厂 Github 疯传 史上最强悍 阿里大佬 LeetCode刷题手册 开放下载了 一网络通信基础 TCP IP协议簇基础 之所以称TCP IP是一个协议簇 是因为
  • java.util.concurrent.locks.ReentrantReadWriteLock 读写锁

    读写锁简介 对共享资源有读和写的操作 且写操作没有读操作那么频繁 在没有写操作的时候 多个线程同时读一个资源没有任何问题 所以应该允许多个线程同时读取共享资源 但是如果一个线程想去写这些共享资源 就不应该允许其他线程对该资源进行读和写的操作
  • MICROSOFT OFFICE MSDT操作系统命令注入漏洞(CVE-2022-30190)

    目录 漏洞概述 受到影响的产品和版本 漏洞复现 1 搭建靶场 2 攻击复现 一 执行系统程序 二 执行系统命令 修复 漏洞概述 Microsoft Windows Support Diagnostic Tool是美国微软 Microsoft
  • 操作系统——中断/异常的处理过程

    第1关 除零异常分析 分析版本 1 1 内核 回答下列问题 1 在函数 main 的语句jiffies jiffies 0 所对应的汇编指令片段中 有一个 idiv 指令 此指令的地址是多少 2 在该 idiv 指令执行之前 当前指令位置
  • 如何在CentOS上配置虚拟IP地址 (VIP)

    目录 介绍 教程 第1步 第2步 第3步 第4步 第5步 本教程将指导您如何在服务器上配置虚拟IP地址 介绍 顾名思义 虚拟IP地址 VIP 是一个没有实际物理网络接口的IP地址 传入的数据包被发送到VIP 但所有数据包都通过真实的网络接口
  • 监控程序可以监控网站的端口流量情况

    https github com louislam uptime kuma
  • PHP BLOB处理 获取BLOB数据

  • 量化投资学习-13:一张图残酷的展现了庄家、量化交易者、散户的盈利空间的对比

    庄家 量化交易者 散户的盈利空间对比 买入 庄家 最先 在股票形态没有发生变化前 提前潜入 收集筹码 量化交易者 起涨开始时 股票的上涨形态形成 满足量化指标买入 散户 大幅上涨显著后 后知后觉 情绪化追涨买入 卖出 庄家 最先 在股票形态
  • 围绕http请求头中Referer展开的一些知识

    1 什么是referer lt 点击以获取跳转信息 gt 跳转过去记得按一下f12点击网络请求详情 再刷新一下 就可以看见referer字段 当我们尝试在浏览器内部直接输入这熟悉的网址时 此时刷新后则是这样一番景象 于是你就明白了refer
  • 使用RT-Thread Studio, RT-Thread+ stm32f103c8最小系统板点亮LED灯

    1 使用RT Thread Studio 新建RT Thread项目 2 根据自己芯片选择 3 在main c中添加如下代码 include
  • 修改openwrt页面配置工具—uci(+源码)

    UCI UCI Unified Configuration Interface 统一配置接口 是openwrt的一种页面配置工具 通过该工具可以直接配置openwrt的一些信息 用户只管信息的填写 uci使用lua语言进行开发 lua语言语
  • STM32定时器重载值问题

    今天遇到stm32重载值设置为0后出现问题 不能将重载值设置为0
  • 软件测试必会之——数据库的DML操作

    DML 数据操纵语言 表中的数据进行操作的语言 增加数据 insert 删除数据 delete 修改数据 update 查找数据 select 最高的使用频率 一 DML数据操纵语言 数据操纵语言是对数据库对象中数据的操作 比如对数据进行增
  • 机器学习算法与Python实践之(七)逻辑回归(Logistic Regression)

    机器学习算法与Python实践之 七 逻辑回归 Logistic Regression zouxy09 qq com http blog csdn net zouxy09 机器学习算法与Python实践这个系列主要是参考 机器学习实战 这本
  • 怎么建立一个自己的博客

    怎么建立一个自己的博客 1 写在开头 其实我自己写的文章也不多 只是看到有些东西会做一下记录 所以部署一个自己的博客来记录这些东西也就会方便很多 而Hexo框架的博客使用方便对电脑要求也不高 并且有很多可以使用的主题 所以就用它把 先来看看
  • 古典密码算法(移位密码算法、维吉尼亚算法)

    古典密码算法 凯撒 维吉尼亚 A 1 1 移位密码算法 实验目的 1 学习移位密码的原理 2 学习移密码的实现 实验原理 算法原理 a 移位密码就是对26个字母进行移位操作 可以移动任意位数 这样就实现了对明文的加密 移位操作简单易行 因此
  • MySQL参数之max_connections

    连接请求的变量 max connections MySQL的最大连接数 增加该值增加mysqld 要求的文件描述符的数量 如果服务器的并发连接请求量比较大 建议调高此值 以增加并行连接数量 当然这建立在机器能支撑的情况下 因为如果连接数越多
  • QTday1(第一个QT界面、常用类与组件)

    一 Xmind整理 Assistant帮助文档的使用 设计师界面的介绍 各文件之间调用方式 二 上课笔记整理 1 第一个QT界面 创建自定义类时需要指定父类 第一个界面的相关操作 include mainwindow h include