gpt4 book ai didi

qt - 从 QListWidget 拖放到 QLineEdit

转载 作者:行者123 更新时间:2023-12-02 21:56:22 28 4
gpt4 key购买 nike

我有一个带有简单文本行的 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/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com