crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

История благодарностей участнику Litkevich Yuriy ::: Спасибо сказали: 807 раз(а)
Дата поста: В теме: За сообщение: Спасибо сказали:
13.1.2014, 20:14 Непонятная строка
Цитата(Trisch @ 13.1.2014, 15:21) *
таким оператором "|=" не разу не сталкивался

Запись
A |= B
эквивалентна
A = A | B

Это оператор логического побитового ИЛИ.
Trisch,
26.12.2013, 19:03 QTableView очистка памяти
Цитата(mevn @ 24.12.2013, 14:40) *
Таблица очищается память не высвобождается

2) Qt не всегда возвращает память ОС (чтобы в следующий раз её не запрашивать);
3) ОС не всегда забирает высвободившуюся память у приложения в кучу (а вдруг приложение опять начнёт просить выделить память).
Посему простейшие средства оценки, типа диспетчера задач, для отслеживания подобных ситуаций не годятся.


во-первых:
прокрути цикл (в голове или на бумаге), какой элемент ты удаляешь во второй проход, в третий, ... ?
(не забывай, что с каждым циклом у тебя кол-во элементов уменьшается)
mevn,
26.11.2013, 13:52 собрать freetype
Цитата(good_game @ 25.11.2013, 0:29) *
Можно под windows библиотеку *.a пристыковать к проекту?
если под виндой собирал, то можно.
у *.a файлов две эпостаси:
- при создании динамической библиотеки, a-файл выполняет роль интерфейса к библиотеке (dll на Виндовозе), который линкером впихивается в программу;
- при создании библиотеки для статической сборки с приложением - код, который будет воткнут в приложение.


Цитата(good_game @ 25.11.2013, 1:10) *
Решение такое: freetype.a переименовываем в freetype.lib
вообще-то в Qt - кроссплатформенном инструменте - не принято делать такие НЕ кроссплатформенные ходы.

Принято делать без указания расширения, qmake сам дотямает, что брать нужно и куда совать. Как у тебя и указано:
LIBS += -L$$PWD/ -lfreetype


А вот нужность этого сомнительна:
PRE_TARGETDEPS += $$PWD/freetype ....
.
good_game,
23.11.2013, 20:08 Гарантия на деструктор.
К стати, нашёл у себя во фрагментах кода (заготовочках), такую штуку:
int main (...)
{
    int res = 0;
    {
        QApplication a(argc, argv);
        ...
        res = a.exec();
     }
     return res;
}
т.е. работать должно так: как только Qt приложение заканчивает работать, то QApplication::exec(), возвращает управление (цикл обработки событий прерывается). Затем происходит выход из области видимости (фигурные скобки), но функция main ещё не завершилась.
Этот трюк позволяет отработать всем нужным/полезным деструкторам до завершения функции main.
mezmay, Анна,
4.11.2013, 9:41 Проблема с запуском проекта собранного с Qt5 под windows
Его берут из каталога с Qt5: %QTDIR%\mingw47_32\plugins\
По аналогии с Qt4 (см. здесь)
Trisch,
2.11.2013, 13:03 Сигнал QIODevice::bytesWritten()
Цитата(Анна @ 1.11.2013, 12:08) *
1. ждать , когда прийдёт сигнал о записи остатка?
угу.
Я обычно завожу таймер (время вычисляю исходя из скорости передачи), а затем подсчитываю сколько уже отправлено, каждый раз при приходе сигнала о передаче, таймер сбрасываю.
Далее, если таймер сработал - что-то пошло не так и данные вовремя не переданы, если отправлено всё до сработки таймера - Ок.
Анна,
30.10.2013, 8:07 Отладочная информация не в среде.
Я использую MinGW и при отладочной сборке у меня в консоль всегда пишется такая информация.
ещё можно сделать принудительно появление консоли, в pro-файл добавить:
CONFIG += console
Анна,
24.10.2013, 19:42 DCTerminal - Моя первая Qt-программа
Я привык использовать UART по микроконтроллерному.
1) Настраиваю параметры
2) Разрешаю прерывания (читай, "открыл порт")
3) Обрабатываю прерывания.

