数据拖放、剪贴与进程间通信技术详解
1. 数据拖放基础
1.1 拖放事件处理
当鼠标拖动进入某个小部件的边界时, dragEnterEvent() 方法会被调用。此方法的目的是判断该小部件是否愿意接受拖放的数据。例如:
void dragEnterEvent(QDragEnterEvent *e) {
e->accept(QTextDrag::canDecode(e) ||
QImageDrag::canDecode(e));
}
这里通过调用 QTextDrag 和 QImageDrag 的 canDecode() 方法来判断是否能解码拖动的数据,若能则接受,否则拒绝。
只有在特定的事件序列发生后, dropEvent() 方法才会被调用。即鼠标处于拖放操作中,且进入了该小部件,并且 dragEnterEvent() 方法以 TRUE 参数调用了事件的 accept() 方法。示例代码如下:
void dropEvent(QDropEvent *e) {
QString text;
QImage image;
if(QTextDrag::decode(e,text)) {
超级会员免费看
订阅专栏 解锁全文
1145

被折叠的 条评论
为什么被折叠?



