Russian Qt Forum
Ноябрь 26, 2024, 06:43 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 [2]   Вниз
  Печать  
Автор Тема: connect QObject и т.д.  (Прочитано 9790 раз)
Igore
Гость
« Ответ #15 : Январь 25, 2012, 15:00 »

Цитировать
суть такая, что в классе System я читаю некоторую информацию с бд(логи), и в нем же , хотелось бы иметь функцию для работы с QTreeWidget , а именно что- то типа
ShowChangeOrders(QTreeWidget *w){
w->addChild(...);//и тут бла бла бла
}
вообщем а то что я хочу отобразить храню в списках класса System
Используй QTreeView со своей моделью, где будешь информировать View через стандартные методы.

Цитировать
не совсем будет так верно, ибо у меня сразу загружаются 100+ записей , постоянно на каждую запись делать emit сигнал?
Делай один emit (QStringList), или через свой тип, надо зарегистрировать его через qRegisterMetatype и спокойно использовать в signal/slot.
Записан
BuRn
Гость
« Ответ #16 : Январь 25, 2012, 15:00 »

а смысл тогда в сигнале? если можно что - то типа такого
Код:
QStringList System::GetListLogs{
...
return list_logs;
}
void qtPMK::ShowLogs(){
QStringList logs = GetListLogs();
...
}
Записан
BRE
Гость
« Ответ #17 : Январь 25, 2012, 15:06 »

а смысл тогда в сигнале? если можно что - то типа такого
Ну так эти строки как-то асинхронно добавляются, я полагаю. А как иначе тот-же MainWindow узнает что в списке произошло изменение?

Записан
BuRn
Гость
« Ответ #18 : Январь 25, 2012, 15:08 »

нет, есть 2 таких элемента treeWidget в 1 просто идет загрузка и отображение подробностей , в другом да, добавляются, но добавляются опять таки в список
Записан
Igore
Гость
« Ответ #19 : Январь 25, 2012, 15:24 »

Цитировать
а смысл тогда в сигнале? если можно что - то типа такого

Можно, signal/slot всего лишь делает связность меньше, можешь потом сделать считываение не из БД а из файла, и так же emit signal, добавить connect и все будет работать так же. GUI часть переделывать не надо, а если вызывать на прямую, то надо переделывать.
Код:
void qtPMK::ShowLogs(){
QStringList logs = SystemDB::GetListLogs();
//QStringList logs = SystemFile::GetListLogs();
}

Цитировать
нет, есть 2 таких элемента treeWidget в 1 просто идет загрузка и отображение подробностей , в другом да, добавляются, но добавляются опять таки в список

Если у тебя данные статичны и не обновляются, то особо не важно как ты это сделаешь (если не закладываться на поддержку), а если у тебя во время работы программы появляются новые данные и ты их должен забирать хотя бы по таймеру, то лучше через signal/slot, так как можно всю работу с источником данных сосредоточить в одном месте.
Записан
BuRn
Гость
« Ответ #20 : Январь 26, 2012, 00:07 »

ну в список в который постоянно добавляются записи, ничего не мешает делать что - то типа
addMessae(bla bla bla );
ShowChangeLogs(ui->treeWidget);
Записан
Страниц: 1 [2]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.045 секунд. Запросов: 21.