我对 Qt 有一些问题。我有一个带有信号的类,其参数是字符串和一个插槽。我将信号连接到类构造函数中的插槽。另外,我正在类构造函数中创建一个线程。线程从服务器读取数据并更新 UI(发出 UpdateMe 信号)。这就是我将信号连接到插槽的方式:
QObject::connect(this, SIGNAL(UpdateMe(string, string)), this, SLOT(ModifyUI(string, string)));
我有一个带有一些文件名的 QTreeWidget。当我重命名文件时,我通知服务器,服务器通知其他客户端。当我连接单个客户端时没有问题,但是当我连接多个客户端时出现问题:当我从第二个客户端通知服务器时(当我写入套接字时)出现以下错误:
QObject::connect: Cannot queue arguments of type 'QVector<int>'
我尝试使用 qRegisterMetaType 注册 QVector,但是当我修改 QTreeWidgetItem(例如,当我重命名项目时)时也会发出一个信号,并且当我想更改项目的文本时需要断开此信号。如果我注册 QVector,我无法断开此信号并发出信号。