crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в добавить ряд, столбец в таблицу
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
Теги
Выровнять по центру
Ссылка на тему
Ссылка на сообщение
Скрытый текст
Сокращение
Код с подсветкой
Offtopic
 
Удалить форматирование
Спец. элементы
Шрифт
Размер
 
Цвет шрифта
 
Отменить ввод
Вернуть ввод
Полужирный
Курсив
Подчеркнутый
 
 
Смайлики
Вставить изображение
Вставить адрес электронной почты
Цитата
Код
Раскрывающийся текст
 
Увеличить отступ
По левому краю
По центру
По правому краю
Вставить список
Вставить список

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
kvak Дата 1.9.2010, 22:33
  Спасибо, я уже понял про сигнал. А чтобы обрабатывать сигналы только с нужной колонки я воспользовался встроенными методами.

connect(TAB, SIGNAL(itemDoubleClicked(QTableWidgetItem *)), SLOT(OPEN_PRODUCT(QTableWidgetItem *)));

OPEN_PRODUCT(QTableWidgetItem *checkitem) {

int colonna = checkitem->column();
if(colonna == 0){
//нужный код
}
}
molchanoviv Дата 1.9.2010, 10:28
 
Цитата(kvak @ 31.8.2010, 21:19) *
connect(TAB, SIGNAL(itemDoubleClicked(QTableWidgetItem *)), SLOT(OPEN_PRODUCT()));


Не совсем так. правильно писать connect(TAB, SIGNAL(itemDoubleClicked(QTableWidgetItem *)), SLOT(OPEN_PRODUCT(QTableWidgetItem *)));

Цитата(kvak @ 31.8.2010, 21:19) *
Осталось только понять, можно ли сделать так, чтобы сигнал высылался, когда кликаешь по только по определенной колонке.


Ну так обрабатывай нажатия вручную и если клик произошел по той колонке с помощью emit вызывай свой сигнал. Т.Е. в *.h файле опиши свой сигнал. signals: void mySignal(QTableWidgetItem *), затем в *.cpp соединяй свой сигнал со слотом OPEN_PRODUCT(QTableWidgetItem *) а сигнал itemDoubleClicked со слотом в котором ты вяснишь туда ли произошел клик и если да, то вызывай сигнал с помощью emit mySignal(QTableWidgetItem *). Код не пишу намеренно, чтобы ты мог разобраться сам.
kvak Дата 31.8.2010, 20:19
  Все, понял как. Вот так сигнал высылается и слот открывается, когда кликаешь 2 раза по любой ячейке
connect(TAB, SIGNAL(itemDoubleClicked(QTableWidgetItem *)), SLOT(OPEN_PRODUCT()));

Осталось только понять, можно ли сделать так, чтобы сигнал высылался, когда кликаешь по только по определенной колонке.
kvak Дата 30.8.2010, 23:27
 
Цитата(molchanoviv @ 30.8.2010, 22:57) *
Цитата
connect(TAB, SIGNAL(itemDoubleClicked(myitem)), this, SLOT(OPEN_PRODUCT()));

Во первых вместо myitem должен стоять тип, во вторых в слоте от тоже должен быть указан. А вообще просто с помощью emit вызывай свой сигнал и все.


Я как понял, что в аргумент сигнала нужно передать указатель на объект класса QTableWidgetItem.
Но я не знаю, как создать сам объект типа QTableWidgetItem, чтобы он принадлежал определенной ячейке в таблице.
По-другому не предсталяю как. Если не сложно, напишите сам код.
molchanoviv Дата 30.8.2010, 21:57
 
Цитата
connect(TAB, SIGNAL(itemDoubleClicked(myitem)), this, SLOT(OPEN_PRODUCT()));

Во первых вместо myitem должен стоять тип, во вторых в слоте от тоже должен быть указан. А вообще просто с помощью emit вызывай свой сигнал и все.
kvak Дата 30.8.2010, 21:23
  Появился еше один вопрос. Много пробовал, но не смог понять.

connect(TAB, SIGNAL(itemDoubleClicked(myitem)), this, SLOT(OPEN_PRODUCT()));


TAB - это моя таблица, объект класса QTableWidget
OPEN_PRODUCT() - мой слот

Требуется, чтобы myitem указывал на ячейку с координатами (0,0) , чтобы при двойном клике по ней вызывался мой слот. Не получается это сделать. Если кто знает как, подскажите пожалуйста.
kvak Дата 29.8.2010, 20:46
  Классно :rolleyes:
Litkevich Yuriy Дата 29.8.2010, 12:39
 
Цитата(kvak @ 29.8.2010, 15:57) *
Я догадываюсь, что можно использовать методы класса QTableView, но как именно не знаю.
методы базового класса наследуются дочерним классом, т.е. как бы "становятся методами дочернего".
Алексей1153 Дата 29.8.2010, 12:11
 
Цитата
Inherits QTableView.

да так же, как и обычно

QTableWidget p* =new QTableWidget(...);
p->setColumnWidth (...);



kvak Дата 29.8.2010, 11:57
  Да. Но у меня класс то QTableWidget. Я догадываюсь, что можно использовать методы класса QTableView, но как именно не знаю.
Просмотр темы полностью (откроется в новом окне)
RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 10.7.2025, 6:24