Qt网络编程

这篇博客详细介绍了Qt的网络编程,包括TCP和UDP通信,以及多线程编程。内容涵盖Qt的基本概念、框架、控件、事件处理、绘图设备和文件操作,特别强调了信号和槽的机制,以及如何进行数据库编程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

请添加图片描述

第一天

一、Qt的介绍

在这里插入图片描述
在这里插入图片描述
捷讯
在这里插入图片描述

在这里插入图片描述

二、Qt的框架

QMainWindow PC端用
Qwidget 图形界面的基类(窗口的基类)
QDialog 对话框在这里插入图片描述
Ctrl+R

三、项目文件

#include "mywidget.h"

// QApplication应用程序类
// Qt头文件没有.h
// 头文件和类名一样,前面两个字母大写
#include <QApplication>

int main(int argc, char *argv[])
{
    // 有且只有一个应用程序类的对象
    QApplication a(argc, argv);
    // Mywdiget继承与QWidget,QWideget是一个窗口基类
    // 所以MyWidget也是窗口类
    // w就是一个窗口
    MyWidget w;
    // 窗口创建默认是隐藏,需要人为显示
    w.show();
    // a是应用程序对象 a.exec()会让程序一直执行,等待用户操作
    return a.exec();
}

在这里插入图片描述
在这里插入图片描述

四、第一个Qt程序(hello qt)

五、父窗口和子窗口的区别(控件,部件,构件)

六、信号和槽

相当于是按按钮,触发事件,也就是信号
Qt对象之间通信的接口

七、坐标系统

八、内存回收机制(new delete)

系统会有一个对象树 回收的时候从底层进行回收 自动回收
1)、指定父对象后
子对象如果是动态分配空间的new,不需要手动释放delete,系统会自动释放。
2)、直接或者间接继承与Qobject

九、带菜单栏的窗口

十、对话框

模态对话框
非模态对话框

第二天

在这里插入图片描述

一、 QtCreator设计器的使用

二、常用控件

QLabel
在这里插入图片描述

三、布局

分裂水平器

四、自定义控件

五、常用事件的处理

事件
先一直在那个a.exec();
然后又事件过来,打断,过去进行处理,处理完又返回现场,相当于一个多重中断
在这里插入图片描述
在这里插入图片描述

先要创建过滤器
然后再按照过滤器
过滤器的创建还是有点问题
在这里插入图片描述
3、容器类
QStackWidget
QWidget
QFrame
4、编辑类
QComboBox
QLineEdit
QTextEdit
5、显示类
QLabel
QLcdNumber
QProgressBar
2)、布局
水平、网格
布局属性
大小策略 固定
最小大小 、最大大小
弹簧
3)、自定义控件(提升)
在这里插入图片描述
4)、常用事件处理
在这里插入图片描述
重写事件就可以啦
在这里插入图片描述

第三天

一、Qpainter绘图

QPainter(画家)----->QPainEngine(中间桥梁 接口 引擎)---->QPaintDevice(绘图设备)

二、绘图设备(QPixmap,QImage,QBitmap,Qpicture)

QBitmap(黑白) QPixmap(彩色)
在这里插入图片描述

三、文件操作(QFile,QFileInfo,QDataStream,QTextStream,QBuffer)

在这里插入图片描述
在这里插入图片描述

void Widget::on_pushButton_clicked()
{
    QString path=QFileDialog::getOpenFileName(
     this,"open","../");
    if(false == path.isEmpty()){
        QFile file;
        file.setFileName(path);
        bool isOk=file.open(QIODevice::ReadOnly);
        if(true == isOk){
            QTextStream stream(&file);
            // 指定编码
            stream.setCodec("UTF-8");
            QString str=stream.readAll();
            ui->textEdit->setText(str);
        }
    }

}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

第四天

一、TCP编程

在这里插入图片描述在这里插入图片描述
在这里插入图片描述

二、UDP编程

在这里插入图片描述
UDP可以组播
在这里插入图片描述
在这里插入图片描述

三、UDP传输文件

在这里插入图片描述
第0段取出来,只取第0段

四、多线程编程(多任务)

第五天

一、数据库编程

在这里插入图片描述

//    query.exec("select * from admin");
    // 插入
    //query.exec("insert into admin(account,password) values('cp','123456')");
    // 批量插入 odbc的风格 预处理语句
    // ?相当于占位符
    query.prepare("insert into admin(account,password) values(?,?)");
    // 给字段设置内容list
    QVariantList accountList;
    accountList << "小陈" <<"小王"<<"小江";
    QVariantList passwordList;
    passwordList <<"123" <<"123" <<"123";

    // 给字段绑定相应的值 按照顺序进行绑定
    query.addBindValue(accountList);
    query.addBindValue(passwordList);
    // 执行预处理命令
    query.execBatch();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CPanMirai

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值