Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Qt и кроссплатформенное программирование С/С++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.10.2011, 00:59   #1
Injector
 
Регистрация: 22.08.2011
Сообщений: 5
По умолчанию [Qt] Сигнал от элемента-виджета таблицы

Ситуация: есть таблица, задаю создаю динамически в ячейке виджет, допустим кнопку.
Вопрос: как перехватить сигнал clicked() от такой кнопки?
Примерный код:

Код:
QPushButton* btn = new QPushButton("button",ui->TableWidget);
ui->TableWidget->setCellWidget(row,col,btn);
объект btn создается в одной из функций класса, таблица существует "всегда". То есть в определенных ячейках мне надо создать кнопки и перехватывать их сигналы.

сигналы itemClicked() и cellClicked() не срабатывают при клике на кнопку.

Последний раз редактировалось Injector; 26.10.2011 в 01:02. Причина: дополнение
Injector вне форума Ответить с цитированием
Старый 26.10.2011, 02:11   #2
xwicked
Участник клуба
 
Аватар для xwicked
 
Регистрация: 21.03.2010
Сообщений: 1,508
По умолчанию

Вы коннекты на кнопки производите? Может в них ошибка?

ЗЫ: У Вас физически уже не ячейка, а кнопка.
Google - лучший помощник программиста.
---
моя лаборатория | мой FaceBook
xwicked вне форума Ответить с цитированием
Старый 26.10.2011, 09:28   #3
Injector
 
Регистрация: 22.08.2011
Сообщений: 5
По умолчанию

Соединил. Проблема в том, что функция, в которой создается кнопка, вызывается несколько раз. Как мне различить эти кнопки? Связываю сигнал clicked() в той же функции, чтобы не терять указатель, так как кнопка создается динамически
Injector вне форума Ответить с цитированием
Старый 26.10.2011, 17:29   #4
xwicked
Участник клуба
 
Аватар для xwicked
 
Регистрация: 21.03.2010
Сообщений: 1,508
Лампочка

.h:
Код:
       TableWidgetCrossword* Table[255];
.cpp:
Код:
           TableCrossword = new TableWidgetCrossword;
...
    //Соединение, созданных таблиц со слотом изменения цвета при щелчке
    for(int i = 0; i < TableCount; i++)
        connect(Table[i], SIGNAL(CurrentTable()), SLOT(slotCurrentTable()));
TableWidgetCrossword - это унаследованный объект от QTableWidget.

Вообщем создавайте массив, тогда все ссылки будут под рукой.
Google - лучший помощник программиста.
---
моя лаборатория | мой FaceBook
xwicked вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Доведение до ума виджета Unique HTML и CSS 2 25.04.2011 08:39
Си -Расположить элементы в порядке возрастания от первого нулевого элемента до отрицательного элемента Freia Помощь студентам 17 13.12.2009 15:41
не могу найти ошибку в бинарном поиске элемента для таблицы Petruha-nsk Общие вопросы C/C++ 0 30.05.2009 08:26
Звуковой сигнал Eugenio Microsoft Office Excel 9 18.03.2009 17:24
сигнал WindowsBeep ben95 Общие вопросы Delphi 8 13.05.2008 19:12