#include "mainwindow.h"
MainWindow::MainWindow()
{
table = new tableWidget(this);
table->setColumnCount(14);
table->setRowCount(50);
table->setSelectionBehavior(QAbstractItemView::SelectRows);
setCentralWidget(table);
connect(table,SIGNAL(cellClicked(int,int)),this,SLOT(on_cellClicked(int,int)));
setMinimumSize(800,650);
}
void MainWindow::on_cellClicked(int row,int)
{
qDebug()<<row;
qDebug()<<"From MainWindow class"<<table->currentRow();
}
void MainWindow::on_currentRowIndexChanged(int row)
{
qDebug()<<"From currentRowIndexChanged func"<<table->currentRow();
}
void tableWidget::keyPressEvent(QKeyEvent *event)
{
MainWindow my;
qDebug()<<my.table->rowCount();
qDebug()<<"From tableWidget class"<<my.table->currentRow();
my.table->setRowCount(600);
my.on_currentRowIndexChanged(1);
QTableWidget::keyPressEvent(event);
}
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QtGui>
#include <QtDebug>
class tableWidget : public QTableWidget
{
Q_OBJECT
public:
tableWidget(QWidget* parent = 0) {}
void keyPressEvent(QKeyEvent *event);
};
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow();
tableWidget *table;
public slots:
void on_cellClicked(int row,int col);
void on_currentRowIndexChanged(int row);
};
#endif // MAINWINDOW_H
Вывод консоли:
При клике:
6
From MainWindow class 6
При нажатии клавиши:
50
From tableWidget class -1
From currentRowIndexChanged func -1
Задача: получить номер текущей выделенной строки и передать ее в on_cellClicked
Сообщение отредактировал RazrFalcon - 11.3.2011, 20:52