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

Войти
 
  Начало Форум WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  
  Просмотр сообщений
Страниц: 1 [2] 3 4 ... 57
16  Разное / Говорилка / Re: Все программеры на дельфях такие неадекватные? : Январь 21, 2017, 04:36
Сам по себе Objects Pascal имеет право на существование, вполне нормальный язык, особенно для начинающих программистов и программистов претендующих на средний уровень. Его синтаксис предельно понятен, легко читается и в принципе после него не сложно перейти на С или С++, если есть необходимость.

Никто не заставляет кидать на форму огромное количество невизуальных компонент, выставлять в них свойства и называть это программированием. Это визуальное конструирование, не требующее глубоких знаний. И иногда хорошо, что есть такая возможность, эта же возможность есть и в Qt. И здесь(на этом форуме) тоже огромное количество вопросов новичков, которые просто не читают документацию. Я сталкивался с просто огромными проектами, написанными на Objects Pascal и собирающимися компилятором Delphi и в них вообще не было использования VCL.

Что касается делфи у нее точно есть один несомненный плюс - это скорость компиляции, которая обусловлена отсутствием разделения на заголовочные файлы и файлы реализации.

Цитировать
ну... обычно берешь то, что лучше знаешь, и допиливаешь до нормального решения)
А вот с этим в корне не согласен, брать надо наиболее подходящий инструмент, а не тот которым лучше всего владеешь, иначе кака получится.
17  Qt / Базы данных / Re: IBASE и библиотека fbclient : Ноябрь 30, 2016, 22:13
Что пишет-то? Очевидно не все ДЛЛ-ки видны запускаемому файлу. Не знаю как в Виндовс, возможно плагин БД должен в специальной папке лежать, а не просто рядом с EXE-шником.
18  Qt / Базы данных / Re: IBASE и библиотека fbclient : Ноябрь 29, 2016, 22:29
А какие либы Вы статически прилинковали к своему экзешнику? fbclient требуется QT-шному плагину, как я понимаю ни плагин к программе статически не может быть прилинкован, ни fbclient к плагину тоже. Вот оно и не работает.
19  Qt / Вопросы новичков / Re: Собственная IDE для Qt : Ноябрь 07, 2016, 04:04
Цитировать
Мне больше всего запомнилась одна: отображение значений переменных в коде во время отладки.
Так это работает и в креаторе отлично.
В Creator я такого не нашёл. В delphi они прямо в редакторе кода отображались, а не отдельно в окошках.
Ну не знаю, так же в креаторе и работает, как же еще - естественно не в отдельном окошке...

Программа должна быть собрана естественно в дебаге с отладочными символами, ставите точку остановки в любом месте и хинтом вылезает содержимое переменной.
20  Qt / Вопросы новичков / Re: Собственная IDE для Qt : Ноябрь 06, 2016, 19:28
Цитировать
Мне больше всего запомнилась одна: отображение значений переменных в коде во время отладки.
Так это работает и в креаторе отлично.
21  Qt / Вопросы новичков / Re: Собственная IDE для Qt : Ноябрь 06, 2016, 19:12
Цитировать
но не помешали бы некоторые фичи из Delphi.
какие?
22  Qt / Вопросы новичков / Re: Собственная IDE для Qt : Ноябрь 06, 2016, 18:26
Они уже все назывались, смотрите creator, msvc, kdevelop, eclipse, delphi, а еще sublime ))))) Только для реальной оценки надо работать в этих средах с большими проектами, чтобы оценить код-анализ, фишки рефакторинга и удобство редактора, на Хелло Ворлд это нереально.
23  Qt / Вопросы новичков / Re: Собственная IDE для Qt : Ноябрь 06, 2016, 17:43
Скачай исходники QtCreator замени иконки, защити диплом и забудь про программирование. Ибо с такими вопросами как в первом посте не приступают к работе над серьезными вещами.

Для начала стоит посмотреть на все существующие ИДЕ и как следует их сравнить, потом понять, что лучше в одиночку и без знаний ничего не сделаешь, то есть конечный результат будет хуже любой из них по моему предположению, и опять же бросить программирование и продолжить пустотрепство.
24  Qt / Model-View (MV) / Re: QTableView внесение данных ячейки таблицы : Октябрь 29, 2016, 02:36
Кажется там надо установить (или по крайне мере проверить)  QAbstractItemView::AnyKeyPressed в void   setEditTriggers(EditTriggers triggers) для QTableView

Флаг битный:

