QT
QT Programming - QTextEdit 에 Drag and Drop 으로 파일 넣기
구리z
2011. 8. 31. 09:30
메신저나 기타 위젯들을 보면 파일을 끌어다놓고 실행하거나 파일전송을 한다.
QTextEdit 도 drag & drop 을 지원하긴 하는데 !! 파일은 드롭 불가표시가 뜨고만다.
이 부분을 해결하려면 Qt 에 있는 수 많은 예제들에서 찾기 힘든데~
canInsertFromMimeData를 상속받아서 원하는 필터를 추가해주면된다.
QTextEdit 도 drag & drop 을 지원하긴 하는데 !! 파일은 드롭 불가표시가 뜨고만다.
이 부분을 해결하려면 Qt 에 있는 수 많은 예제들에서 찾기 힘든데~
canInsertFromMimeData를 상속받아서 원하는 필터를 추가해주면된다.
TextEdit::TextEdit(QWidget* parent) : QTextEdit(parent)
{
setAcceptDrops(true);
}
bool TextEdit::canInsertFromMimeData(const QMimeData* source) const
{
return source->hasUrls() || QTextEdit::canInsertFromMimeData(source);
}
void TextEdit::dragEnterEvent(QDragEnterEvent* event){
event->acceptProposedAction();
}
void TextEdit::dragMoveEvent(QDragEnterEvent* event){
event->acceptProposedAction();
}
void TextEdit::dropEvent(QDropEvent* event){
const QMimeData* mimeData = event->mimeData();
if (mimeData->hasUrls())
{
QList<QUrl> paths = mimeData->urls();
foreach(QUrl path, paths)
{
qDebug() << path.toLocalFile();
}
}
}