Поэтому и когда делал обёртку над QxtSerialPort то интерфейс соответствующий предусмотрел. Если же настройки ни какие не ввести, а просто открыть порт, то грузятся предыдущие или те что вбиты в настройках системы. А когда столкнулся с библиотекой Дениса (kuzulis), то мне показалась она вверх ногами.
DruidCat,
21.10.2013, 16:57 Копирование и восстановление БД Firebird в Qt
Читай про Sweep-интервал
Steklova Olga,
1.9.2013, 7:07 рекурсивный поиск
oks, Посмотри нашу Вики: Работа с файлами и директориями
oks,
26.8.2013, 0:43 Сброка проекта qt5
может у тебя приложение собрано в отладочном режиме? Тогда библиотеки тебе нужны с буковкой d на конце
pharret31,
26.7.2013, 22:27 Ошибка в отлове события KeyPress для таблицы
Ну и мои 5 копеек:
Цитата(pharret31 @ 25.7.2013, 21:04) *
 QKeyEvent *keyEvent = (QKeyEvent *)evt;
отвыкай от такого приведения типа в Си++, оно однажды заставит твои мозги кипеть.
А в случае с Qt нужно вобще использовать qobject_cast<>()
pharret31,
23.7.2013, 11:33 Переход на Qt5
Цитата(pharret31 @ 23.7.2013, 6:08) *
я слышал, что setCodecForCStrings больше нет
ну он вроде как и вовсе не нужен.

По поводу плагинов читай документацию, там теперь используется макрос Q_PLUGIN_METADATA

Почитай на всякий случай статью The Transition from Qt 4.x to Qt 5

Может пригодится утилита автоматической переработки кода
Только почему её не сделали в составе библиотеки (как Qt3To4) не понятно.
pharret31,
12.7.2013, 16:19 Не отображаются картинки на пк, где не установлен Qt
Цитата(MishaUA @ 12.7.2013, 17:00) *
я поместил папку plugins в папку с программой, и с main.cpp сделал так:
в этом нет нужды, см. тут
MishaUA,
10.7.2013, 6:03 QGroupBox, adjustSize() скрывает длинный заголовок
см в сторону QWidget::setMinimumWidth()
MishaUA,
9.7.2013, 21:22 Сохранение нескольких Qstring в QByteArray
Цитата(MishaUA @ 9.7.2013, 16:39) *
так как у меня их более 100 и все разные))))
неудачное решение. При таком кол-во данных, настройки лучше в БД сохранять, тем более что есть SQLite.
MishaUA,
8.7.2013, 19:57 Сборка плагина Firebird для Qt под Ubuntu 12.04
Ну я не знаю что тебе посоветовать. Разве что посмотри в инклюдах FB упоминание isc_attach_database и тоже самое в исходниках плагина, может сигнатуры не сходятся.
academ1c,
8.7.2013, 17:27 Сборка плагина Firebird для Qt под Ubuntu 12.04
Цитата(academ1c @ 8.7.2013, 3:10) *
QtSql/private/qsqlcachedresult_p.h: Нет такого файла или каталога компиляция прервана.
ну нет у тебя инклюдов нужных.
раз уж ты скачал исходники Qt, то лучше конечно Qt этой версии и собрать.
Но можно попробовать обойти эту часть.
Есть Перл-сценарий syncqt (где он лежит в Лине я не знаю) в Винде он лежит каталоге %QTDIR%/bin
Для его корректной работы нужно чтобы переменная окружения %QTDIR% указывала на каталог с Qt (Опять про Линь ничего не знаю, так как там всё валяется по разным углам, так что сам ищи).

