#include <QtGui>
{
public:
MyApp();
~MyApp();
};
{
table->setModel( model );
for( int r=0; r<2; r++ )
{
model->setItem(r, 0, item);
}
layout->addWidget(table);
setLayout(layout);
installEventFilter(this);
}
MyApp::~MyApp()
{
}
{
switch (event->key())
{
case Qt::Key_Return:
case Qt::Key_Enter:
qDebug() << "Enter";
break;
case Qt::Key_Escape:
qDebug() << "Escape";
break;
case Qt::Key_Insert:
qDebug() << "Insert";
break;
case Qt::Key_Delete:
qDebug() << "Delete";
break;
default:
qDebug() << "other" << event->key();
break;
}
}
{
if (event
->type
()==QEvent::KeyPress) {
QKeyEvent* pKeyEvent
=static_cast<QKeyEvent
*>
(event
);
if (pKeyEvent->key() == Qt::Key_Delete)
{
if (table->hasFocus())
{
qDebug() << "Event filter: Focus yes, Delete key pressed";
}
else
{
qDebug() << "Event filter: Focus NO, Delete key pressed";
}
return TRUE;
}
qDebug() << "Event filter: other key pressed";
}
return QWidget::eventFilter(object, event
);
}
int main( int argc, char **argv )
{
MyApp Test;
Test.show();
return app.exec();
}
#include <QtGui>
class MyApp : public QWidget
{
public:
MyApp();
~MyApp();
QStandardItemModel *model;
QTableView *table;
QVBoxLayout *layout;
void keyPressEvent(QKeyEvent *event);
bool eventFilter(QObject* object, QEvent* event);
};
MyApp::MyApp() : QWidget()
{
QStandardItem* item;
table = new(QTableView);
model = new QStandardItemModel(2, 1);
table->setModel( model );
for( int r=0; r<2; r++ )
{
item = new QStandardItem(QString("Test"));
model->setItem(r, 0, item);
}
table->setSelectionMode( QAbstractItemView::SingleSelection );
table->setEditTriggers(QAbstractItemView::NoEditTriggers);
layout = new QVBoxLayout;
layout->addWidget(table);
setLayout(layout);
installEventFilter(this);
}
MyApp::~MyApp()
{
}
void MyApp::keyPressEvent(QKeyEvent *event)
{
switch (event->key())
{
case Qt::Key_Return:
case Qt::Key_Enter:
qDebug() << "Enter";
break;
case Qt::Key_Escape:
qDebug() << "Escape";
break;
case Qt::Key_Insert:
qDebug() << "Insert";
break;
case Qt::Key_Delete:
qDebug() << "Delete";
break;
default:
qDebug() << "other" << event->key();
break;
}
}
bool MyApp::eventFilter(QObject* object, QEvent* event)
{
if (event->type()==QEvent::KeyPress)
{
QKeyEvent* pKeyEvent=static_cast<QKeyEvent*>(event);
if (pKeyEvent->key() == Qt::Key_Delete)
{
if (table->hasFocus())
{
qDebug() << "Event filter: Focus yes, Delete key pressed";
}
else
{
qDebug() << "Event filter: Focus NO, Delete key pressed";
}
return TRUE;
}
qDebug() << "Event filter: other key pressed";
}
return QWidget::eventFilter(object, event);
}
int main( int argc, char **argv )
{
QApplication app( argc, argv );
MyApp Test;
Test.show();
return app.exec();
}
To copy to clipboard, switch view to plain text mode
Bookmarks