query->exec(QString("SELECT * FROM %1 WHERE word LIKE \'%2%\' ORDER BY word").arg(tableName).arg(str));
while (query->next())
{
i++;
mainString+="(" + QString::number(i) + ")<a href=\'#" +
query->record().value(0).toString() + "\'>" + query->record().value(0).toString() +"</a><br>";
}
textBrowser->setHtml(mainString);
Результаты тестов показали, что очень долго, по сравнению с другой частью кода работает следующая функция: setHtml(mainString).
Подскажите, пожалуйста, что мне сделать, чтобы строка быстрее добавлялась в QTextBrowser?
Подскажите, пожалуйста, что мне сделать, чтобы строка быстрее добавлялась в QTextBrowser?
А где вы там увидели добавление строки-то??? Вы весь текст собираете в целое, и целиком его и ставите, все строки сразу. Никаких добавлений не увидел.
Запрос SELECT * FROM %1 WHERE word LIKE \'%2%\' ORDER BY word вообще-то является издевательством над базой данных. Но раз вы говорите, что потери времени не здесь...
Какого размера там выборка? таблица? вопросы когда научимся задавать предоставляя внятную информацию? а не для экстрасенсов?
Какого размера там выборка? таблица? вопросы когда научимся задавать предоставляя внятную информацию? а не для экстрасенсов?
Честно говоря не осилил смысл высказывания. Всё там понятно. С базой проблем нет, просто текст долго грузится в QTextBrowser. И размер выборки понятное дело немаленький, иначе должно шустро грузиться. Другое дело зачем отображать содержимое таблицы в виде html на QTextBrowser...
Большой объём текста полюбому долго грузится на виджет. Тут нужно думать, как бы его частями отображать.
Я вот это, можно сказать и спрашиваю
Другое дело зачем отображать содержимое таблицы в виде html на QTextBrowser...
Просто мне надо создать локальные ссылки на слова, я можно сказать делаю фильтр.Я сначала хотел QListWidget использовать, но думаю, что, это еще медленнее.
Думаю нет. Я имел в виду не выводить всё на один QTextBrowser, сделать несколько текстовых документов, листать кнопкой next.
А выводить частями в принципе несложно, не зря же есть QTextCursor, QTextBlock.
Я сначала хотел QListWidget использовать, но думаю, что, это еще медленнее.
Не факт, особенно если модель-вид поюзать. Оно специально придумано для больших объёмов инфы.
Попробовал с QListWidget и оказалось, что все работает намноооооого быстрее. Спасибо за совет.
Теперь у меня другая проблема:
Вот есть кусок функции, который отвечает за то, чтобы данные с файла перенести в БД, причем формат данного файла - sl. ( слово перевод \n), однако работает она довольно медленно. Подскажите, как мне увеличить скорость загрузки данные в БД?
Код:
mainString = stream.readAll();
list = mainString.split(" ");
for ( int i = 0; i < list.count(); i++ )
if ( i % 2 == 0 )
{
if ( i >= 2 && list.count() - i >= 1 )
{
if ( list[i-1].split("\n").count() > 1 )
word = list[i-1].split("\n")[1];
trans = list[i].split("\n")[0];
}
else
if ( i == 0 )
{
word = list[0];
trans = list[1].split("\n")[0];
}
else
if ( list.count() - i == 0 )
{
word = list[list.count() - 1].split("\n")[1];
trans = list[list.count()];
}
query->exec(QString("INSERT INTO %1(word,trans)"
"VALUES(\"%2\",\"%3\")").arg(tableName).arg(word.simplified().toLower()).arg(trans));
if ( !query->isActive() )
centrWidget->setWarning(CentralWidget::Warning,tr("Database Error:") + query->lastError().text());