Просмотр сообщений
|
Страниц: 1 ... 54 55 [56] 57 58
|
826
|
Qt / Model-View (MV) / Re: SqlTableModel + SortFilterProxyModel
|
: Февраль 15, 2013, 11:47
|
возможно неправ с этими переводами, но на английском оставить, не так меня поймут), так вроде отображает как надо, на фильтрацию это врядли влияет, а так спасибо за замечание, как говорится на ошибках учатся, к сожалению в основном приходится учится исключительно на своих... С переводом лучше пораньше разобраться, тем более, что там все довольно просто. А так, чем дальше - тем больше потом переделывать придется .
|
|
|
827
|
Qt / Model-View (MV) / Re: SqlTableModel + SortFilterProxyModel
|
: Февраль 14, 2013, 17:20
|
Может сначала надо model->select() вызвать, а потом model->setHeaderData? Так и в справке написано. C++ (Qt) model->select(); model->setHeaderData(fio, Qt::Horizontal, tr("Ф.И.О.")); model->setHeaderData(otdel, Qt::Horizontal, tr("Отдел")); model->setHeaderData(tel, Qt::Horizontal, tr("Телефон"));
И строки надо всегда писать латинскими буквами. Не надо туда пихать русские, тем более не в кодировке UTF-8. tr("......") предназначено для перевода с английского на другие языки, а не наоборот.
|
|
|
828
|
Программирование / С/C++ / Re: Изменить ссылку (?)
|
: Февраль 10, 2013, 13:08
|
При конструировании передавать "фуфло", а дальше править. Предвосхищая вопрос: "А где этот фуфло брать? Его же тоже еще нет. Если все фуфлы создавать заранее, то вдруг они не понадобятся, и будут только место занимать.", предлагаю добавить фабрику фуфла: FufloFactory.
|
|
|
830
|
Программирование / С/C++ / Re: Изменить ссылку (?)
|
: Февраль 09, 2013, 15:35
|
И вообще, мне тут думается, что igors просто сидит и глумится сейчас над нами) Эта тема, как некое ответвление темы про сериализацию.. Готов поспорить, что в конце мы услышим от автора: Да это же была намеренная провокация, так изящно развёрнутая мной) И в конце обязательно покажет правильный способ сериализации всея объектов во всея форматы .
|
|
|
831
|
Программирование / С/C++ / Re: Изменить ссылку (?)
|
: Февраль 09, 2013, 14:39
|
надеюсь когда-нибудь получу от Igor Шнобелевскую премию по программированию Обязательно получите! Шаблоны есть? Есть. Ссылки вместо указателей? А как иначе! Даже shared_ptr есть в комплекте с reference_wrapper. И самое главное: ни фига не понятно! Как с этим жить и как поддерживать. За что отдельный бонус от Igors .
|
|
|
832
|
Программирование / С/C++ / Re: Изменить ссылку (?)
|
: Февраль 09, 2013, 13:54
|
explicit ReadOnlySegmentTreeModel(const Segment& rootSegment, QObject* parent = 0);
Так а что передавать конструктору в качестве rootSegment (которого пока нет, он еще не загружен)? "Какое-то фуфло"?
|
|
|
833
|
Программирование / С/C++ / Re: Сериализация (как сделать поудобнее)
|
: Февраль 08, 2013, 21:50
|
При сохранении, вместо указателя сохранять его идентификатор, а при чтении получать по идентификатору указатель на объект. А насколько плохо в качестве такого идентификатора использовать текущий адрес объекта в памяти? (Допустим, что памяти хватает и все нужные объекты там уже находятся).
|
|
|
834
|
Программирование / С/C++ / Re: Сериализация (как сделать поудобнее)
|
: Февраль 08, 2013, 18:38
|
Какой "каждой структуре" Речь шла о полиморфных классах уже имеющих общую базу. А я вот и жду, узнаем мы наконец-то, что конкретно Вы собираетесь сериализовать и куда. Началось со структур по сети, потом "vectot<int>, vectot<float>", теперь и до полиморфных классов добрались. Или Вы хотите универсальный метод для всего сразу изобрести?
|
|
|
835
|
Программирование / С/C++ / Re: Сериализация (как сделать поудобнее)
|
: Февраль 08, 2013, 14:52
|
Во как! "продемонстрировать направление", не просто так "дерем из дуста". Впрочем я не удивлен, темплейтщик любит все раздувать Шаблоны как раз исходный текст программы и сдувают . И направление в дусте весьма дельное. Жаль, что его разжевывать приходится. Теперь при сохранении указателя на полиморфный тип вызываем a->ReadWrite(), (вместо оператора &), что конечно несколько неоднообразно. Критикуем, показываем как лучше
Отличный способ, реализуйте . И как в дусте до такого не догадались... Наверное побоялись прилепить к каждой структуре базовый класс, да еще с виртуальным методом. И, чтобы отвести глаза, наваяли кучу шаблонов с макросами .
|
|
|
836
|
Программирование / С/C++ / Re: Сериализация (как сделать поудобнее)
|
: Февраль 08, 2013, 13:54
|
Почему не шаблон, по-моему здесь есть все основания "Вы не понимаете!" (c) Вполне нормальный пример. Для начала более чем достаточно, чтобы продемонстрировать направление. И копируйте код корректно, QDataStream совсем не iarchive находится.
|
|
|
837
|
Программирование / С/C++ / Re: Сериализация (как сделать поудобнее)
|
: Февраль 07, 2013, 18:26
|
Негусто. Или я что-то упустил? Есть одно маленькое упущение: чтобы получить конструктивное решение, надо описать конструктивное задание . Потому как нет одного универсального метода, который ко всем случаям оптимально подойдет. Поэтому повторюсь:
|
|
|
838
|
Программирование / С/C++ / Re: Сериализация (как сделать поудобнее)
|
: Февраль 07, 2013, 16:31
|
Плюс Тролли хотели полной автономности и лишние зависимости были просто не нужны. У меня примерно такие же аргументы были. И плюс, например, по контейнерам надо было выбирать. Все-таки чем-то одним надо пользоваться. И да, если когда нибудь, не дай Бог конечно, вам придется писать софт без Qt обратите внимание на буст. Он многое предоставляет. Смотрел туда одно время... На довольно низком уровне, для кроссплатформенности, похоже лучше и не найдешь библиотеки. Но хотелось уровень повыше и удобства, поэтому победил Qt . И буст таскать с собой не захотелось.
|
|
|
839
|
Программирование / С/C++ / Re: Сериализация (как сделать поудобнее)
|
: Февраль 07, 2013, 16:09
|
Так почему бы не сказать проще "используй сериализацию буста, там давно за тебя все сделали". Однако не все спешат это делать - хотя сериализация есть у каждого. Был слушок что там проблемы с версиями - правда никаких подробностей не знаю. Да и просто перелопатить с Archive множество живых классов как-то не тянет. Да, в Qt кое-чего нет, так что, сразу привлекать др либу? Может и свои решения будут неплохи (или такая мысль не допускается? ) Выше уже сказали, что никто не заставляет использовать, а посмотреть на реализацию вполне стоит . Если бы буст был так хорош, и его бы использовали в Qt, я бы тоже им пользовался безоговорочно. Но разработчики Qt не используют его, более того, изобретают свои велосипеды, взять хоты бы их контейнеры QVector, QList и т.п. Хотя, казалось бы, бери хоть из std, хоть из буста. Велосипеды Qt мне нравятся намного больше, чем другие. Поэтому я пользуюсь Qt и добавляю туда свои запчасти, и не использую буст. Но это не значит, что нельзя в бусте подглядывать интересные и полезные моменты .
|
|
|
840
|
Программирование / С/C++ / Re: Сериализация (как сделать поудобнее)
|
: Февраль 07, 2013, 15:58
|
Все структуры взаимосвязаны. Фактически они являются нодами огромнейшей системы. Каждая нода может ссылаться на данные, на другую ноду, быть объединённой с другой нодой. Имеются ноды различных типов, начиная от физ устройства, заканчивая виртуальными узлами. Собственно получается этакий чоООООрный круг. Что на самом деле не круг, а граф связей между ними Да, ссылок может быть несколько Если коротко, то способ с переопределением операторов для QDataStream не будет работать для полиморфных классов. Например: C++ (Qt) class A {}; class B : public A {}; QDataStream & operator<< (QDataStream& stream, const A& a); QDataStream & operator>> (QDataStream& stream, A& a); QDataStream & operator<< (QDataStream& stream, const B& b); QDataStream & operator>> (QDataStream& stream, B& b); main { A* b = new B(); QDataStream out(&file); out << *b; // Call QDataStream & operator<< (QDataStream& stream, A& a); }
будет записана только часть класса А, поля В сохранены не будут. Потому что используемый шаблон выбирается в compile-time, и компилятор не знает, какой фактически объект будет в run-time. Если у вас есть дочерние ноды, они создаются динамически и в compile-time их конкретный тип не известен, то Вас ожидают такие вот грабли . И есть еще много других . В способе буста тоже не все так безоблачно, стоить посмотреть Pointers to Objects of Derived Classes. Я о таком подозревал, и когда увидел это, стало еще тоскливее...
|
|
|
|
|