鼠标拖放文件到指定控件
开启MainWindow的拖放后,鼠标按住选中文件,可以把文件路径复制到我们需要显示的地方。但是当有多个需要显示的控件的时候,需要通过鼠标确定拖放到哪一个。
一直在寻找鼠标选中控件的方法,找到一个。
underMouse()
可以判断当前控件是否被鼠标选中。
void MainWindow::dropEvent(QDropEvent *e)
{
//获取文件路径 (QString)
QList<QUrl> urls = e->mimeData()->urls();
if (urls.isEmpty()) return;
QString qStr = urls.first().toLocalFile();
//转为char*
QByteArray qByteArrary = qStr.toLatin1();
char* filePath = qByteArrary.data();
qInfo() << "select firmware file: " << filePath;
if (ui->lineEdit_fw_path_2->underMouse())
{
ui->lineEdit_fw_path_2->setText(filePath);
}
else if (ui->lineEdit_fw_path_3->underMouse())
{
ui->lineEdit_fw_path_3->setText(filePath);
}
else {
qInfo() << "鼠标没有指向 lineEdit";
}
}