问题描述
我是 qt 的初学者,我做我的第一个项目。我遇到了问题。
我将一些编辑行放在滚动区域中。所有这些编辑文本都应该包含文件路径。为了使这个应用程序更加用户友好,我决定实现拖放。通过这种方式,用户只需从他们的资源管理器中取出一个文件并将其拖放到行编辑中,该行将填充文件的路径。
我的问题是:当我尝试放下时,鼠标经过的所有编辑行都将填充文件的路径。如果我通过 else if 更改 if 语句,它是我的鼠标经过的第一个编辑行,它将被填充,而不是我的鼠标在下降时所在的那个。
这里是代码:
void MainWindow::dragEnterEvent(QDragEnterEvent *e)
{
e->accept()
}
void MainWindow::dropEvent(QDropEvent *e)
{
foreach (const QUrl &url,e->mimeData()->urls()) {
QString fileName = StringManagement::getDir(url.toLocalFile());
if(ui->lineEdit->underMouse())
ui->lineEdit->setText(fileName);
if(ui->lineEdit_2->underMouse())
ui->lineEdit_2->setText(fileName);
if(ui->lineEdit_5->underMouse())
ui->lineEdit_5->setText(fileName);
if(ui->lineEdit_9->underMouse())
ui->lineEdit_9->setText(fileName);
if(ui->lineEdit_10->underMouse())
ui->lineEdit_10->setText(fileName);
if(ui->lineEdit_11->underMouse())
ui->lineEdit_11->setText(fileName);
}
}
另外一点我不太明白的是:
<pre><code>void MainWindow::dragEnterEvent(QDragEnterEvent *e)
{
qInfo() << "enter";
e->accept();
}
void MainWindow::dragLeaveEvent(QDragLeaveEvent *e){
qInfo() << "leave";
e->accept();
}
当我将鼠标放在编辑行上并停留在它上面时,我将在控制台中看到两条消息...我希望在鼠标进入时看到第一个消息,当鼠标离开时看到第二个消息.
预先感谢您的帮助。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)