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

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("文字")


http://www.kler.cn/a/568605.html

相关文章:

  • app项目管理, 应该以UI为导向还是以研发为导向
  • 细说 Java 集合之 Map
  • 千峰React:组件与逻辑封装(上)
  • 2025国家护网HVV高频面试题总结来了01(题目+回答)
  • Django模型管理器/QuerySet 常见的方法
  • Python基于交互注意力的深度时空网络融合多源信息的剩余寿命预测方法
  • DeepSeek-R1私有化部署——使用Python实现DeepSeek-R1-Distill-Qwen模型部署调用与流式输出
  • 青海高校迎新系统的实施与影响
  • Qwen2-Audio系列学习笔记
  • TrustRAG:通过配置化模块化的检索增强生成(RAG)框架提高生成结果的可靠性和可追溯性
  • HIVE数据加载
  • LeetCode 202. 快乐数 java题解
  • uniapp 中引入使用uView UI
  • 前端文件分片上传深度解析:从原理到实践
  • 大模型微调入门(Transformers + Pytorch)
  • YOLOv8目标检测推理流程及C++代码
  • 5分钟看懂Deepseek开源周之六:Deepseek-V3/R1推理系统设计----揭开深度求索模型系统设计和运营成本之谜
  • 河南理工XCPC萌新选拔赛
  • 蓝桥杯备赛-前缀和-可获得的最小取值
  • fiscoBcos中手动部署webase-front