一、拖放操作:
为了开始一个拖动,要创建一个QDrag对象,然后调用它的start()函数,在窗口部件的mousePressEvent()中开始
一个拖放操作,代码框架如下:
void MainWindow::mousePressEvent(QMouseEvent *event){
if(event->button() == Qt::LeftButton){
QDrag *drag = new QDrag(this);
QMimeData *mimeData = new QMimeData; //剪贴板的数据描述也用QMimeData
mimeData->setText(textEdit->toPlainText());
drag->setMimeData(mimeData);
Qt:DropAction dropAction = drag->start();//参数:Qt::CopyAction,MoveAction,LinkAction,IgnoreAction
......
}
}
为使目标窗口部件能够接受拖放操作,调用setAcceptDrops(true)。还要实现dragEnterEvent()、dragMoveEvent()和dropEvent():
void imageWidget::dragEnterEvent(QDragEnterEvent *event){ //拖动进入事件
if(event->mimeData()->hasUrls()){ //hasHtml(),
为了开始一个拖动,要创建一个QDrag对象,然后调用它的start()函数,在窗口部件的mousePressEvent()中开始
一个拖放操作,代码框架如下:
void MainWindow::mousePressEvent(QMouseEvent *event){
if(event->button() == Qt::LeftButton){
QDrag *drag = new QDrag(this);
QMimeData *mimeData = new QMimeData; //剪贴板的数据描述也用QMimeData
mimeData->setText(textEdit->toPlainText());
drag->setMimeData(mimeData);
Qt:DropAction dropAction = drag->start();//参数:Qt::CopyAction,MoveAction,LinkAction,IgnoreAction
......
}
}
为使目标窗口部件能够接受拖放操作,调用setAcceptDrops(true)。还要实现dragEnterEvent()、dragMoveEvent()和dropEvent():
void imageWidget::dragEnterEvent(QDragEnterEvent *event){ //拖动进入事件
if(event->mimeData()->hasUrls()){ //hasHtml(),