当前位置: 首页 > news >正文

QT——c++界面编程库

 非界面编程

QT编译的时候,依赖于 .pro 配置文件:

SOURCES: 所有需要参与编译的 .cpp 源文件

HEADERS:所有需要参与编译的.h 头文件

QT:所有需要参与编译的 QT函数库

.pro文件一旦修改,注意需要键盘按 ctrl+s 才能加载最新的配置文件

标准输出:QDebug 类

#include <QDebug>

qDebug() << 输出的数据;


qDebug() 是全局函数, 返回 QDebug 对象【 c++中的cout】

QT所有的类,以 Q 开头

第二个字母通常也大写

界面编程

使用QT界面,显示 hello world

查找函数

1:哪个类的

2: CONTENTS       : 目录

3:类名 class:基础信息

#include :依赖的头文件

QT:依赖库文件,在 .pro 文件中 QT标签后面追加

Inherits: 基类

Inherits by :有哪些派生类

4:Public Functions:        类中所有公开函数

QWidget

比较底层的窗口类,是很多很多窗口类的基类
QWidget的函数,很多窗口继承

QWidget 类:一般作为一个复合型窗口的底座
一个窗口是复杂的,里面复合了很多子窗口
子窗口,都需要依赖底座父窗口去实现

QWidget就是底座功能

设置几何图形:
setGeometry(x,y,w,h) 左上角的坐标 x,y , 图形的宽度高度

获取 x轴坐标和y轴坐标:
int x() const
int y() const

 QLabel

这个窗口专门承载文字和图片

承载文字

1 设置文字 setText(“”)
2 获取文字 QString text()

调整文字格式

QFont 类对象 设置文字格式

QFont font
font.setBold(1) 设置文字是否粗体
font.setItalic(1) 设置文字是否斜体
font.setPointSize(int pointSize) 设置文字大小

将调整好的文字设置给 label

QLabel lb
lb.setFont(font)

 文字调整颜色

QPalette pe;
pe.setColor(QPalette::WindowText,Qt::red);//第一个参数是宏,设置label中哪部分的颜色

lb.setPalette(pe);

文字居中

 //lb.setAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
lb.setAlignment(Qt::AlignCenter);

承载图片

 QLabel lb;
 lb.setPixmap()

QLineEdit

文本编辑器,单行文本输入,支持设置占位文字和隐藏输入内容

使用代码输入/获取文字
setText(文字)
QString text()

设置占位文字
setPlaceholderText(占位文字)

 输入的文字隐藏
setEchoMode(宏定义)

#include <QApplication>
#include <QWidget>
#include <QPushButton>
#include <QLineEdit>
#include <QVBoxLayout>
#include<QDebug>
int main(int argc, char *argv[])
{
    QWidget window;
    QVBoxLayout *layout = new QVBoxLayout(&window);
    // 创建 QLineEdit
    QLineEdit *lineEdit = new QLineEdit;
    layout->addWidget(lineEdit);
    // 创建按钮
    QPushButton *button = new QPushButton("Get Text");
    layout->addWidget(button);

    // 连接按钮点击信号到槽函数
    QObject::connect(button, &QPushButton::clicked, [lineEdit]() {
        QString text = lineEdit->text();  // 获取输入的文字
        qDebug() << "Text:" << text;
    });

    // 设置文字
    //lineEdit->setText("Hello, QLineEdit!");
    //lineEdit->setPlaceholderText("占位文字");
    //    lineEdit->setEchoMode(QLineEdit::Normal);//正常显示
    //   lineEdit->setEchoMode(QLineEdit::NoEcho);//不显示
    //    lineEdit->setEchoMode(QLineEdit::Password);//密码隐藏
    //lineEdit->setEchoMode(QLineEdit::PasswordEchoOnEdit);//  输入的时候不隐藏,输完再隐藏.编辑完,指的是,操作对象不再是当前窗口,也就是所谓的 "失去焦点"

    window.show();
    return app.exec();  // 启动事件循环
}

QTextEdit

允许有回车的文本编辑器
多行文本输入,支持富文本和图片插入。

QString toPlainText()        获取文本编辑器中的文字
setText(文字)                设置文字

设置图片

依赖 html 格式的代码
html的语句,直接通过 setText 去设置
QT针对HTML语句做过简化,最终

te.setText("<img src=D:/qrc/shi.jpg width=300 hegith=300>");

toHtml:将文本编辑器中的数据,转换成html语句

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);

    QWidget window;
    QVBoxLayout *layout = new QVBoxLayout(&window);
    // 创建 QTextEdit
    QTextEdit *textEdit = new QTextEdit;
    layout->addWidget(textEdit);
    // 创建按钮
    QPushButton *button = new QPushButton("Insert Image");
    layout->addWidget(button);

    // 连接按钮点击信号到槽函数
    QObject::connect(button, &QPushButton::clicked, [textEdit]() {
        // 插入图片
        QTextCursor cursor = textEdit->textCursor();
        QImage image(":/path/to/image.png");  // 图片路径
        textEdit->document()->addResource(QTextDocument::ImageResource, QUrl("image"), image);
        cursor.insertImage("image");
    });

    window.show();
    return app.exec();
}

 

QPushButton

普通按钮

设置按钮文字
QPushButton btn
btn.setText("文字")

相关文章:

  • yolov8,yolo11,yolo12 服务器训练到部署全流程 笔记
  • 鸿蒙ArkTs开发,后台触发数据变化后更新页面 UI事件
  • 【折线图 Line】——1
  • 影刀RPA中级案例总结
  • 运维Apache面试题及参考答案
  • 17 款电脑压缩工具详解及下载指南(2025 年最新版)
  • Express + MongoDB 实现文件上传
  • ‌Debian 包版本号比较规则详解
  • c++中初始化列表的使用
  • 攻防世界WEB(新手模式)18-easyphp
  • Vue打包(webpack)缓存
  • DCDC60V电源ic,支持48V降压5V、36V降压5V,SL3037B替换TPS54362
  • final 关键字在不同上下文中的用法及其名称
  • Spring Data JPA 中的分页实现:从 BasePage 到 Pageable
  • Dify使用和入门
  • 浮点数在内存中的存储
  • 使用Spring Data Redis操作Redis
  • 学习threejs,使用ShaderMaterial自定义着色器材质
  • wps角标快速生成
  • 2025全开源Java多语言跨境电商外贸商城/Tk/FB内嵌商城I商家入驻I批量下单I完美运行
  • 网站 服务器 域名/优化方案电子版
  • 网站的在线客服系统/资源网站快速优化排名
  • 最新获取网站访客qq接口/中国十大电商培训机构
  • 建立个人网站代码/自媒体平台注册官网下载
  • 做网站一天能赚多少钱/seo博客写作
  • 网站推广网站关键词排名怎么做/网站创建流程