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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Вылетает с ошибкой "...corrupted double-linked list", прошу помочь  (Прочитано 8183 раз)
Demonsh
Гость
« : Июль 16, 2008, 09:53 »

Написал достаточно простенький софт на С++ с библиотекой QT. Код проблемного участка:
Цитировать
{
AddHost *formAddHost = new AddHost;
formAddHost->show();
connect(formAddHost->ui.ButtonOk, SIGNAL(clicked()), this, SLOT(RefreshTables())); // Refresh table when formAddHost closeds
}
void RefreshTables()
{
queryHosts->setTable("view_hosts");
queryHosts->select();
ui.tableViewHosts->resizeRowsToContents();
ui.tableViewHosts->resizeColumnsToContents();
ui.tableViewHosts->show();
}
в данном случае я вызываю форму formAddHost для добавления/редактирования записи и хочу что бы после ее закрытия обновилась таблица (tableViewHosts) в родительской форме.
Проблема в том что если выполняется функция RefreshTables то в родительской таблице появляется много пустых строк после всех записей и при попытке сделать скрол вниз программа вылетает с ошибкой:
Цитировать
*** glibc detected *** /****/****/Project: corrupted double-linked list: 0x08141278 ***
может tableView нужно как-то очищать при повторной загрузке?
Записан
ритт
Гость
« Ответ #1 : Июль 16, 2008, 12:06 »

охренеть, описание проблемы!
хотя бы версию куте указал и чуть больше сорцев...кто такой queryHosts? какое отношение оно имеет к tableViewHosts? - обо всём надо догадываться...
Записан
Demonsh
Гость
« Ответ #2 : Июль 16, 2008, 16:01 »

приношу свои извинения.
версии:
libqt4-4.4.0-17.1
libqt4-sql-mysql-4.4.0-18.1
заполняется из MySQL базы. При запуске программы заполняем данные из таблицы "view_hosts":
Цитировать
db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName(db_serverName);
db.setDatabaseName(db_database);
db.setUserName(db_username);
db.setPassword(db_password);
db.open()
//
queryHosts = new QSqlTableModel;
queryHosts->setTable("view_hosts");
queryHosts->select();
ui.tableViewHosts->setModel(queryHosts);
Записан
ритт
Гость
« Ответ #3 : Июль 17, 2008, 00:07 »

в 4.4 такой баги с "лишними" строками уже нет...
попробуй убрать queryHosts->setTable("view_hosts") из RefreshTables; если политика сохранения изменений в модели не ручная, queryHosts->select() тоже можешь убрать; убедись, что queryHosts не дёргается ещё где-то.
почти уверен, проблема не в кутэ
Записан
Demonsh
Гость
« Ответ #4 : Июль 17, 2008, 09:49 »

так и есть. проблема ушла после того как убрал строку:
Цитировать
queryHosts->setTable("view_hosts");
спасибо за подсказку!
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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