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

Войти
 
  Начало Форум WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  
  Просмотр сообщений
Страниц: 1 ... 384 385 [386] 387 388 389
5776  Qt / Model-View (MV) / Re: Сортировка в модели : Август 29, 2007, 11:46
Буду очень рад.
panter.dsd@gmail.com
Только можешь в ближайшие 10 минут кинуть, а то на работу...
5777  Qt / Model-View (MV) / Re: Сортировка в модели : Август 29, 2007, 11:34
А ты пробовал этот код? Просто у меня он не заработал. Из sort ты вызываешь QSortFilterProxyModel::sort( column, order ); но QSortFilterProxyModel - это не твоя модель, и lessThan у нее соответсвенно не твой. Грустный
5778  Qt / Model-View (MV) / Re: Сортировка в модели : Август 28, 2007, 11:26
Облом. Все не то. Вот мой код:
Код:
QVariant UpData = sourceModel()->data(sourceModel()->index(qmiUp.row(),2));
QVariant DownData = sourceModel()->data(sourceModel()->index(qmiDown.row(),2));

if ((UpData.toString()=="-=DIR=-") && (DownData.toString()!="-=DIR=-"))
{
return true;
}
else
if ((UpData.toString()!="-=DIR=-") && (DownData.toString()=="-=DIR=-"))
{
return false;
}
В итоге папки отдельно от файлов, но то вверху, то внизу. Решением послужило бы
Код:
QVariant UpData = sourceModel()->data(sourceModel()->index(qmiUp.row(),2));
QVariant DownData = sourceModel()->data(sourceModel()->index(qmiDown.row(),2));

if ((UpData.toString()=="-=DIR=-") && (DownData.toString()!="-=DIR=-"))
{
return true && order;
}
else
if ((UpData.toString()!="-=DIR=-") && (DownData.toString()=="-=DIR=-"))
{
return false && order;
}
Где order есть Qt::SortOrder (AscendingOrder или DescendingOrder). Но как этот order достать?Непонимающий?
5779  Qt / Model-View (MV) / Re: Сортировка в модели : Август 27, 2007, 17:54
Вот ответ, наверное. Завтра буду копать.
http://websvn.kde.org/trunk/KDE/kdelibs/kfile/kdirsortfilterproxymodel.cpp
http://websvn.kde.org/trunk/KDE/kdelibs/kfile/kdirsortfilterproxymodel.h
5780  Qt / Model-View (MV) / Re: Сортировка в модели : Август 27, 2007, 16:52
Да я не об этом. Есть колонка имен с номером 0. Щелкаем по ней один раз и сортировка происходит по возрастанию, щелкаем второй - по убыванию. Мне нужно знать, по возрастанию или убыванию сортировка, потому что lessThan в разных случаях интерпретируется по разному, т.е. логически умножается на порядок сортировки.
5781  Qt / Model-View (MV) / Re: Сортировка в модели : Август 27, 2007, 12:11
собственная сортировка устанавливается через setSortRole()
На сколько я понял из ассистента, setSortRole() к этому никаким боком не относится. Посмотри значения enum Qt::ItemDataRole там ничего о порядке сортировки.
5782  Qt / Model-View (MV) / Re: Сортировка в модели : Август 27, 2007, 11:38
Код:
bool QSortFilterProxyModel::lessThan ( const QModelIndex & left, const QModelIndex & right ) const 
{
  ...
  if (leftType != rightType) return (leftType == dir); // или return (leftType == file); вверх-вниз
    else return QString::localeAwareCompare(leftString, rightString) < 0;
}

