Название: [РЕШЕНО] conect из цикла for Отправлено: 484594182 от Август 15, 2017, 00:06 есть tableWidget, строки которого заполняются циклом for.
данные берутся из sqlite. во второй item строки вставляется CheckStateRole. Код: for(int i = 0; query.next(); i++){ и где мне писать строку QObject::connect(ui->tableWidget, SIGNAL(itemClicked(QTableWidgetItem *)), this, SLOT(check(QTableWidgetItem *)) внутри цикла, или еще где-то? и можно ли обойтись без объявления нового класса? я их пока что очень боюсь... п.с. функция чек собирается проверять стоит галка или нет и слать скуэль либо единицу либо ноль. соответственно функции как то надо передать переменную цикла i и буул переменную статуса галки. Название: Re: conect из цикла for Отправлено: 484594182 от Август 15, 2017, 00:34 ах да...
ubuntu 17.04; qt creator 4.0.2; qt 5.7; gcc 4.9.1 Название: Re: conect из цикла for Отправлено: lit-uriy от Август 15, 2017, 06:41 Если у тебя отправитель и получатель существуют за пределами цикла, то и соединять их нужно за пределами цикла иначе получишь N штук соединений и соответственно N раз будет вызываться слот на каждую посылку сигнала.
Если бы у тебя в цикле создавались какие-то объекты, которые нужно было бы с чем-то соединить, то соединение нужно было бы производить только внутри цикла, т.к. за пределами цикла их видно не будет. Название: Re: conect из цикла for Отправлено: 484594182 от Август 15, 2017, 16:48 в цикле создается объект, чекстайт, задача в том, чтобы при смене галочки слать sql запрос и в нем отправлять номер строки.
А разве обработчик можно повесить внутри цикла? Название: Re: conect из цикла for Отправлено: lit-uriy от Август 16, 2017, 05:55 в цикле создается объект Тот конект который ты привёл использует два объекта (отправитель и получатель), которые в цикле не создаются. Если же ты хочешь соединять QTableWidgetItem, то нужно это делать в цикле, т.к. за его пределами этот объект видно не будет (особенность Си/Си++)А разве обработчик можно повесить внутри цикла? А речь не идёт об обработчике, речь идёт только о соединенииНазвание: Re: conect из цикла for Отправлено: 484594182 от Август 16, 2017, 07:46 блин, может подскажете как проще реализовать чтоб при смене чекстайта слать скл запрос?
Название: Re: conect из цикла for Отправлено: lit-uriy от Август 17, 2017, 06:38 484594182, я не знаю устройства твоей программы, поэтому могу только догадки выдвигать.
Перед циклом делаем: Код
Объявляем слот Код
пример тела слота: Код
Название: Re: conect из цикла for Отправлено: 484594182 от Август 17, 2017, 23:08 ушёл пробовать...
Название: Re: conect из цикла for Отправлено: 484594182 от Август 22, 2017, 07:21 никак ... сколько не мучил.. креатор ругается как буд-то нет точки с запятой после строки конекта.. где только не пробовал ее писать. слот в .h файле объявлял. начинает ругаться на не объявленый QTableWidgetItem >:(
мой заголовочник.. Код
с вышеизложеным заголовочным файлом креатор ругается на строку Код
вот как использовал Код
если раскоментировать один из конектов то компилироваться перестает. футкция чек Код
пока конект закоментирован всё компилируется и работает как задуманно.. Название: Re: conect из цикла for Отправлено: 484594182 от Август 22, 2017, 07:42 что то мне подсказывает что нельзя так делать как я делаю...
потому как три созданых в дизайне чекстайта эта же строка конекта соединяет успешно... делал так Код
Название: Re: conect из цикла for Отправлено: 484594182 от Август 22, 2017, 07:49 в общем пока все на стадии ощибки
Код в строке Код
Название: Re: conect из цикла for Отправлено: gil9red от Август 22, 2017, 08:35 Скобку добавьте справа, перед ;
Название: Re: conect из цикла for Отправлено: 484594182 от Август 22, 2017, 11:19 о чудо... и правдо я новичок.
откомпилилось.. теперь приконекченая функция вызывается i раз. i==число строк. попробую конект вынести за цикл. Название: Re: conect из цикла for Отправлено: 484594182 от Август 22, 2017, 11:23 все гуд после того как конект вынес за цикл....
всем большое спасибо, очень помогли :) РЕШЕНО |