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

news2024/11/23 2:36:10

一、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;
}

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

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

相关文章

比Python快3.5万倍的Mojo融资7亿,LLVM之父:不会威胁到Python,该恐惧的应该是C++

近日&#xff0c;Modular AI 公司宣布成功融资 1 亿美元&#xff08;约 7.29 亿人民币&#xff09;&#xff0c;据称这是继去年 3000 万美元融资之后的第二轮融资。 Modular AI 称他们未来的愿景是通过 AI 引擎和 Mojo 为全球开发者提供 AI 基础设施。 Modular AI 是 Chris La…

maven本地安装jar包install-file,解决没有pom的问题

背景&#xff1a; 公司因为权限问题&#xff0c;没有所有的代码&#xff0c;内部maven还在搭建&#xff0c;所以需要拿到同事的jar包&#xff0c;本地install&#xff1a; mvn install:install-file -DgroupIdcom..framework -DartifactIdcloud-api -Dversion1.0.0-SNAPSHOT …

Blender 3D建模要点

3d模型可以为场景的仿真模拟带来真实感,它还有助于更轻松地识别场景中的所有内容。 例如,如果场景中的所有对象都是简单的形状,如立方体和圆形,则很难在仿真中区分对象。 1,碰撞形状与视觉形状 像立方体和球体这样的简单形状,通常被称为“基本体”,通常用作碰撞块。 与…

js优雅的统计字符串字符出现次数

题目如下 统计一串字符串中每个字符出现的频率 示例字符串 let str asdfasqwerqwrdfafafasdfopasdfopckpasdfassfd小白写法 let str asdfasqwerqwrdfafafasdfopasdfopckpasdfassfdlet result {}; for (let i 0; i < str.length; i) {if (result[str[i]]) {result[str[…

【算法训练-字符串】一 最长无重复子串

废话不多说&#xff0c;喊一句号子鼓励自己&#xff1a;程序员永不失业&#xff0c;程序员走向架构&#xff01;本篇Blog的主题是最长无重复子串或最长无重复子数组&#xff0c;这类题目出现频率还是很高的。 最长无重复子串【MID】 先来看字符串数据结构的题目 题干 解题思…

链接minio出现S3 API Requests must be made to API port. 错误记录

网上找了个链接的demo默认端口是9000 然后我登录了MinMo服务器&#xff0c;登录端口确实也是9000 不过我是通过1panle安装的 信息如下 表面了API连接要用&#xff1a;9001端口才行 修改后重启 ok

入职一家公司只会功能测试,如何进一步提升自己?

一定要帮助想上进却又迷茫的人。最近也听到一些做功能测试的同学的交流&#xff0c;天天做手工测试&#xff0c;想提升一下自己又不知道如何提升&#xff1f;其实还是在于这些同学对自己没有一个清晰的定位&#xff0c;没有明确的目标。 做为功能测试人员来讲&#xff0c;从发…

Vscode漂亮配色方案

有需要的私自&#xff0c;付费

记一次对链接、COMMON块、多重符号定义的理解

问题引入 首先是两个测试程序 // foo.c long long int a;// bar.c #include <stdio.h>int a; int main(){a 1;long long int len sizeof(a);printf("%lld\n", len);return 0; }将两个程序链接到一起 问题&#xff1a;len等于几&#xff1f; 初步分析 环境…

【数据结构与算法 三】常见数据结构与算法组合应用方式

一般的数据结构和对应的 很抱歉,作为一个文本AI模型,我无法直接绘制图表,但我可以为您列出常见的算法和数据结构分类,并为每个分类提供简要说明。您可以根据这些信息自行绘制图表。 算法分类: 搜索算法:用于在数据集中查找特定元素的算法,如线性搜索、二分搜索等。 排…

【SpringBoot】最基础的项目架构(SpringBoot+Mybatis-plus+lombok+knife4j+hutool)

汝之观览&#xff0c;吾之幸也&#xff01; 从本文开始讲下项目中用到的一些框架和技术&#xff0c;最基本的框架使用的是SpringBoot(2.5.10)Mybatis-plus(3.5.3.2)lombok(1.18.28)knife4j(3.0.3)hutool(5.8.21),可以做到代码自动生成&#xff0c;满足最基本的增删查改。 一、新…

从零开始探索C语言(三)----运算符和判断语句

文章目录 1. C 运算符1.1 算术运算符1.2 关系运算符1.3 逻辑运算符1.4 位运算符1.5 赋值运算符1.6 杂项运算符 ↦ sizeof & 三元1.7 C 中的运算符优先级 2. C 判断2.1 if 语句2.2 if...else 语句2.3 if...else if...else 语句2.4 ? : 运算符(三元运算符) 1. C 运算符 运算…

商业模式案例:七星拼团—微三云门门

企业战略角度&#xff1a; 七星拼团模式是一种以互联网思维为引流方式的商业战略&#xff0c;通过终端用户自主裂变新用户&#xff0c;为推荐人带来拉新奖励&#xff0c;从而构建一个共赢的商业生态系统。 终端用户角度&#xff1a; 七星拼团模式为终端用户提供了零门槛、零…

如何轻松搭建 Web 自动化测试框架(Python+selenium)

在程序员的世界中&#xff0c;一切重复性的工作&#xff0c;都应该通过程序自动执行。「自动化测试」就是一个最好的例子。 随着互联网应用开发周期越来越短&#xff0c;迭代速度越来越快&#xff0c;只会点点点&#xff0c;不懂开发的手工测试&#xff0c;已经无法满足如今的…

【Go 基础篇】Go语言结构体详解:打开自定义类型的大门

嗨&#xff0c;Go语言学习者们&#xff01;在编程的世界里&#xff0c;数据是核心&#xff0c;而结构体&#xff08;Struct&#xff09;是一种能够帮助我们更有组织地存储和操作数据的重要工具。在本篇博客中&#xff0c;我们将深入探讨Go语言中结构体的概念、定义、初始化、嵌…

【Flutter】Flutter 使用 fluttertoast 实现显示 Toast 消息

【Flutter】Flutter 使用 fluttertoast 实现显示 Toast 消息 文章目录 一、前言二、安装和基础使用三、不同平台的支持情况四、如何自定义 Toast五、在实际业务中的应用六、完整的业务代码示例&#xff08;基于 Web 端&#xff09;七、总结 一、前言 在这篇文章中&#xff0c;…

关于使用远程工具连接mysql数据库时,提示:Public Key Retrieval is not allowed

我在使用DBeaver工具连接 数据库时&#xff0c;提示&#xff1a;Public Key Retrieval is not allowed&#xff0c; 我在前一天还是可以连接的&#xff0c;但是今天突然无法连接了&#xff0c; 但是最后捣鼓了一下又可以了。 具体方法&#xff1a;首先先把mysql服务停了&#x…

【触动精灵】IDE 连接设备

文章目录 1. 安装 TSStudio2. 下载 蒲公英VPN使用方法后台管理设备 3. 下载 雷电模拟器雷电设置安装蒲公英安装触动精灵 4. IDE 连入设备 1. 安装 TSStudio 登录触动官网&#xff0c;注册触动账号。 左下角开发工具&#xff0c;选择下载 IDE 触动脚本编辑器界面如下&#xff…

Java基础二十一(异常捕获和处理)

1. 异常 1.1 概述 (1) 认识异常 异常是指程序在运行过程中出现非正常情况。 (2) Java 异常体系结构 所有异常类都是 Throwable 类的子类&#xff0c;它派生出两个子类&#xff0c;Error 类和 Exception 类。 &#xff08;1&#xff09;Error 类 : 表示程序无法恢复的严重错误…