Qt操作小技巧一
1、将QstringList列表中的所有字符串连接成一个字符串,每个元素由给定的分隔符分隔,可以使用join函数,例:
QstringList list;
list << “a” << “b” << “c”;
list.join(“,”); // “a,b,c”
2、改变一个信号和槽的连接响应类型
- 可以在连接信号槽的时候对connect的第五个参数进行复制,
enum ConnectionType {
AutoConnection, // 自动连接,根据当前执行所在线程决定
DirectConnection, // 直接连接(同步执行,在同一线程时)
QueuedConnection, // 队列连接(异步执行,在接收者的线程执行)
BlockingQueuedConnection, // 阻塞连接(信号线程阻塞直到槽函数返回,注意如果接收者驻留在信号的同一线程则不能使用此连接,会造成程序死锁)
UniqueConnection = 0x80 // 组合连接(如果连接已经存在,connect将连接失败)
};
- 通过元对象类(QMetaObject)的invoke函数对需要修改的对象进行操作,例:
int methodIndex = pushButton->metaObject()->indexOfMethod("animateClick()");
QMetaMethod method = metaObject->method(methodIndex);
method.invoke(pushButton, Qt::QueuedConnection);
在对象上调用此方法,如果成员可以被调用则返回t