Qt 之 QQ系统表情(二)

简述

继上篇Qt 之 QQ系统表情(一) 中我们实现了简单的表情框,但是还遗留了一个问题,虽然我们能够显示动态的表情,但是总不能让表情框中的每一个表情都动态显示吧(见下图一),这样的效果显然不是我们要的,真正要实现的是当鼠标悬浮在某个表情上才让他动态显示,其他的都显示为静态样式(见图二)。好了,话不多说,代码走起!

图一
图一


图二
图二

代码之路

为了实现这个效果呢,我也是用了很多方法,最后发现了两种方法来达到这个效果。
先看一下QTableWidget的信号:

这里写图片描述

信号到是不少,但是有帮助的信号也就这两信号:

void cellEntered(int row, int column)
This signal is emitted when the mouse cursor enters a cell. The cell is specified by row and column.
This signal i

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
Qt中实现QQ聊天系统的数据库存储可以通过以下步骤完成: 1. 导入Qt的Sql模块。首先,在Qt项目中使用Sql模块,需要在.pro文件中添加`QT += sql`语句。 2. 创建数据库连接。可以使用`QSqlDatabase`类来创建一个数据库连接,需要提供数据库的名称、主机名、用户名和密码等信息。例如: ```cpp QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL"); // 根据实际需要选择数据库驱动 db.setHostName("localhost"); // 主机名 db.setDatabaseName("mydatabase"); // 数据库名称 db.setUserName("root"); // 用户名 db.setPassword("password"); // 密码 if (db.open()) { qDebug() << "数据库连接成功"; } else { qDebug() << "数据库连接失败"; } ``` 3. 创建表格。使用`QSqlQuery`类执行SQL语句来创建表格。例如: ```cpp QSqlQuery query; query.exec("CREATE TABLE IF NOT EXISTS chat (id INT PRIMARY KEY AUTO_INCREMENT, user_id INT, message TEXT)"); if (query.isActive()) { qDebug() << "表格创建成功"; } else { qDebug() << "表格创建失败"; } ``` 4. 插入数据。使用`QSqlQuery`类执行SQL语句来插入数据。例如: ```cpp QSqlQuery query; query.prepare("INSERT INTO chat (user_id, message) VALUES (:user_id, :message)"); query.bindValue(":user_id", 1); // 绑定参数 query.bindValue(":message", "Hello World"); // 绑定参数 if (query.exec()) { qDebug() << "数据插入成功"; } else { qDebug() << "数据插入失败"; } ``` 5. 查询数据。使用`QSqlQuery`类执行SQL语句来查询数据。例如: ```cpp QSqlQuery query; query.exec("SELECT user_id, message FROM chat"); while (query.next()) { int user_id = query.value(0).toInt(); QString message = query.value(1).toString(); qDebug() << "User ID:" << user_id << ", Message:" << message; } ``` 通过以上步骤,可以在Qt中实现QQ聊天系统的数据库存储。可以根据实际需要使用不同的数据库驱动和表结构进行操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值