sticcino
3rd July 2008, 01:12
Hi,
I don't get it.... I have a QtableView in a dlg form, connected to a sql datasource recordset. the data displays fine, no problems. The problem is that i cannot drag a row from this view and drop it onto its parent window.
The table view is getting every signal except for dragMoveEvent
I've declared everything correctly, but still nothing. NOW.... if i change from QTableView to QTableWidget, dragging works!!, but i can then no longer use myView->setModel(mysqlset).
in .h
class QDragMoveEvent;
class QDragLeaveEvent;
class QDrag;
....
protected:
QDrag *getDragObject(QMouseEvent *event);
void dragEnterEvent(QDragEnterEvent *event);
void dropEvent(QDropEvent *event);
void dragMoveEvent(QDragMoveEvent * event);
in .cpp
// initialization
DlgLibraryEditor::DlgLibraryEditor(QWidget * parent, QSqlDatabase m_pPrimarydb) : QDialog(parent), Ui::DlgLibraryEditor()
{
setupUi(this);
//setup properties for table
m_pMusicTableView->setSelectionBehavior(QAbstractItemView::SelectRows );
m_pMusicTableView->setSelectionMode(QAbstractItemView::ExtendedSelect ion);
m_pMusicTableView->viewport()->setAcceptDrops(false);
m_pMusicTableView->viewport()->setAttribute(Qt::WA_StaticContents);
//Drag and drop setup
m_pMusicTableView->setDragEnabled(true);
m_pMusicTableView->setDragDropMode(QAbstractItemView::DragOnly);
m_pMusicTableView->setDropIndicatorShown(true);
m_pMusicTableView->setAcceptDrops(true);
...
}
void DlgLibraryEditor::dragEnterEvent(QDragEnterEvent * event)
{
event->ignore();
}
void DlgLibraryEditor::dragMoveEvent(QDragMoveEvent * event)
{
event->ignore();
}
void DlgLibraryEditor::dropEvent(QDropEvent * event)
{
event->ignore();
}
what gives ???
Thanks,
Johnny
I don't get it.... I have a QtableView in a dlg form, connected to a sql datasource recordset. the data displays fine, no problems. The problem is that i cannot drag a row from this view and drop it onto its parent window.
The table view is getting every signal except for dragMoveEvent
I've declared everything correctly, but still nothing. NOW.... if i change from QTableView to QTableWidget, dragging works!!, but i can then no longer use myView->setModel(mysqlset).
in .h
class QDragMoveEvent;
class QDragLeaveEvent;
class QDrag;
....
protected:
QDrag *getDragObject(QMouseEvent *event);
void dragEnterEvent(QDragEnterEvent *event);
void dropEvent(QDropEvent *event);
void dragMoveEvent(QDragMoveEvent * event);
in .cpp
// initialization
DlgLibraryEditor::DlgLibraryEditor(QWidget * parent, QSqlDatabase m_pPrimarydb) : QDialog(parent), Ui::DlgLibraryEditor()
{
setupUi(this);
//setup properties for table
m_pMusicTableView->setSelectionBehavior(QAbstractItemView::SelectRows );
m_pMusicTableView->setSelectionMode(QAbstractItemView::ExtendedSelect ion);
m_pMusicTableView->viewport()->setAcceptDrops(false);
m_pMusicTableView->viewport()->setAttribute(Qt::WA_StaticContents);
//Drag and drop setup
m_pMusicTableView->setDragEnabled(true);
m_pMusicTableView->setDragDropMode(QAbstractItemView::DragOnly);
m_pMusicTableView->setDropIndicatorShown(true);
m_pMusicTableView->setAcceptDrops(true);
...
}
void DlgLibraryEditor::dragEnterEvent(QDragEnterEvent * event)
{
event->ignore();
}
void DlgLibraryEditor::dragMoveEvent(QDragMoveEvent * event)
{
event->ignore();
}
void DlgLibraryEditor::dropEvent(QDropEvent * event)
{
event->ignore();
}
what gives ???
Thanks,
Johnny