добавить ряд, столбец в таблицу |
Здравствуйте, гость ( Вход | Регистрация )
добавить ряд, столбец в таблицу |
kvak |
30.8.2010, 23:27
Сообщение
#21
|
Студент Группа: Участник Сообщений: 51 Регистрация: 5.5.2010 Пользователь №: 1690 Спасибо сказали: 1 раз(а) Репутация: 0 |
Цитата connect(TAB, SIGNAL(itemDoubleClicked(myitem)), this, SLOT(OPEN_PRODUCT())); Во первых вместо myitem должен стоять тип, во вторых в слоте от тоже должен быть указан. А вообще просто с помощью emit вызывай свой сигнал и все. Я как понял, что в аргумент сигнала нужно передать указатель на объект класса QTableWidgetItem. Но я не знаю, как создать сам объект типа QTableWidgetItem, чтобы он принадлежал определенной ячейке в таблице. По-другому не предсталяю как. Если не сложно, напишите сам код. |
|
|
kvak |
31.8.2010, 20:19
Сообщение
#22
|
Студент Группа: Участник Сообщений: 51 Регистрация: 5.5.2010 Пользователь №: 1690 Спасибо сказали: 1 раз(а) Репутация: 0 |
Все, понял как. Вот так сигнал высылается и слот открывается, когда кликаешь 2 раза по любой ячейке
connect(TAB, SIGNAL(itemDoubleClicked(QTableWidgetItem *)), SLOT(OPEN_PRODUCT())); Осталось только понять, можно ли сделать так, чтобы сигнал высылался, когда кликаешь по только по определенной колонке. |
|
|
molchanoviv |
1.9.2010, 10:28
Сообщение
#23
|
Старейший участник Группа: Сомодератор Сообщений: 597 Регистрация: 18.7.2008 Из: Саратов Пользователь №: 238 Спасибо сказали: 41 раз(а) Репутация: 5 |
connect(TAB, SIGNAL(itemDoubleClicked(QTableWidgetItem *)), SLOT(OPEN_PRODUCT())); Не совсем так. правильно писать connect(TAB, SIGNAL(itemDoubleClicked(QTableWidgetItem *)), SLOT(OPEN_PRODUCT(QTableWidgetItem *))); Осталось только понять, можно ли сделать так, чтобы сигнал высылался, когда кликаешь по только по определенной колонке. Ну так обрабатывай нажатия вручную и если клик произошел по той колонке с помощью emit вызывай свой сигнал. Т.Е. в *.h файле опиши свой сигнал. signals: void mySignal(QTableWidgetItem *), затем в *.cpp соединяй свой сигнал со слотом OPEN_PRODUCT(QTableWidgetItem *) а сигнал itemDoubleClicked со слотом в котором ты вяснишь туда ли произошел клик и если да, то вызывай сигнал с помощью emit mySignal(QTableWidgetItem *). Код не пишу намеренно, чтобы ты мог разобраться сам. |
|
|
kvak |
1.9.2010, 22:33
Сообщение
#24
|
Студент Группа: Участник Сообщений: 51 Регистрация: 5.5.2010 Пользователь №: 1690 Спасибо сказали: 1 раз(а) Репутация: 0 |
Спасибо, я уже понял про сигнал. А чтобы обрабатывать сигналы только с нужной колонки я воспользовался встроенными методами.
connect(TAB, SIGNAL(itemDoubleClicked(QTableWidgetItem *)), SLOT(OPEN_PRODUCT(QTableWidgetItem *))); OPEN_PRODUCT(QTableWidgetItem *checkitem) { int colonna = checkitem->column(); if(colonna == 0){ //нужный код } } |
|
|
Текстовая версия | Сейчас: 25.11.2024, 18:40 |