crawling qtableview ctrl-c ctrl-v
git-svn-id: svn://192.168.0.12/source@136 8346c931-da38-4b9b-9d4c-e48b93cbd075
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
#include "stable.h"
|
#include "stable.h"
|
||||||
|
#include <QDebug>
|
||||||
STable::STable()
|
STable::STable()
|
||||||
{
|
{
|
||||||
|
|
||||||
@@ -10,3 +10,32 @@ STable::~STable()
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void STable::keyPressEvent(QKeyEvent* event)
|
||||||
|
{
|
||||||
|
// If Ctrl-C typed
|
||||||
|
if (event->key() == Qt::Key_C && (event->modifiers() & Qt::ControlModifier))
|
||||||
|
Copy();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void STable::Copy()
|
||||||
|
{
|
||||||
|
QModelIndexList cells = selectedIndexes();
|
||||||
|
//qSort(cells);
|
||||||
|
QString text;
|
||||||
|
int currentRow = 0;
|
||||||
|
foreach (const QModelIndex& cell, cells)
|
||||||
|
{
|
||||||
|
if (text.length() == 0)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
else if (cell.row() != currentRow)
|
||||||
|
text += '\n';
|
||||||
|
else
|
||||||
|
text += '\t';
|
||||||
|
|
||||||
|
currentRow = cell.row();
|
||||||
|
text += cell.data().toString();
|
||||||
|
}
|
||||||
|
QApplication::clipboard()->setText(text);
|
||||||
|
}
|
||||||
|
|||||||
@@ -2,13 +2,20 @@
|
|||||||
#define STABLE_H
|
#define STABLE_H
|
||||||
|
|
||||||
#include <QTableView>
|
#include <QTableView>
|
||||||
|
#include <QKeyEvent>
|
||||||
|
#include <QApplication>
|
||||||
|
#include <QClipboard>
|
||||||
|
|
||||||
class STable : public QTableView
|
class STable : public QTableView
|
||||||
{
|
{
|
||||||
|
//Q_OBJECT
|
||||||
public:
|
public:
|
||||||
STable();
|
STable();
|
||||||
~STable();
|
~STable();
|
||||||
|
|
||||||
|
public:
|
||||||
|
void keyPressEvent(QKeyEvent* event);
|
||||||
|
void Copy();
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // STABLE_H
|
#endif // STABLE_H
|
||||||
|
|||||||
@@ -12,6 +12,7 @@
|
|||||||
#include <QFile>
|
#include <QFile>
|
||||||
#include <QStack>
|
#include <QStack>
|
||||||
#include <QFileDialog>
|
#include <QFileDialog>
|
||||||
|
#include "stable.h"
|
||||||
|
|
||||||
Widget::Widget(QWidget *parent)
|
Widget::Widget(QWidget *parent)
|
||||||
: QWidget(parent)
|
: QWidget(parent)
|
||||||
@@ -278,7 +279,8 @@ QGroupBox *Widget::setCrawlingWidgets()
|
|||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
m_ptableCrawling = new QTableView;
|
//m_ptableCrawling = new QTableView;
|
||||||
|
m_ptableCrawling = new STable;
|
||||||
m_ptableCrawling->setModel(m_pmodelCrawling);
|
m_ptableCrawling->setModel(m_pmodelCrawling);
|
||||||
m_ptableCrawling->setSelectionBehavior(QAbstractItemView::SelectRows);
|
m_ptableCrawling->setSelectionBehavior(QAbstractItemView::SelectRows);
|
||||||
m_ptableCrawling->setSelectionMode(QAbstractItemView::ContiguousSelection);
|
m_ptableCrawling->setSelectionMode(QAbstractItemView::ContiguousSelection);
|
||||||
|
|||||||
Reference in New Issue
Block a user