qt - 从 QListWidget 拖放到 QLineEdit

标签 qt drag-and-drop qlineedit

我有一个带有简单文本行的 QListWidget。我想对其进行设置,以便用户可以将此数据拖放到某些 QLineEdit 对象中。

我已经为这两种类型打开了拖放功能,但它不允许我从 QListWidget 拖放到 QLineEdit。但是,它确实允许我从一个 QLineEdit 拖动到另一个 QLineEdit。

到目前为止我还没有重新实现任何方法。我所做的就是在编辑 View 中打开拖放功能。

如何启用从 QListWidget 到 QLineEdit 的拖放?我需要重新实现哪些方法?

谢谢

最佳答案

我明白了。

仅供引用:

您需要子类化QLineEdit并重新实现dragEnterEvent和dropEvent。

void MyLineEdit::dragEnterEvent(QDragEnterEvent *e){
    if(e->mimeData()->hasFormat("application/x-qabstractitemmodeldatalist")){
        e->acceptProposedAction();
    }
}

void MyLineEdit::dropEvent(QDropEvent *e){
    QByteArray encoded = e->mimeData()->data("application/x-qabstractitemmodeldatalist");
    QDataStream strm(&encoded, QIODevice::ReadOnly);
    while(!strm.atEnd()){
        int row, col;
        QMap<int,  QVariant> data;
        strm >> row >> col >> data;
        this->setText(data[0].toString());
    }
}

关于qt - 从 QListWidget 拖放到 QLineEdit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17714319/

相关文章:

python - PyQt QLineEdit 与 QValidator

c++ - Qt/QML : How do I "switch to" or "open" another QML file without restarting my app?

qt - 覆盖可检查的 QGroupBox 切换行为

python - 使用一个 QPushButton 和两个 QLineEdit,具体取决于最后一个焦点

WPF 4 多点触控拖放

ios - 如何从 iOS 中的水平可滚动项目列表中拖动,并将其拖放到下方的垂直列表中,该列表最多可以接受 4 个项目

c++ - 使用 QLineEdit 获取密码

Qt QSS 教程

c++ - 以编程方式确保随机调色板充满活力并且与背景截然不同

java - 将多个 BufferedImages 添加到组件以进行拖动