QAbstractItemView::NoEditTriggers   0   No editing possible.
QAbstractItemView::CurrentChanged   1   Editing start whenever current item changes.
QAbstractItemView::DoubleClicked   2   Editing starts when an item is double clicked.
QAbstractItemView::SelectedClicked   4   Editing starts when clicking on an already selected item.
QAbstractItemView::EditKeyPressed   8   Editing starts when the platform edit key has been pressed over an item.
QAbstractItemView::AnyKeyPressed   16   Editing starts when any key is pressed over an item.
QAbstractItemView::AllEditTriggers   31   Editing starts for all above actions.
25  Qt / Model-View (MV) / Re: QTableView внесение данных ячейки таблицы : Октябрь 28, 2016, 01:42
В DataBaseModel не определен случайно метод flags, который по номеру колонки может убирать флаг редактирования?
26  Qt / Общие вопросы / Re: Загрузка модуля ядра : Октябрь 23, 2016, 14:29
При запуске ручками команда sudo - просит ввести пароль - так же? Если из программы это делать скорее всего она не получает пароль.
Для проверки можно свою программу запустить из под sudo. Скорее всего дочерний вызов так же будет из под sudo. Второй вариант внести свой сервис в список sudoers, чтобы на него sudo пароль не спрашивало. Если в этом конечно дело.
27  Qt / Общие вопросы / Re: QSqlQuery выполнение нескольких запросов подряд : Сентябрь 13, 2016, 14:46
Цитировать
Скажите а кеш данных модели, вы имейте ввиду просто список данных модели.
Кеш это данные модели, которые дублируют данные в бд.
28  Qt / Общие вопросы / Re: QSqlQuery выполнение нескольких запросов подряд : Сентябрь 09, 2016, 17:15
У вас в любом случае неправильный подход - вам надо в setData модели менять кеш данных модели, а уже потом применять эти изменения в БД. Если бы у вас была возможность управления транзакциями, то можно было бы прямо в setData выполнять запросы на изменение данных, но транзакцию подтверждать или отменять уже по команде пользователя по окончанию редактирования. Хранить экземпляры QSqlQuery в контейнере это точно не гуд...
29  Qt / Общие вопросы / Re: QSortFilterProxyModel и insertRow : Сентябрь 06, 2016, 22:41
Я кстати ошибся в QSqlTableModel InsertRows реализован и политика вставки там тоже работать должна. То есть в вашем случае как раз подойдет OnManualSubmit  если модель унаследована от QSqlTableModel. Ну или подобный механизм в своей модели реализовавыть. Или использовать транзакции.
30  Qt / Общие вопросы / Re: QSortFilterProxyModel и insertRow : Сентябрь 06, 2016, 22:22
Реализовать в своей модели InsertRows причем через этот собственный AddRow  и все заработает ))) Если все правильно делать AddRow должен быть приватным, а все внешние вызовы вставки строки как раз и должны быть через InsertRows ( и InsertRow, который через него реализован ).

Так мне надо чтобы вставка строк была реализована без обращения к базе.
Чтобы я мог добавить их, отредактировать, а затем если все ок, то сделать комит и
добавить их тем самым в базу.

Если модель унаследована от QSqlTableModel или ее наследников - можно использовать enum QSqlTableModel::EditStrategy - а именно вам в своей модели прийдется завести кеш и для значения этого энума OnManualSubmit - заносить данные лишь в кеш, а не в БД. Кейс по кешу будет именно в методе InsertRows, где и будет выбрано занести в БД сразу через AddRow или Занести только в кеш до вызова SubmitAll - когда весь несохраненный кеш заносить в БД - опять же через AddRow.

Этот убогий механизм есть в QtSql в связи с тем, что нет возможности прямой работы с транзакциями БД, точнее она есть в очень ограниченном виде. В идеальном варианте надо на уровне сервера БД все это делать, то есть проводить запросы, менять данные и т.д. в контексте текущей незавершенной транзакции, которая потом либо коммит, либо роллбак. Если Вы используете QSqlDatabase - то там есть метод transaction, который стартует транзакцию, и все созданные после этого QSqlQuery работают уже в ее контексте. Соответственно можно вызвать commit и rollback.

Цитировать
А по поводу insertRow.
 У меня класс модели унаследованный от QAbstractTableModel что-то тоже не работал.
Тоже false выдавал. Наверное я просто туплю. Обеспокоенный
Это понятно надо переопределять поведение InsertRows, чтобы оно что-то делало и не выдавало false.

Цитировать
Если сначала писать beginInsertRow() добавлять в список данных элемент  и endInsertRow() то тогда добавляется и норм. Но меня такой вариант не устраивает. Или я в чём-то заблуждаюсь. Непонимающий
beginInsertRows  и EndInsertRows вообще нужны в большей степени для блокировки и обновления вьюва. Чтобы он среагировал на то, что в модели появилась новая строка.

Вам надо определиться что именно Вы хотите - мое мнение, что при использовании моделей Qt в качестве базовых для своих моделей наследование виртуальной функции InsertRows обязательно, если модель редактируемая.
Страниц: 1 [2] 3 4 ... 57

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