Здравствуйте, гость ( Вход | Регистрация )
Дата поста: | В теме: | За сообщение: | Спасибо сказали: | ||
---|---|---|---|---|---|
15.7.2015, 17:43 | QVariant data() роли. | Цитата Я правильно понимаю? Это так ?? Есть две точки зрения 1. С точки зрения представления - внешний интерфейс модели: У нас есть модель, неважно где мы ее взяли:
в которой три строки
в которой есть один столбец
получим индекс первой строки первого столбца
получим данные для этого элемента
теперь напишем в нужной ячейке текст, который мы получили ("29") если пользователь навел мышку в ячейку, покажем подсказку ("Это число!") не будем рисовать иконку, модель ничего не вернула 2. Та же самая модель, вид изнутри
|
Ponchikus, | ||
15.7.2015, 16:40 | QVariant data() роли. | Цитата К примеру навели мышкой на элемент данных 29, и представление вызывает функцию data() с ролью подсказки (Qt :: ToolTipRole) т.е. передает в функцию индекс модели и константу 13. Это верно. Цитата и именно от этого элемента представление вызывает роли? Нужно прояснить, что значит "вызывает роли", пока я не понял Цитата И вот по третьему пункту не совсем понятно вот это -- "Роль указывает модели, данные какого типа будут переданы." Какие данные ?? QVariant, который вернется из функции data. |
Ponchikus, | ||
15.7.2015, 10:08 | QVariant data() роли. | 1. Стандартные роли используются стандартными видами в Qt Здесь описано для чего нужна каждая http://doc.qt.io/qt-4.8/qt.html#ItemDataRole-enum Минимально необходимая это Qt::DisplayRole Роли не вызываются, это просто числа. Представьте что скаждым элементом модели у вас ассоциировано некоторое количество данных: - текст который показывается пользователю - картинка - подсказка Когда мы говорим модели дай нам данные для элемента Х, мы указываем для чего именно нам нужны данные Qt::DisplayRole - текст, покажем пользователю, модель должна вернуть текст Qt::DecorationRole - картинку нарисуем, модель должна вернуть картинку Qt::ToolTipRole - подсказку по данному элементу 2. Функцию data может вызвать кто угодно, обычно ее вызывает вид(представление) Эта функция как раз для того чтобы получить данные которые содержит модель. 3. Обязательных ролей нет, но если не обеспечить хотя бы Qt::DisplayRole или Qt::DecorationRole, то ничего не отобразится. Вот хорошее описание http://doc.qt.io/qt-4.8/modelview.html |
Ponchikus, | ||
8.7.2015, 23:29 | Вытащить индекс из модели для мапера | Цитата Дык это я у модели хотел спросить, какую строку она отображает, что-бы с неё взять ключ и по нему заполнить диалог... Модель не отображает никакой строки. Конкретная строка отображается именно во вью, в данном случае QWidgetMapper. QWidgetMapper же и отвечает за заполнение подотчетного виджета. Какая строка конкретно выделена для этого диалога можно спросить у того вью, в котором выделяются строки и потом сделать setCurrentIndex() на нее. Цитата Нужно что-бы в зависимости от значения поля в БД QComboBox сам выбирал нужную строку, по номеру, типа switch-а ? Это автоматически делает QWidgetMapper. |
JohnZ, | ||
7.7.2015, 16:33 | QSerialPort | Цитата А вот еще один вопрос, что если мне приходящие куски пакетов анализировать и искать в них два байта, которые отвечают за тип сообщения, если два байта найдены, считывать оставшуюся часть пакета, В принципе нормальный подход, главное не перепутать эти два байта с двумя байтами данных, которые выглядят так же. |
leonneon_89, | ||
24.5.2015, 19:05 | Запись AT команд в виртуальный COM-порт | Возможны два варианта, 1. Все байты записаны ДО вызова wait 2. Запись длится дольше 200 мс Попробуйте убрать таймаут, и посмотрите что получится. Если все равно возвращает false, значит первый вариант. |
Lya_Inventor, | ||
20.5.2015, 23:50 | QSortFilterProxyModel + QAbstractItemModel + QTreeView | У меня все работает Смотрите прикрепленный проект. Скорее всего ошибка здесь:
Нельзя хранить индексы, если очень нужно используйте: http://doc.qt.io/qt-4.8/qpersistentmodelindex.html |
flankerr, | ||
16.5.2015, 22:21 | Внешний вид формы | Смотрите в сторону QSortFilterProxyModel http://doc.qt.io/qt-4.8/qsortfilterproxymodel.html При выборе изменяете критерии фильтрации. http://doc.qt.io/qt-4.8/qt-itemviews-basic...el-example.html http://doc.qt.io/qt-4.8/qt-itemviews-custo...el-example.html |
shushunya, | ||
15.5.2015, 9:12 | firebird, insert возвращает ошибку -1, строку вставляет | Возможно дело в том, что: http://doc.qt.io/qt-4.8/qsqlquery.html#QSqlQuery-2 Цитата Constructs a QSqlQuery object using the SQL query and the database db. If db is not specified, or is invalid, the application's default database is used. If query is not an empty string, it will be executed. А затем ваш exec пытается вставить второй элемент с таким же id. Попробуйте использовать prepare. |
gvenihvivar, | ||
17.4.2015, 17:05 | firebird. Подключиться к серверу | Используйте isc_dsql_execute_immediate() из InterbaseAPI http://www.ibphoenix.com/downloads/60ApiGuide.zip Или попробуйте просто выполнить запрос через QSqlQuery. |
rich, | ||
14.4.2015, 21:35 | QSqlRelationalTableMode, сортировка выпадающего списка в QTableView | У меня сортирует, см. вложение Единственный подвох - если foreign key в дочерней таблице называется как один из столбцов в основной, его шатает. |
maint, | ||
22.3.2015, 23:45 | QMimeData, помогите люди добрые. | В файл datamodels.cpp надо добавить #include <QMimeData> Эта ошибка означает, что класс QMimeData был forward-declared, но не определен. Компилятору нужно знать определение класса чтобы правильно сгенерировать вызов функции-члена. |
DruidCat, | ||
12.3.2015, 1:37 | OpenGL4.3 в Qt5.1 - подключение функций | http://doc.qt.io/qt-5/qopenglcontext.html#versionFunctions То что вы используете, возвращает только для GL ES 2 В paintGL происходит перерисовка, там не нужно каждый раз создавать контекст. Все как то в кучу свалено, почитайте например http://doc.qt.io/qt-5/qtgui-openglwindow-example.html |
wf778899, | ||
27.2.2015, 9:33 | Перенос строки из одного tableview в другой после двойного нажатия мышки | Вот здесь http://doc.qt.io/qt-5/qabstracttablemodel.html#details под заголовком Subclassing перечисленны те методы, которые надо реализовать. Вот тут простой пример реализации: http://doc.qt.digia.com/4.6/itemviews-addressbook.html |
lexflax, | ||
26.2.2015, 10:06 | подклассы Singlton | Цитата Получаются перекрестные ссылки, и я не нашел решения, как их развязать. Что скажете, сможете предложить решение? или это я не понял ваших комментариев? Все нормально, нет перекрестных ссылок Раскрывающийся текст class1.h
class1.cpp
class2.h
class2.cpp
|
call_me_Frank, | ||
17.2.2015, 20:25 | считывание таблицы из xls (Excel) | Фишка в том, что Range() возвращает двумерный массив, т.е. вектор векторов. Доставать как то так
Используйте List1-3 напрямую, зачем вам копировать данные второй раз? |
pfuser, | ||
17.2.2015, 19:27 | Перенос строки из одного tableview в другой после двойного нажатия мышки | Переопределите свой класс наследник от QAbstractTableModel, я просто поленился. http://doc.crossplatform.ru/qt/4.7.x/model...rogramming.html |
lexflax, | ||
17.2.2015, 0:20 | Перенос строки из одного tableview в другой после двойного нажатия мышки | Что то по типу вложения: |
lexflax, | ||
16.2.2015, 23:41 | чтение txt файла кусками | Цитата Получается считывает тоже весь файл? Нет, файл это не последовательное устройство. Цитата Как запомнить позицию? qint64 pos = file.size(); Цитата хм не знаю, если даже прога и перечитает файл сначала, то поиск будет идти только с новых строк. Это почему это? Цитата buffer.open(QIODevice::WriteOnly); Открыть файл только для записи. Нужно для чтения. Цитата а как в pos() передать последнюю позицию (конец файла)? file.seek(pos) |
Aleksei, | ||
8.2.2015, 21:07 | Синхронизация двух QScrollArea. | Добавьте в начало файла
|
Valter, | ||
8.2.2015, 17:46 | Перенос строки из одного tableview в другой после двойного нажатия мышки | Вам нужно обновить таблицу в БД, а потом обновить модель. Т.е. физически с помощью SQL переносити запись между таблицами, а потом обновлять модель. Либо использовать QSqlTableModel уоторая позволяет обновлять данные через setData. |
lexflax, | ||
3.2.2015, 13:17 | делагат для QTableWidget |
И в получателе
Либо как предлагали выше, отнаследовать свою кнопку. |
borune, | ||
16.1.2015, 20:07 | Создание форм | Цитата 0. Пример калькулятора? Никто не мешает совмещать рисование форм и процедурную генерацию элементов, вообще если формы сложные/сильно нестандартные лучше использовать QML. Цитата 1. Надо будет изучить... Там тот же ECMAScript, довольно просто все. Цитата 2. Ничего не знаю про это А вот это зря |
ht1515, | ||
16.1.2015, 19:19 | Создание форм | Реально, но мне не очень понравилось. -1. Если используете какой-либо скриптовый язык, делайте лучше программу в форме расширенного интерпретатора языка, а не в виде программы, которая исполняет куски кода через eval, так будет гораздо удобнее. 0. Рисовать формы все равно придется кодом qscript, не проще ли в дизайнере? Сделайте нужные компоненты для дизайнера и пользуйтесь. 1. qscript хорош в связке с QML, если ваши формы динамические, используйте QML. 2. или возьмите PySide или любой другой биндинг. |
ht1515, | ||
11.1.2015, 13:52 | Сложная синхронизация | Ну во первых, можно использовать обычный QMutex, я не думаю что он будет сильно хуже самопального. Во вторых, заводите два значения например(это упрощенный мутекс)
Потом лочите структуру
В третьих можно использовать две одинаковых структуры и один QAtomicPointer, суть такая - меняем структуру на которую не указывает указатель в данный момент, и с тех пор больше не трогаем структуру, это в принципе упрощенный вариант того, что предложила Iron Bug, т.е. кольцевой буфер из двух элементов, возможно потребуется завести два буфера - один для входящих данных, один для исходящих. |
mezmay, | ||
Текстовая версия | Сейчас: 19.4.2024, 0:25 |