Russian Qt Forum

Qt => Вопросы новичков => Тема начата: CJ1 от Июнь 17, 2012, 18:27



Название: Как отловить нажатие кнопки в QTableWidget???
Отправлено: CJ1 от Июнь 17, 2012, 18:27
Как отловить нажатие кнопки в QTableWidget???


Название: Re: Как отловить нажатие кнопки в QTableWidget???
Отправлено: kambala от Июнь 17, 2012, 18:53
унаследоваться и переопределить keyPressEvent() или повесить на объект eventFilter. уже кучу раз спрашивали на форуме, да и в документации это описано.


Название: Re: Как отловить нажатие кнопки в QTableWidget???
Отправлено: CJ1 от Июнь 18, 2012, 07:32
понятно, спасибо


Название: Re: Как отловить нажатие кнопки в QTableWidget???
Отправлено: cooker от Июль 04, 2013, 14:34
И тем ни менее... Интересует тот же вопрос.Попытался найти похожую тему - не нашел. Задача проста - чтобы при нажатии на любую ячейку(кроме заголовков), вызывалась одна и та же функция.

QTableWidget m_table = new QTableWidget(0,6);
QTableWidgetItem *item1 = new QTableWidgetItem();
m_table->setItem(0,0,item1);
connect(m_table,SLOT(itemClicked(item1)), this, SLOT(test()));


Не работает.


Название: Re: Как отловить нажатие кнопки в QTableWidget???
Отправлено: kambala от Июль 04, 2013, 18:45
внимательно изучи сигналы-слоты еще раз.

во-первых, itemClicked — это сигнал, а не слот, а во-вторых, параметрами сигнала/слота являются типы объектов, а не сами объекты. в твоем случае правильно будет
Код
C++ (Qt)
connect(m_table, SIGNAL(itemClicked(QTableWidgetItem *)), this, SLOT(test()));
а в идеале надо и твоему слоту передавать параметр QTableWidgetItem *, чтобы знать на какой айтем кликнули:
Код
C++ (Qt)
// .h
class YourClass : ...
{
...
private slots:
   void test(QTableWidgetItem *item);
...
}
 
// .cpp
...
connect(m_table, SIGNAL(itemClicked(QTableWidgetItem *)), this, SLOT(test(QTableWidgetItem *)));
...
void YourClass::test(QTableWidgetItem *item)
{
// реализация слота
}

P.S. твой вопрос вообще не имеет никакого отношения к данной теме.


Название: Re: Как отловить нажатие кнопки в QTableWidget???
Отправлено: cooker от Июль 07, 2013, 13:44
kambala , огромное спасибо. Работает.

 QT никогда не учил и с ним не работал,а начальник срочно требует от меня завершить работу одной студентки,ушедшей в декрет с незаконченным проектом(не успела девочка дописать). Времени на глубокое изучения QT нет,вот и стараюсь в сжатые сроки хоть как-то довести проект до ума.Сайт полезный,занес его в favorites. В ближайшее время буду тут появляться с "тупыми" вопросами.