Забыл: насчёт первого да правильно QStandardItemMode это как БД, а QSortFilterProxyModel как SQL запрос
Этот код есть в ассисетнте. Вопрос был в другом: как узнать ТЕКУЩИЙ тип сортировки (вверх-вниз)? Ваш код работать не будет, так как дирректории будут или все вверху, или все внизу.
А почему не воспользовался QDirModel там и сортировка вроде как есть и филтры?
Во-первых недавно я поднимал вопрос о баге с pagefile.sys, а во-вторых скорость загрузки не устраивает и еще кое какие мелочи.
5783  Qt / Model-View (MV) / Сортировка в модели : Август 26, 2007, 18:07
В общем все началось давным давно....  Улыбающийся
Использую QStandardItemModel и QTreeView, загоняю в модель имена файлов, расширения, даты, в общем самодельный файловый менеджер. Понадобилась сортировка, после прочтения форума понял, что нужно действовать через QSortFilterProxyModel. После прочтения ассистента пришел к такой связке:
1. Наследую класс QSortFilterProxyModel.
2. Переписываю lessThan.
3. Подключаю QStandardItemModel к QSortFilterProxyModel.
4. Подключаю QSortFilterProxyModel к QTreeView.
Собственно несколько вопросов:
1. Праильно ли сделано, просто какое-то очень неудобное подключение модели через модель. Улыбающийся
2. Как сделать дирректории всегда вверху? Т.е. тут вопрос в том, где достать тип сортировки(сверху вниз или наоборот). Искал в модели, но там это встречается только в sort, но переопределяя эту функцию я гроблю всю сортировку. Грустный
5784  Программирование / С/C++ / Re: Как сделать MyClass::MyFunction? : Август 22, 2007, 19:09
Огромное спасибо.
Тема закрыта.
5785  Программирование / С/C++ / Как сделать MyClass::MyFunction? : Август 22, 2007, 11:34
Как мне описать функцию в классе, чтобы ее можно было вызывать не создавая экземпляр данного класса, т.е. MyClass::MyFunction?
5786  Qt / Общие вопросы / Re: QProcess и cmd.exe : Август 22, 2007, 11:33
Допустим запускать в ней приложение. Улыбающийся
5787  Qt / Общие вопросы / Re: QProcess и cmd.exe : Август 21, 2007, 18:10
Можно забабахать через winapi.
5788  Qt / Общие вопросы / Re: Софт для QT разработчика : Август 20, 2007, 19:04
С виду прикольно. Только не нашел как скачать. Грустный Может кините ссылку?
5789  Qt / Печать / Re: Печать отчета : Август 20, 2007, 16:56
Вот такой шаблон:
Код:
<FONT style="font-size: 12pt;">
<p align="center">Справка $NUMBER_REFERENCE</p>
<p align="center">к делу № $NUMBER_DELO</p>
<p>$FIO снят(а) с учета с $DATE_OUT</p>
<p>Основание: $OSNOVANIE</p>
<br>
<p>$PODPIS</p>
<p>$CURRENT_DATE</p>
</FONT>
Вот так заполняю:
Код:
QStringList qslGetPrintText(const QStringList qslStructText)
{
  QStringList qslPrintText=qslStructText;
  qslPrintText.replaceInStrings("$NUMBER_REFERENCE", qsNumberReference);
  qslPrintText.replaceInStrings("$DATE_OUT", qsDateOut);
  qslPrintText.replaceInStrings("$DATE_SNJAT", qsDateOut1);
  qslPrintText.replaceInStrings("$OSNOVANIE", qsOsnOut);
  return qslPrintText;
}
Печатаю так:
Код:
QTextDocument* document=new QTextDocument();
document->setHtml( qslGetPrintText(qslStructList));
QDialog* dlgPreview=new QDialog(this,Qt::WindowMaximizeButtonHint);
dlgPreview->resize(640,480);
QTextEdit* tePreview=new QTextEdit(dlgPreview);
tePreview->setDocument(document);
QVBoxLayout* layout=new QVBoxLayout();
layout->addWidget(tePreview);
dlgPreview->setLayout(layout);
dlgPreview->exec();
delete document;
delete tePreview;
delete dlgPreview;
5790  Qt / Базы данных / Re: Qt и dbf-файлы : Август 20, 2007, 11:47
Можно надыбать в нете(а это очень легко) формат этого файла и сделать свой класс для работы с ним. А можно пройтись поиском по этому форуму и найти готовый примет. Улыбающийся Поиск рулит.
Страниц: 1 ... 384 385 [386] 387 388 389

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