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

Qt知识点总结

将枚举类型转换为字符串

  • 这里使用的在网络编程中,获取socket状态并显示的时候,遇到的一个问题
#include <QMetaEnum>// 将枚举类型转换为字符串
QMetaEnum metaEnum = QMetaEnum::fromType<QAbstractSocket::SocketState>();
const char *c_str = metaEnum.valueToKey(socketState);
QString str = QString(c_str);

使用事件过滤器实现,点击lineEdit,按下回车,调用btn的点击槽函数

// 首先为lineEdit安装事件过滤器
ui->lineEdit->installEventFilter(this);// 事件过滤器函数
bool MainWindow::eventFilter(QObject *obj, QEvent *event)
{// 判断当前对象是否是lineEdit,并且判断是否是键盘事件if (obj == ui->lineEdit && event->type() == QEvent::KeyPress){// 静态转换QKeyEvent *keyEvent = static_cast<QKeyEvent*>(event);// 判断是否是enter键,这里还有个key_Returnif (keyEvent->key() == Qt::Key_Enter || keyEvent->key() == Qt::Key_Return){// 调用点击槽函数ui->btnSendMsg->click();return true; // 拦截事件,不再传递给editMessage}}return QObject::eventFilter(obj, event);
}

设置插入到QplainTextEdit中的文字样式

void MainWindow::InsertPlantText(QString text, int fontSize, QColor fontColor, QColor backColor)
{// 先保存当前的字符格式QTextCharFormat originFmt = ui->plainTextEdit->currentCharFormat();// 设置新的字符格式QTextCharFormat fmt;// 设置字体大小fmt.setFontPointSize(fontSize);// 设置字体色fmt.setForeground(QBrush(fontColor));// 设置背景色fmt.setBackground(QBrush(backColor));// 设置文本框格式ui->plainTextEdit->mergeCurrentCharFormat(fmt);//文本框添加文本ui->plainTextEdit->appendPlainText(text);// 设置回之前的字符格式ui->plainTextEdit->setCurrentCharFormat(originFmt);
}

设置图标

  • 设置运行后,左上角和下面任务栏的图标
// 设置图标
this->setWindowIcon(QIcon(":/images/wx.ico"));  // "xxx"中填路径
  • 设置exe文件的图标
// 在xxx.pro中添加 - 注意这里要填wx.ico对于xxx.pro的相对路径
RC_ICONS += wx.ico  

网络编程

获取本机IP地址

QString getLocalIP()
{// 获取本机主机名QString hostName = QHostInfo::localHostName();// 根据主机名获取主机信息QHostInfo hostInfo = QHostInfo::fromName(hostName);// 通过主机信息获取主机地址列表QList<QHostAddress> addrList = hostInfo.addresses();// 定义一个字符串用于存放主机IPQString localIp = "";if(!addrList.isEmpty()){// 遍历addrListfor(int i = 0; i < addrList.count(); i++){QHostAddress addr = addrList.at(i);// 判断如果是IPV4地址,就加到localIp字符串中if(addr.protocol() == QAbstractSocket::IPv4Protocol){localIp += addr.toString() + " ";}}}return localIp;
}
http://www.lryc.cn/news/291657.html

相关文章:

  • 什么是系统工程(字幕)13
  • qt学习:Table widget控件
  • Android --- Content Provider是使用示例,通俗易懂
  • 02-opencv简单实例效果和基本介绍-上
  • 中科大计网学习记录笔记(一):Internet | 网络边缘
  • Shell脚本——免交互
  • 【数据分享】1929-2023年全球站点的逐月最高气温数据(Shp\Excel\无需转发)
  • CentOS gui 图形界面显示文字乱码
  • [Vue入门]Vue的使用:vue对象+data+el+插值表达式
  • Tomcat运维
  • 前端开发基于Qunee绘制网络拓扑图总结-02
  • 牛客——中位数图(连续子数组和二维前缀和)
  • Java:搭建eladmin复习mvn、springboot、vue等
  • JavaScript入门
  • Redis单机-主从集群-哨兵集群-分片集群 搭建教程
  • 湘潭大学-计算机网络-补考
  • SOME/IP SD 协议介绍(五)使用SOME/IP-SD宣布非SOME/IP协议的协议。
  • svn 安装路径
  • Skywalking trace UI页面中字段信息详解,包括端点、跨度类型和Peer
  • 【 USRP 相控阵】X波段相控阵开发平台用户指南
  • C++关键词auto详解
  • 【GPU驱动开发】- GPU架构流程
  • UE5在VisualStudio升级后产生C++无法编译的问题
  • 目标检测:1预备知识
  • 【Linux取经路】进程控制——进程等待
  • 虹科干货 | 如何使用nProbe Cento构建100 Gbit NetFlow 传感器
  • Web前端入门 - HTML JavaScript Vue
  • (Sping Xml方式整合第三方框架)学习Spring的第十天
  • 单片机驱动多个ds18b20
  • GitLab16.8配置webhooks、Jenkins2.4配置GitLab插件实现持续集成、配置宝塔面板实现持续部署(其三)