syncqt просматривает все исходники и на основе них собирает каталог %QTDIR%/include (в винде), к которому идут все зависимости плагинов и собственных программ.
academ1c,
5.7.2013, 15:35 Как правильно заканчивать работу с БД?
Цитата(Steklova Olga @ 5.7.2013, 15:29) *
Обязательно делать removeDatabase в конце программы? Что будет, если не сделать?
нет, не обязательно
Steklova Olga,
5.7.2013, 11:47 Сохранение нескольких Qstring в QByteArray
Цитата(MishaUA @ 5.7.2013, 13:26) *
Значит, мне можно объявить новый тип данных просто с помощью Q_DECLARE_METATYPE?
да
MishaUA,
27.6.2013, 20:21 QSqlQuery
Цитата(HochuNaCubu @ 27.6.2013, 18:40) *
добавленная строка получает максимальное значение в поле id, нахожу я его запросом такого типа:
в случае не монопольного доступа к БД, другое приложение может успеть вставить новые данные и, соответственно, максимальное значение id уже будет другим
HochuNaCubu,
20.6.2013, 5:11 Работы с widget'ами
сделай функцию членом класса Dialog
Evgeny,
18.6.2013, 18:50 QTableView сортировка по нескольким колонкам одновременно и пример chap14 multisort из книги Земскова "Qt4 на примерах"
Цитата(Steklova Olga @ 18.6.2013, 14:24) *
Так я правильно поняла, что Вы ...
предлагаете переопределить метод select() у модели, унаследованной от QSqlTableModel ?
нет.
идея была простая:
Цитата(Litkevich Yuriy @ 15.6.2013, 16:36) *
добавить собственную функцию для задания полей сортировки, например: setOrderField(QStringList)
дальше, нужно было заглянуть в метод select() чтобы понять, как на него влиять. Из приведённого тобой кода видно, что метод select() использует в качестве запроса результат метода selectStatement() его нужно будет переопределить,
но ты уже сама до этого дошла:
Цитата(Steklova Olga @ 18.6.2013, 14:24) *
Чтобы это сделать, переопределяем метод selectStatement(), метод select() не переопределяем.
осталось сделать метод setOrderField(QStringList), который позволит сделать твою модель гибче (её не надо будет переписывать в будущем)

Цитата(Steklova Olga @ 18.6.2013, 14:24) *
В исходнике QSqlTableModel::select() я не понимаю:
- что такое Q_D(QSqlTableModel); ...
- как добраться до d, чтобы обратиться к d->db ? ...
- что делать с d->initRecordAndPrimaryIndex() ? ...
...
d, Q_D(QSqlTableModel) - это из области d-указателей/Pimpl
Они используются, чтобы создать вспомогательный класс описывающий "потраха" данного класса. А он, в свою очередь, чтобы обеспечить двоичную совместимость разделяемых библиотек (dll-ок для Виндовоза) от версии к версии.
Положим у нас есть QCore.dll версии 4.4 если мы его усовершенствуем до версии 4.5, то хотим, чтобы программы собранные с 4.4 работали и с dll-ками 4.5.
Но всякий раз когда мы добавляем виртуальный метод в класс, результат компиляции (двичный фал dll-ки) будет несовместим с предыдущей версией и программа скомпилированная с предыдущей версией dll-ки откажется работать.

Для сохранения возможности изменения класса не изменяя его интерфейс придумали вспомогательный класс в котором вся каша и варится.

d-указатели в официальной Qt Wiki (англ.)
Steklova Olga,
15.6.2013, 14:09 QDialog в качестве элемента управления
Лучше б, конечно, не помещать диалог в качестве виджета, а делать виджет, который можно поместить в другой виджет или в диалог.
Но если припёрло, то попробуй установить флаг Qt::Widget
dialog->setWindowFlags(Qt::Widget)
Алексей1153,
12.6.2013, 7:32 Как работать с таблицей, содержащей уникальный набор значений типа double?
Steklova Olga, Уникальность ключа не зависит от типа данных, задаётся она как описал alex977.
Цитата(Steklova Olga @ 11.6.2013, 12:18) *
4) можно ввести значение типа NUMERIC(8,2) с помощью doubleSpinBox?
В Qt (и не только) с этим проблема. Qt не может обрабатывать все типы СУБД, т.к. в Си++ свои типы. Поэтому работа идёт со строкой, которую Qt пытается ограничить до заданных пределов при записи в БД, но не в момент редактирования.
Лучше для подобных типов сразу писать делегат, который не даст пользователю выйти за рамки дозволенного.
Steklova Olga,

30 страниц V  < 1 2 3 4 > » 
RSS Текстовая версия Сейчас: 11.12.2019, 9:05