QT开发实例之常用控件(上)_qt 控件开发

收集整理了一份《2024年最新物联网嵌入式全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升的朋友。
img
img

如果你需要这些资料,可以戳这里获取

需要这些体系化资料的朋友,可以加我V获取:vip1024c (备注嵌入式)

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人

都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

设置窗口属性

为防止通过setWindowTitle 设置的窗口标题出现中文乱码的问题,需要将设置的参数进行一个转换,可以通过fromLocal8Bit 函数转换后就不会出现中文乱码的问题了。

learn::learn(QWidget \*parent)
    : QMainWindow(parent)
    , bnt(nullptr)
{
    ui.setupUi(this);

    QString iconpath = "../Resource Files/WIN\_20221114\_17\_56\_03\_Pro.jpg";
    //设置窗口标题
    setWindowTitle(QString::fromLocal8Bit("QT5.1窗口"));
    //设置窗口固定大小
    setMinimumSize(300, 300);
    setMaximumSize(300, 300);
    //设置窗口的背景颜色为红色
    this->setStyleSheet("background:red");
    //修改窗口的图标
    this->setWindowIcon(QIcon(iconpath));
}

字体形状窗体

将窗体背景色透明,根据图片形状显示窗体
在这里插入图片描述

void learn::SetLucency()
{
	//去掉标题栏
    this->setWindowFlags(Qt::FramelessWindowHint);
    //设置透明
    this->setAttribute(Qt::WA_TranslucentBackground, true);
    /\*
 qss语句解释:
 background-image :背景图片
 url(xxx) 填写文件路径
 background-repeat:no-repeat; 不平铺
 \*/
    this->setStyleSheet("background-image:url(C:/Users/26961/Desktop/1.png); background-repeat:no-repeat;");
}

QPushButton 按钮

在窗体中创建按钮 A,点击按钮 A,改变文字为按钮 B。

#pragma once

#include <QtWidgets/QMainWindow>
#include "ui\_learn.h"
#include <QPushButton>
#include <qtimer.h>
#include <qpoint.h>
#include <QDebug>
#include <QMouseEvent> 

class learn : public QMainWindow
{
    Q_OBJECT

public:

    learn(QWidget \*parent = nullptr);
    ~learn();
    // 按钮移动
    void MovePushButton();
    //鼠标点击
    void PressMouseEvent(QMouseEvent\* e);
    //鼠标松开
    void ReleaseMouseEvent(QMouseEvent\* e);
    //鼠标移动
    void MoveMouseEvent(QMouseEvent\* e);
    //设置透明
    void SetLucency();
    //修改按钮
    void ChangeButtonText();
private:
    Ui::learnClass ui;
    QPushButton\* bnt;
    QPoint last; //记录鼠标最近一次的坐标点
};


void learn::ChangeButtonText()
{
    if (!bnt)
    {
        delete bnt;
        bnt = nullptr;
    }
    bnt = new QPushButton(QString::fromLocal8Bit("修改文本"), this);
    //设置按钮的原点和宽高
    bnt->setGeometry(QRect(100, 100, 100, 25));
    //注册按钮处理事件
    connect(bnt, &QPushButton::clicked, this, [=]() 
        {
            bnt->setText(QString::fromLocal8Bit("按钮已经修改"));
        });
}

QLabel

在窗体中创建 QLabel 标签显示“我是 QLabel”字样,红色加粗倾斜字体。

在这里插入图片描述

void learn::ChangeLabel()
{
	if (!label)
    {
        delete label;
        label = nullptr;
    }
	//指定父对象, 设置Qlable文本
    this->label = new QLabel(QString::fromLocal8Bit("我是QLabel"), this);
    this->setGeometry(QRect(100, 100, 100, 25));
    /\*
 font-size:20px 字体大小
 color:red 设置颜色
 font-weight:bold 字宽
 font-style:italic 字体样式
 \*/
    //设置Qlable qss样式
    label->setStyleSheet("font-size:20px; font-weight:bold; font-style:italic");
}

QLineEdit 单行文本

对输入的密码会进行一个隐藏设置

在这里插入图片描述

void learn::ChangeLineEdit()
{
    if (!line)
    {
        delete line;
        line = nullptr;
    }
    this->line = new QLineEdit(this);
    //设置单行坐标和宽高
    line->setGeometry(QRect(100, 100, 300, 25));
    //设置单行文本样式
    line->setStyleSheet("font-size:20px; font-weight:bold; font-style:italic");
    //限制最大长度为12
    line->setMaxLength(12);

	//不可写设置
    //line->setEchoMode(QLineEdit::NoEcho);

    //对密码进行隐藏设置
    line->setEchoMode(QLineEdit::Password);
}

QComboBox 下拉列表框

在这里插入图片描述

void learn::AddCharActer()
{
    if (this->box) {
        delete box;
        box = nullptr;
    }
    box = new QComboBox(this);
    box->setGeometry(QRect(100, 100, 300, 25));
    QStringList str;
    str << QString::fromLocal8Bit("数学")
        << QString::fromLocal8Bit("语文")
        << QString::fromLocal8Bit("地理");
    
    box->addItems(str);
}

QFontComboBox 字体下拉列表框

在这里插入图片描述

void learn::AddFontComboBox() 
{
	//创建字体下拉列表
    fontbox = new QFontComboBox(this);
    fontbox->setGeometry(QRect(100, 125, 300, 25));
    
    bnt = new QPushButton(QString::fromLocal8Bit("选择"), this);
    bnt->setGeometry(QRect(100, 100, 300, 25));
    
    line = new QLineEdit(this);
    line->setGeometry(QRect(100, 150, 300, 25));
    connect(bnt, &QPushButton::clicked, this, [=]()
        {
        	//当选择按钮被点击时,自动更换line 的信息
            line->setText(fontbox->currentText());
        });
}

QSpinBox 控件

在这里插入图片描述

void learn::AddSpinBox() 
{
    spin = new QSpinBox(this);
    spin->setGeometry(QRect(100, 125, 300, 25));

    //设置取值范围
    spin->setRange(0,100);
    //设置初始值
    spin->setValue(0);

	//除了初始值这些可以被修改,除此之外所有的文本都不允许被修改
    //后缀
    spin->setSuffix(QString::fromLocal8Bit("元/斤"));
    //前缀
    spin->setPrefix(QString::fromLocal8Bit("苹果"));
}

QTimeEdit 时间控件

在这里插入图片描述

void learn::AddTimeEdit() 
{
    time = new QTimeEdit(this);
    time->setGeometry(QRect(100, 125, 300, 25));


**收集整理了一份《2024年最新物联网嵌入式全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升的朋友。**
![img](https://img-blog.csdnimg.cn/img_convert/b747ef596f87c7995ce658de7d866910.png)
![img](https://img-blog.csdnimg.cn/img_convert/afe910214af94ca579bb2748777d5045.png)

**[如果你需要这些资料,可以戳这里获取](https://bbs.csdn.net/topics/618679757)**

**需要这些体系化资料的朋友,可以加我V获取:vip1024c (备注嵌入式)**

**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人**

**都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

[外链图片转存中...(img-dhAXq9vU-1715899684890)]
[外链图片转存中...(img-vT5Jcfai-1715899684890)]

**[如果你需要这些资料,可以戳这里获取](https://bbs.csdn.net/topics/618679757)**

**需要这些体系化资料的朋友,可以加我V获取:vip1024c (备注嵌入式)**

**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人**

**都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值