Вопросы с тегами [qt5]

1

голосов
1

ответ
12

Просмотры

редактирование QAbstractTableModel без очистки предыдущих данных в ячейке

Я создал модель, основанную офф QAbstractTableModel, что позволяет пользователю редактировать данные в этой модели. Модель отображается в QTableView в QMainWindow. До сих пор в моей модели я могу сделать клетки для редактирования, и сохранить те типы пользователей после редактирования закончено. Проблема в том, что, когда пользователь начинает редактирование, это очищает 'предыдущего содержимого этой ячейки. Так что, если, например, я только хотел, чтобы изменить написание строки в ячейке, я должен заново ввести все значения. Я хотел бы при редактировании, что редактор будет начинаться с данными, уже в модели, а не пустой. Как я могу это сделать? Пример вопроса: Перед тем, как начать редактирование ячейки: Как только я начала редактирования, ячейка пуста. Я хотел бы, чтобы это звезда с предыдущим значением уже в модели: Вот минимальный пример моей модели. Моя текущая модель намного больше и использует-структуру, а не просто 2D массива QVariants для хранения данных. Заголовок: Const INT COLS = 2; константные INT ЧСТРОК = 6; Класс EditableTableModel: общественный QAbstractTableModel {Q_OBJECT частное: QVariant tableData [РЯДЫ] [COLS]; общественности: EditableTableModel (QObject * родитель = nullptr); INT ROWCOUNT (Const QModelIndex & родитель = QModelIndex ()) Const переопределение; INT ColumnCount (Const QModelIndex & родитель = QModelIndex ()) Const переопределение; QVariant данные (Const QModelIndex & индекс, Int Роль = Qt :: DisplayRole) Const переопределение; BOOL SetData (Const QModelIndex & индекс, Const QVariant & значение, Int Роль = Qt :: EditRole) переопределение; QVariant headerData (интермедиат раздел, Qt :: ориентации Ориентация, Int роль) Const переопределение; Qt :: ItemFlags флаги (Const QModelIndex и индекс) Const переопределение; сигналы: editCompleted недействительными (QString); }; Реализация: EditableTableModel :: EditableTableModel (QObject * родитель): QAbstractTableModel (родитель) {} INT EditableTableModel :: ROWCOUNT (Const QModelIndex & / * родитель * /) сопзЬ {вернуть дах; } INT EditableTableModel :: ColumnCount (Const QModelIndex & / * родитель * /) сопзЬ {вернуть COLS; } QVariant EditableTableModel :: данные (Const QModelIndex & индекса, Int роль) сопзЬ {INT = строка index.row (); INT Col = index.column (); переключатель (роль) {случай Qt :: DisplayRole: вернуть tableData [строки] [Col]; } Вернуть QVariant (); } BOOL EditableTableModel :: УстановитьДанные (Const QModelIndex и индекс, Const QVariant & значение, внутр роль) {если (роль == Qt :: EditRole) {если вернуться ложным (checkIndex (индекс)!); tableData [index.row ()] [индекс. колонка ()] = значение; возвращает истину; } Вернуться ложным; } QVariant EditableTableModel :: headerData (интермедиат раздел, Qt :: ориентация ориентирование, внутр роль) сопзЬ {если (роль == Qt :: DisplayRole && ориентация == Qt :: Horizontal) {переключатель (раздел) {случай 0: возвращение QString ("Имя"); Случай 1: возвращение QString ( "Last Name"); }} Вернуть QVariant (); } Qt :: ItemFlags EditableTableModel :: Флаги (Const QModelIndex и индекс) сопзЬ {вернуть Qt :: ItemIsEditable | QAbstractTableModel :: флаги (индекс); } Горизонтальный) {переключатель (раздел) {случай 0: возвращение QString ( "Имя"); Случай 1: возвращение QString ( "Last Name"); }} Вернуть QVariant (); } Qt :: ItemFlags EditableTableModel :: Флаги (Const QModelIndex и индекс) сопзЬ {вернуть Qt :: ItemIsEditable | QAbstractTableModel :: флаги (индекс); } Горизонтальный) {переключатель (раздел) {случай 0: возвращение QString ( "Имя"); Случай 1: возвращение QString ( "Last Name"); }} Вернуть QVariant (); } Qt :: ItemFlags EditableTableModel :: Флаги (Const QModelIndex и индекс) сопзЬ {вернуть Qt :: ItemIsEditable | QAbstractTableModel :: флаги (индекс); }
DaveK
1

голосов
0

ответ
126

Просмотры

Qt5. Как загрузить схему XSD из resources.qrc?

Я хочу, чтобы загрузить схему XSD из моего файла resources.qrc. Эта часть из * .qrc: XML / My-custom.xsd Это XSD правомочно (проверено на W3C валидатор)! Я не хочу загрузить эту схему из локального файла. Потому что я хочу собрать его в качестве ресурса. Моя цель: один исполняемый файл без других файлов и не требуется установка (только с помощью * .so). Я смотрю документацию Qt (QXmlSchema), и здесь мы имеем 3 способа для загрузки: Ие нагрузки (Const QUrl и источник) BOOL нагрузки (QIODevice * источник, сопзИте QUrl & documentUri = QUrl ()) BOOL нагрузка (Const QByteArray & данные, Const QUrl & documentUri = QUrl ()) Я стараюсь: QXmlSchema схемы; schema.load (QUrl ( ": / XML / мой-custom.xsd")); Но она всегда недействительна. Я полагаю, что это недопустимое значение для QUrl. Или же? Как исправить данные передачи ресурсов в этом методе (ы) погрузок? Возможно? UPD: Извините за глупый вопрос. Оно работает: QFile SchemaData ( ": / XML / мой-custom.xsd"); QXmlSchema схемы; schemaData.open (QFile :: ReadOnly); schema.load (schemaData.readAll ());
Deep
1

голосов
0

ответ
189

Просмотры

понижение интервала QT-5,7 до QT-5.4 в Yocto (Morty 2.2) для nitrogen6sx

Я компиляция Yocto источника для nitrogen6sx и попытаться понизить версию QT с QT-5,7 для Qt-5.4and Я получаю ниже ошибки нажмите на ссылку для полной ошибки qt_base eroor шаги вниз класса: VI qt5-git.inc изменить версию Имя сделать [4]: ​​*** [.obj / qkmsintegration.o] Ошибка 1 | сделать [4]: ​​Выход каталог `/home/siva/yocto/imx6s_morty/morty/boundary-eval-image/tmp/work/armv7at2hf-neon-mx6qdl-fslc-linux-gnueabi/qtbase/5.4.2+gitAUTOINC+2cb17c1fb9 -R 0 / сборки / SRC / плагины / платформы / км | сделать [3]: *** [суб-км-make_first] Ошибка 2 | сделать [3]: *** Ожидание незавершенных работ .... | составление .moc / moc_qlinuxfbscreen.cpp | гт -f libqlinuxfb.so | связывая ../../../../plugins/platforms/libqlinuxfb.so | мв -f libqlinuxfb.so ../../../../plugins/platforms/ | сделать [4]: Оставляя каталог `/home/siva/yocto/imx6s_morty/morty/boundary-eval-image/tmp/work/armv7at2hf-neon-mx6qdl-fslc-linux-gnueabi/qtbase/5.4.2+gitAUTOINC+2cb17c1fb9-r0/build/ SRC / плагины / платформы / linuxfb»| сделать [3]: Выход каталог `/home/siva/yocto/imx6s_morty/morty/boundary-eval-image/tmp/work/armv7at2hf-neon-mx6qdl-fslc-linux-gnueabi/qtbase/5.4.2+gitAUTOINC+2cb17c1fb9 -R 0 / сборки / SRC / плагины / платформы | сделать [2]: *** [суб-платформа-make_first] Ошибка 2 | сделать [2]: Выход каталог `/home/siva/yocto/imx6s_morty/morty/boundary-eval-image/tmp/work/armv7at2hf-neon-mx6qdl-fslc-linux-gnueabi/qtbase/5.4.2+gitAUTOINC+2cb17c1fb9 -R 0 / сборки / SRC / плагинов | сделать [1]: *** [суб-плагинов-make_first] Ошибка 2 | сделать [1]: Выход каталог `/home/siva/yocto/imx6s_morty/morty/boundary-eval-image/tmp/work/armv7at2hf-neon-mx6qdl-fslc-linux-gnueabi/qtbase/5.4. 2 + gitAUTOINC + 2cb17c1fb9-r0 / сборки / ЦСИ»| сделать: *** [суб-Src-make_first] Ошибка 2 | ОШИБКА: Функция не удалось: do_compile (лог-файл находится по адресу
rehana
1

голосов
0

ответ
130

Просмотры

Qt HTTP запрос через Unix сокет

Я использую Qt5 QNetworkAccessManager для создания запроса HTTP. Однако я хочу, чтобы иметь возможность подключения к UNIX сокет вместо HTTP: // хост: порт /. Я исследовал некоторые обходные пути для решения этой проблемы и попытался унаследовать QNetworkAccessManager, и переопределить createRequest виртуальный метод, но проблема заключается в том, что большая часть логики для постобработки внутри производного класса QNetworkReplyHttpImpl, который достаточно велик. У меня есть некоторые требования избегать прикосновений к SDK Qt5 избежать копирований слишком много коды из QNetworkReplyHttpImpl и реализовать голые кости QNetworkReply абстрактного класс и использовать QLocalSocket. qhttpclient кажется, как вариант, но он не будет наклеить красиво с остальными классами Qt5, или, вернее, мне нужно немного больше клея логику, чтобы соответствовать с остальной частью моего приложения. Какие-либо предложения?
WinterS
1

голосов
0

ответ
736

Просмотры

QML ListView - Limit the number of items displayed in the list

У меня есть ListView ListModel с 10 ListElements, я хочу ListView, чтобы отобразить первую ListElement от модели. Есть ли способ ограничить количество ListElement элементов, которые отображаются или выберите ListElement для отображения с идентификатором в данных? Пример ListModel: ListModel {ID: homeMenuModelData ListElement {имя: "Сэм Wise очень мудрый человек" номер: "555 0473"} ListElement {имя: "Билл Смит" номер: "555 3264"} ListElement {имя: «Джон Браун "номер: "555 8426"}} На ListView: ListView {anchors.fill: родитель интерактивными: ложная модель: HomeMenuModel делегат: homeMenuDelegate выделить: Rectangle {цвет: "lightsteelblue"; Радиус: 5} фокус: истинно} I» м думать что-то вроде этого было бы полезно для меня: model.clear (); для (вар я = 0; я <bookList.length; ++ я) {model.append (Booklist [I]); } ****** ****** Обновлено Принадлежит к @folibis (ниже комментариев) за предложение, хорошее объяснение здесь использования DelegateModel и filterOnGroup: Можно ли показывать только определенные показатели ListView QML в?
CLiown
1

голосов
1

ответ
224

Просмотры

Get QJsonObjects from QJsonarray without array name

для (INT х = 0; х <query.record () рассчитывать ();. х ++) {recordObject.insert (. query.record () FIELDNAME (х), QJsonValue :: fromVariant (query.value (х))) ; } RecordsArray.push_back (recordObject); } Json.setArray (recordsArray); вернуть json.toJson (); как я могу получить FName, LName от всех динамических объектов. я хочу использовать Qt класс, потому что я творю на стороне клиента для андроида в Qt. Я использую QT5.9.2 на окнах любой пример ........ для (INT х = 0; х <query.record () рассчитывать ();. х ++) {recordObject.insert (. query.record () FIELDNAME (х), QJsonValue :: fromVariant (query.value (х))) ; } RecordsArray.push_back (recordObject); } Json.setArray (recordsArray); вернуть json.toJson (); как я могу получить FName, LName от всех динамических объектов. я хочу использовать Qt класс, потому что я творю на стороне клиента для андроида в Qt. Я использую QT5.9.2 на окнах любой пример ........ я хочу использовать Qt класс, потому что я творю на стороне клиента для андроида в Qt. Я использую QT5.9.2 на окнах любой пример ........ я хочу использовать Qt класс, потому что я творю на стороне клиента для андроида в Qt. Я использую QT5.9.2 на окнах любой пример ........
Bino Royals
1

голосов
0

ответ
183

Просмотры

PyQt5 QHeaderView :: стрелка вверх стили не работает

Python 3, Самая последняя версия PyQt5 (C ++ Ответов приемлемы) Использование общего QTableWidget Я использую темный тематический графический интерфейс с QTableWidget и пытаюсь изменить внешний вид сортировки стрелок на заголовках, так как они являются темным цветом , Я не могу заставить их работать должным образом. Изменение цвета шрифта для QHeaderView :: стрелка вверх ничего не влияет. Изменение цвета фона преобразует его в небольшой прямоугольник заданного цвета без каких-либо стрелок. Qt есть пример о том, как стилизовать QHeaderView стрелки здесь: http://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qheaderview Когда я заменить изображение, как показано в примере, оказывается на самом деле, на самом деле мало. Добавление высоты и ширины не делает ничего. Кроме того, я попытался переместить стрелку в другие места с помощью «SubControl-позиции: справа от центра;» Насколько я' ве видел в других примерах никакого эффекта. Все, что я действительно хочу сделать, это стрелка белый и, возможно, немного больше, чем по умолчанию для видимости. Я могу использовать изображение, если это необходимо. Было бы неплохо иметь возможность перемещать стрелку, как хорошо, но я могу жить без этого. Если ваше решение включает подклассы QHeaderView и перезапись события рисования или работу с Proxies, пожалуйста, привести примеры того, что делать, как я не очень хорошо знаком с этими темами. Edit: Generic темного тематическое QTableWidget с помощью Qt Designer с изображением. Переустроенный в питон с помощью pyuic5. main.py (Запустить этот файл) # - * - кодирование: UTF-8 - * - # форма реализации генерируется от чтения файла 'щ main.ui' # # Создано: PyQt5 UI кода генератора 5,6 # # ВНИМАНИЕ! Все изменения, сделанные в этом файле будут потеряны! от PyQt5 импорта QtCore, QtGui, )) Пункт = self.tableWidget.item (2, 0) item.setText (_translate ( "MainWindow", "3")) Пункт = self.tableWidget.item (2, 1) item.setText (_translate ( "MainWindow" "джордж")) self.tableWidget.setSortingEnabled (__ sortingEnabled) импорт Resources_rc если __name__ == "__main__": импорт SYS приложение = QtWidgets.QApplication (sys.argv) MainWindow = QtWidgets.QMainWindow () щ = Ui_MainWindow () щ. setupUi (MainWindow) MainWindow.show () sys.exit (app.exec_ ()) файл ресурсов Qt, содержащий up_arrow.png изображение преобразуется в питон с помощью pyrcc5. Помещенный в той же директории, что main.py. Необходимо назвать следующие, как "Resources_rc.py": # - * - кодирование: UTF-8 - * - # ресурсов объектного кода # # Создано: Компилятор ресурсов для PyQt5 (Qt v5.6.2) # # ВНИМАНИЕ! Все изменения, сделанные в этом файле будут потеряны! от PyQt5 импорта QtCore qt_resource_data = Ъ "\ \ x00 \ x00 \ x00 \ x81 \ \ x89 \ \ x50 \ x4e \ x47 \ x0D \ x0a \ x1a \ x0a \ x00 \ x00 \ x00 \ x0D \ x49 \ x48 \ x44 \ x52 \ x00 \ \ x00 \ x00 \ x18 \ x00 \ x00 \ x00 \ x18 \ x08 \ x04 \ x00 \ x00 \ x00 \ X4A \ x7E \ xf5 \ x73 \ \ x00 \ x00 \ x00 \ x48 \ x49 \ x44 \ x41 \ x54 \ x38 \ XCB \ x63 \ x60 \ x18 \ x05 \ x83 \ x18 \ \ хк \ x6f \ XF8 \ XDF \ x40 \ X9a \ x72 \ x10 \ x68 \ x20 \ x45 \ xf9 \ x1f \ x20 \ x24 \ x4e \ \ x0b \ x58 \ xf9 \ ХеР \ XFF \ x61 \ XFF \ xc3 \ x89 \ XD2 \ x02 \ x53 \ x0e \ x66 \ x13 \ xd6 \ \ x02 \ x55 \ x1e \ x0a \ xe7 \ x13 \ XD2 \ x02 \ xd4 \ xf0 \ XFB \ x7f \ x08 \ X8A \ x08 \ x48 \ \ x4b \ x1d \ x3e \ X3B \ XB4 \ x08 \ x8b \ x8c \ x82 \ xc1 \ x00 \ x00 \ xa1 \ x30 \ x49 \ xa2 \ \ x19 \ xa1 \ Xab \ xc2 \ x00 \ x00 \ x00 \ x00 \ x49 \ x45 \ x4e \ x44 \ XAE \ x42 \ x60 \ x82 \ \ "qt_resource_name = Ь" стрелка вверх {субэлемент положение: справа от центра; }
Joshua Hendrix
1

голосов
3

ответ
286

Просмотры

Qt - окно Предотвращение изменения размеров при перемещении строки заголовка

Я хочу, чтобы мое окно всегда быть максимальным. Я пытаюсь настройки: setWindowFlags (Qt :: Window | Qt :: WindowMinimizeButtonHint | Qt :: WindowCloseButtonHint); (...) showMaximized (); setMinimumSize (QSize (ширина (), высота ())); setFixedSize (QSize (ширина (), высота ())); Таким образом, открывается окно развернуто, но я все еще могу нажать строку заголовка и перетащите его вниз. При этом ОС Windows (10) изменении размеров окна из развернутого состояния в нормальное состояние. Как я могу отключить это поведение для моего окна?
zupazt3
1

голосов
1

ответ
266

Просмотры

Как скомпилировать Qt5 QOCI плагин на Linux с Oracle клиента 12?

Официальная документация должна сделать трюк, а не для меня: CD $ QTDIR / qtbase / SRC / плагины / sqldrivers QMAKE - OCI_INCDIR = / USR / включать / оракул / 10.1.0.3 / клиент OCI_LIBDIR = / USR / Lib / оракул / 10,1 .0.3 / клиент / Lib делают суб-OCI Что я пробовал: кд / Opt / Qt5 / qtbase / SRC / плагины / sqldrivers QMAKE - OCI_INCDIR = / Opt / оракул / дб / прод / 12.2.0 / RDBMS / общественного OCI_LIBDIR = / Opt / оракул / дб / прод / 12.2.0 / Lib делает суб-OCI Они предполагают, что мы установили RPM пакеты мгновенного SDK Client Package, и я не в этом случае. Я не знаю, как был установлен клиент, но у меня нет никаких установленных пакетов имен Oracle.
Opena
1

голосов
1

ответ
32

Просмотры

Как обновить QGraphicsView в QT, когда клиент подключен?

У меня есть проблема с обновлением QGraphicsView. Когда я называю свою фикцию недействительным drawConnection () в классе MYSERVER, где я должен обновить свой QGraphicsView это не работает, но функция у меня есть qDeubg () и звонит. Как я понял, что проблема не в вызове функции. mainwindow.h #ifndef MAINWINDOW_H #define MAINWINDOW_H # include # include # include # include # include # include Пространство имен {Ui класс MainWindow; } Класс MainWindow: общественный QMainWindow {Q_OBJECT общественности: явное MainWindow (QWidget * Родитель = 0); ~ MainWindow (); статическая MainWindow * GetInstance (QWidget * родитель = 0); INT matrix_ [10] [10]; INT fire_ [10] [10]; INT MyLife = 10; общественности: Ui :: MainWindow * щ; Статическая MainWindow * MainInstance; QGraphicsScene * сцена; QGraphicsEllipseItem * Эллипс; QGraphicsRectItem * прямоугольник; QGraphicsTextItem * _Текст; QGraphicsTextItem * подключение; аннулированию mousePressEvent (QMouseEvent * эв); общественности: // матрица аннулируется рисунок (); createMatrix недействительными (); creatShip недействительными (); // огонь недействительным createFireMatrix (); аннулированию drawingFire (); // жизнь аннулируются drawingYourLife (); общественности: // Conection пустота drawConnection (); drawDisConnection недействительными (); }; #endif // MAINWINDOW_H mainwindow.cpp MainWindow :: MainWindow (QWidget * Родитель): QMainWindow (родитель), Ui (новый Ui :: MainWindow) {ui-> setupUi (это); } MainWindow * MainWindow :: MainInstance = 0; MainWindow * MainWindow :: GetInstance (QWidget * Родитель) {если (MainInstance == NULL) {MainInstance = новый MainWindow (родитель); } Вернуть MainInstance; } Недействительного MainWindow :: drawConnection () {QDebug () setScene (сцены); QFont seriFont ( "Таймс", 30, QFont :: жирный шрифт); соединение = scene-> AddText (»
Nafe Kzir
1

голосов
3

ответ
570

Просмотры

Как избежать тайм-аута на QSerialPort при обращении с высокой скоростью данных

Я работаю над приложением окна, которое получает данные от датчика на 600Гц. В двух из пяти случаев, мой IO поток считывает 4 байт данных от датчика успешно и передает его в GUI поток. Проблема состоит в три из пяти раз, QSerialPort имеет необъяснимые таймаут, где waitForReadyRead QSerialPort (в) возвращает ложь и serial.errorString () имеет ошибку тайм-аута. В этом случае он никогда не будет читать данные. Если я читаю из последовательного порта, несмотря на ошибки тайм-аута я прочитаю 2000+ байт данных в следующем waitForReadyRead, которые будут поставляться в кусках, которое делает в реальном времени приема данных аспект моего приложения устарели. Я попытался с помощью сигнала readyRead () последовательного порта, но он имеет такое же поведение ИЭ. если появляется ошибка тайм-аута, никакого сигнала readyRead () не когда-либо уволен. ОБНОВИТЬ: Я могу воспроизвести проблему с терминалом, например в Qt ([QT_INSTALL_EXAMPLES] / SerialPort / терминале), который использует нелипкие чтения. Частота ошибки значительно меньше, но это, безусловно, все еще там. UPDATE: Использование последовательного порта монитора, я могу видеть, что, когда она застревает, то Qt Terminal Пример застревает на IOCTL_SERIAL_WAIT_ON_MASK, мой пример застревает на IRP_MJ_WRITE вниз только после IOCT_SERIAL_WAIT_ON_MASK. Это никогда не происходит с другим терминальным программным обеспечением ведущего меня думать, что проблема определенно с Qt. Pastebin из Serial Port Monitor Output ничтожной IOThread :: Run () {QSerialPort последовательный; serial.setPortName (PORTNAME) serial.setBaudRage (QSerialPort :: Baud115200); serial.setStopBits (QSerialPort :: OneStop) serial.setParity (QSerialPort :: NoParity); serial.setDataBits (QSerialPort :: data8); последовательный. setFlowControl (QSerialPort :: NoFlowControl); если (! serial.open (QIODevice :: ReadWrite) {QDebug ()
Galaxy
1

голосов
2

ответ
46

Просмотры

QGenericMatrix как вернуть конкретное значение из строки / столбца

Я хотел сделать матричное умножение в QT, и я смог инициализировать QGenericMatrix и перемножить два Матрицы тоже, но как я извлечь значения из конечной матрицы (конкретная строка / столбец) для дальнейших расчетов. значения с плавающей точкой [] = {1, 0,23, 0, -0,98, 0, 0,75, 0, -0,67, 0, 0,34, 1, 0,12, 0, 0,98, 0, 0,23}; плавать values1 [] = {34 23 12 11}; QGenericMatrix A (значения); QGenericMatrix б (values1); QGenericMatrix результат = A * B; QDebug ()
user3412649
1

голосов
1

ответ
74

Просмотры

Импорт соединительных частей робота манипулятора (6-ось) и делают каждый совместные вращаться с помощью пользовательского ввода (C ++ код)

Я пытаюсь импортировать 6 3D мешей суставов робота манипулятора в Qt C ++. Суставы отображаются, но они не вращаются, как будто они соединены друг с другом. Но каждый сустав вращается независимо вокруг своего центра. Я хочу, чтобы повернуть каждый сустав C ++ кода и другие суставы должны также вращаться. Я использую Blender, чтобы установить центр сеток и экспорт в OBJ файл. Qt3DCore :: QEntity * корень = новый Qt3DCore :: QEntity (); Qt3DExtras :: Qt3DWindow вид; Совместный * joint1 = новый шарнир (корень); joint1-> сетка () -> setSource (QUrl (QStringLiteral ( "QRC: /assets/base.obj"))); joint1-> преобразование () -> setTranslation (QVector3D (0.0f, 1.81f, 0.0f)); joint1-> преобразование () -> setScale (0.01f); Qt3DExtras :: QPhongMaterial * материал1 = новый Qt3DExtras :: QPhongMaterial (); material1-> setDiffuse (QColor (204, 91, 70)); material1-> setSpecular (QColor (255, 171, 247)); material1-> setShininess (500.0f); joint1-> addComponent (материал1); Совместный * joint2 = новый шарнир (корень); joint2-> сетка () -> setSource (QUrl (QStringLiteral ( "QRC: /assets/j2.obj"))); joint2-> преобразование () -> setTranslation (QVector3D (0.0f, 1.9030f, 0.0f)); joint2-> преобразование () -> setScale (0.01f); Qt3DExtras :: QPhongMaterial * Материал2 = новый Qt3DExtras :: QPhongMaterial (); material2-> setDiffuse (QColor (27, 176, 204)); material2-> setSpecular (QColor (37, 95, 255)); material2-> setShininess (500.0f); joint2-> addComponent (Материал2); / * * Остальной 4 совместных сеток определяются таким же образом, как и выше * / view.setRootEntity (корень); Мой Joint класс выглядит следующим образом: joint.cpp #include "joint.h" Joint :: Joint (Qt3DCore :: QNode * родительский): Qt3DCore :: QEntity (родитель), m_mesh (новый Qt3DRender :: QMesh ()), m_transform (новый Qt3DCore :: QTransform ()) {addComponent (m_mesh); addComponent (m_transform); } Joint :: ~ Joint () {} Qt3DRender :: QMesh * Joint :: сетка () сопзЬ {возвращение m_mesh; } Qt3DCore :: QTransform * Joint :: преобразование () сопзЬ {возвращение m_transform; } Мой Joint заголовочный файл: joint.h #ifndef JOINT_H #define JOINT_H #include #include #include класс Joint: общественный Qt3DCore :: QEntity {общественности: Joint (Qt3DCore :: QNode * родитель = 0); ~ Совместное (); Qt3DRender :: QMesh * сетка () Const; Qt3DCore :: QTransform * преобразование () сопзЬ; частные: Qt3DRender :: QMesh * m_mesh; Qt3DCore :: QTransform * m_transform; }; #endif // JOINT_H преобразование () {константный обратный m_transform; } Мой Joint заголовочный файл: joint.h #ifndef JOINT_H #define JOINT_H #include #include #include класс Joint: общественный Qt3DCore :: QEntity {общественности: Joint (Qt3DCore :: QNode * родитель = 0); ~ Совместное (); Qt3DRender :: QMesh * сетка () Const; Qt3DCore :: QTransform * преобразование () сопзЬ; частные: Qt3DRender :: QMesh * m_mesh; Qt3DCore :: QTransform * m_transform; }; #endif // JOINT_H преобразование () {константный обратный m_transform; } Мой Joint заголовочный файл: joint.h #ifndef JOINT_H #define JOINT_H #include #include #include класс Joint: общественный Qt3DCore :: QEntity {общественности: Joint (Qt3DCore :: QNode * родитель = 0); ~ Совместное (); Qt3DRender :: QMesh * сетка () Const; Qt3DCore :: QTransform * преобразование () сопзЬ; частные: Qt3DRender :: QMesh * m_mesh; Qt3DCore :: QTransform * m_transform; }; #endif // JOINT_H
Rhnbmpl
1

голосов
1

ответ
161

Просмотры

Как конвертировать QByteArray BCD в десятичных QString представления?

Привет я прочитал Packed BCD из файла, что я хочу, чтобы преобразовать его в это десятичное представление. длина данных составляет 32 байта и, например, это то, что находится в файле: 95 32 07 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 13 00 I хотят, чтобы показать данные, как это, как я могу это сделать? благодаря schef он работал для меня. У меня есть еще один вопрос: я те данные, которые я прочитал некоторые из данных являются числовые данные, которые в сыром виде шестигранной для eeample: 22 d8 в.п. 2d, который должен интерпретироваться как: 584633901, что это самый лучший и быстрый способ? currntly Я делаю это так: QByteArray DTByteArray ( "\ x22 \ xd8 \ xce \ x2d"); QDataStream dstream (DTByteArray); dstream.setByteOrder (QDataStream :: BigEndian); qint32 число; dstream >> номер; и в течение 1 и 2 байта целых чисел я сделать это следующим образом: QString :: номер (ain.toHex (0) .toUInt (Q_NULLPTR, 16));
pumper
1

голосов
1

ответ
37

Просмотры

Чтение из QTcpSocket терпит неудачу, если QTcpServer не был закрыт

Вот простой минимальный рабочий пример, который воспроизводит поведение я считаю странным (вероятно, из-за мое непонимание чего-то): main.cpp #include #include «dialog.h» ИНТ основного (интермедиат ARGC, символ * ARGV []) {QApplication приложение (ARGC, ARGV); Диалог диалог; dialog.show (); вернуть app.exec (); } Dialog.h #ifndef DIALOG_H #define DIALOG_H #include класса QLabel; класс QTcpServer; класс QTcpSocket; класс Диалог: общественный QDialog {Q_OBJECT общественности: Dialog (QWidget * Родитель = 0); открытых слотов: acceptConnection недействительными (); аннулированию readClientData (); частные: QLabel * этикетка; QTcpServer * TCPServer; QTcpSocket * розетка; }; #endif dialog.cpp #include #include #include "dialog.h" Диалог :: Dialog (QWidget * Родитель): QDialog (родитель) {метка = новый QLabel ( "Сервер слушает ..."); QVBoxLayout * mainLayout = новый QVBoxLayout; mainLayout-> addWidget (метка); setLayout (mainLayout); TCPServer = новый QTcpServer; подключения (TCPServer, SIGNAL (newConnection ()), это, SLOT (acceptConnection ())); tcpServer-> слушать (QHostAddress :: LocalHost, 10055); } Пустот Dialog :: acceptConnection () {сокет = tcpServer-> nextPendingConnection (); подключить (розетка, СИГНАЛ (readyRead ()), то это, SLOT (readClientData ())); } Недействительными Диалог :: readClientData () {QString данных; в то время как (socket-> canReadLine ()) данные + = socket-> ReadLine (); label-> SetText (данные); socket-> Close (); tcpServer-> Close (); tcpServer-> deleteLater (); } После компиляции и запуска, я получаю диалоговое окно, затем я иду в браузер, введите URL HTTP: // локальный: 10055 и ... ничего. Сервер принимает соединение, но никакие данные (HTTP заголовков) не считывается и показано на этикетке. Только если я помещаю tcpServer-> близко (); в конце acceptConnection () слот (а не в readClientData ()), данные считываются нормально (метка показывает заголовок: GET /HTTP/1.1 и т.д.). Я не понимаю вообще: почему сервер должен прекратить прослушивание для первого соединения для чтения данных в нормальном режиме?
Maximko
1

голосов
1

ответ
22

Просмотры

Как создать SignalHub в приложении QT?

Существует многопоточные приложения на QT5. Тем излучает сигналы друг с другом. Например, сигнал нажатия кнопки в графическом интерфейсе в три отдельных потоках, и каждый поток выполняет свою функцию. Есть простой способ подключения всех сигналов к некоторому объекту, давайте назовем его SignalHub? И эта SignalHub будет принимать все сигналы от всех потоков или объектов, и любой поток или объект может быть подписан на требуемый сигнал? Нечто похожее на DBus, но только для нескольких потоков в пределах одного интервала QT приложение? Каждый поток или объект не должен получить свой собственный сигнал. Целью этого является уменьшение объема кода (существует несколько потоков в приложении, и каждый из них имеет множество сигналов и слотов). И это было бы идеально, чтобы подключить необходимые сигналы (и из) SignalHub только в новом конструкторе объекта или новом потоке»
Iridiumus
1

голосов
0

ответ
55

Просмотры

Подробности о стоимости возвращенного QWidget :: WinID () изменяющегося во время выполнения

QWidget :: WinID () используется для возврата основной ОС конкретной дескриптор окна, что виджет содержится в В документации говорится:. Это значение может изменяться во время выполнения. Событие с типом QEvent :: WinIdChange будет отправлено на виджет после изменения идентификатора окна системы. Это делает это звучит, как это небезопасно для хранения возвращаемой переменной напрямую (по крайней мере, не имея какой-то механизм, который прослушивает событие и обновляет переменную). Тем не менее, я проводной вверх фильтр событий, который делает эту точную вещь, и она фактически никогда не было названо. Это меня думать, что это либо результат некоторых странных крайних случаев, или специфично для некоторых операционных систем. Каковы основные механизмы, которые вызывают окно идентификатор для изменения? Есть ли эффект это все операционные системы? Существует ли какой-либо набор предположений, которые делают его безопасным для хранения, а затем использовать идентификатор окна? В этом случае, окно идентификатор только используется, чтобы увидеть, если список окон из ОС содержит указанный идентификатор, возвращаемый функцией WinID ().
metalprogrammer
1

голосов
0

ответ
71

Просмотры

Спинакер конфликтует с Qt, когда включен

Все работает отлично, прежде чем я включаю Spinnaker.h в мой код. Похоже, что есть некоторые противоречивые вопросы между Спиннакером и Qt5. Это то, что я получаю, когда я включаю Спинакер. В файле включены из /opt/Qt5.10.1/5.10.1/gcc_64/include/QtNetwork/QtNetwork:32:0, из /opt/Qt5.10.1/5.10.1/gcc_64/include/QtQml/QtQmlDepends:4, из /opt/Qt5.10.1/5.10.1/gcc_64/include/QtQml/QtQml:3, от /opt/Qt5.10.1/5.10.1/gcc_64/include/QtQuick/QtQuickDepends:5, от /opt/Qt5.10.1 /5.10.1/gcc_64/include/QtQuick/QtQuick:3, из / дома / факел / проекты / slam_multi_threaded_ws / SRC / leo_slam /torch-gui/mainwindow.cpp:5: /opt/Qt5.10.1/5.10.1/ gcc_64 / включать / QtNetwork / qnetworksession.h: 96: 32: ошибка: ожидается идентификатор до того '(' маркер интерфейса QNetworkInterface () сопзЬ; ^ /opt/Qt5.10.1/5.10.1/gcc_64/include/QtNetwork/qnetworksession.h : 96: 33: ошибка: ожидается, неквалифицированным-идентификатор до того ')' маркера интерфейса QNetworkInterface () сопзЬ; Есть ли у вас какие-либо идеи, как решить эту проблему?
kostech
1

голосов
0

ответ
29

Просмотры

In QDialogButtonBox, where does it disconnect on-destroy connection of buttons when dialog closed?

Я хочу, чтобы построить что-то вроде QMessageBox, но с моим собственным стилем и планировкой. Поэтому я трассировка исходного кода Qt и учиться у него. QMessageBox состоит с некоторыми виджетами этикетки, как содержание и QDialogButtonBox как кнопки. INT RET = QMessageBox :: предупреждение (nullptr, QString ( "Мой Application"), QString ( "Диалог контента"), QMessageBox :: Сохранить | QMessageBox :: Отмена QMessageBox :: Сохранить) фрагмент кода выше построить простую QMessageBox с две кнопки сохранения и отмены. В исходном коде, кварта будет добавить кнопку с двумя соединительными щелкнул и уничтожена в qdialogbuttonbox.cpp недействительного QDialogButtonBoxPrivate :: AddButton (QAbstractButton * кнопка, QDialogButtonBox :: ButtonRole роль, BOOL doLayout) {Q_Q (QDialogButtonBox); QObject :: подключить (кнопка, SIGNAL (нажал ()), д, SLOT (_q_handleButtonClicked ())); QObject :: подключить (кнопка, SIGNAL (разрушен ()), д, SLOT (_q_handleButtonDestroyed ())); buttonLists [роль] .append (кнопка); если (doLayout) layoutButtons (); } При нажатии «Отмена» кнопки в QMessageBox, он будет работать q-> сделано (execReturnCode (кнопка)); // не вызывает CloseEvent в qmessgebox.cpp и возвращения из цикла событий и уничтожить экземпляр QMessageBox. В моем понимании, все кнопки также будут уничтожены, когда QMessageBox разрушаются, поэтому он должен вызвать обработчик _q_handleButtonDestroyed и вызвать странное поведение. Я задал несколько точек останова в IDE и запустить. Это не шаг в _q_handleButtonDestroyed по нажатию кнопки. Он также Безразлично» т шаг во все отключения в строке # 663 и # 726 из qdialogbuttonbox.cpp Я хочу знать, где это отключить _q_handleButtonDestroyed соединение при нажатии кнопки? Или есть что-то я не так? Заранее спасибо.
Opass
1

голосов
0

ответ
54

Просмотры

setFixedSize() for QMainWindow doesn't work at all

В UI-файле я установил политики размер главного окна, как Fixed и для высоты и ширины, я также установить как минимальные и максимальные размеры (например) 800 * 800 и я написал эту строку кода: ш .setFixedSize (800, 800); в main.cpp, где W представляет собой экземпляр моего основного класса окна. Все остальное по умолчанию. Проект создается в Qt Widgets Application. Таким образом, после всех этих шагов Qt создает окно, которое не соответствует размеру я говорил, и я до сих пор могу изменить его размер. Что я делаю неправильно? ОС: Windows 10; Qt: 5.11.1; Составитель: MSVC 2017 UPD: проблема актуальна как для x86 и x64 версий. Строить Шаги для 32-х: QMAKE: qmake.exe Calculator.pro -spec WinRT-x86-msvc2017 "CONFIG + = qtquickcompiler" Make: jom.exe в D: \ Qt \ Проекты Строить-калькулятор-Qt_5_11_1_for_UWP_32bit_MSVC_2017-релиз Чистые шаги: Производитель: ЛОМ .exe чистый в D:
Dan
1

голосов
1

ответ
152

Просмотры

QML WebEngineView и DOM обновление элементов

Я пытаюсь открыть Netflix URL с обновленными ввода учетных данных с помощью JavaScript. Вход, как представляется, обновляется в HTML-форме, но когда я вызвать знак в кнопке Поле ввода пустеет. Любой ввод наиболее цениться WebEngineView {ID: webEngineView фокус: истинный URL: "https://www.netflix.com/de-en/login" onLoadProgressChanged: {если (loadProgress === 100) {webEngineView.runJavaScript ( "вар input1 = document.getElementsByName ( 'электронная почта'); input1 [0] .value = \ "[email protected] \";», функция (результат) {console.error ( "Электронная почта обновляется");}); webEngineView.runJavaScript ( "вар input2 = document.getElementsByName ( 'пароль');
Keen Learner
1

голосов
0

ответ
30

Просмотры

как разделить ItemSelectionModel между двумя ListViews

В QML файл, есть два ListViews, левый ListView отображает все данные QAbstractListModel с флажком, право ListView отображает все выбранные из левой ListView.how, чтобы использовать ItemSelectionModel для обмена выбора между двумя ListViews? Там нет образца кода в QT инструкции о том, как использовать ItemSelectionModel.
toushi
1

голосов
2

ответ
117

Просмотры

Test if it is QJsonObject or QJsonArray in Qt

Я должен получить QJsonObject от сервера, который будет содержать QJsonObject или QJsonArray с именем «Список». Я имею в виду, «Список» может быть либо QJsonObject или QJsonArray. Так как проверить, если «Список» является QJsonObject или QJsonArray? Полученная QJsonDocument может быть один из двух пыльник прописан формат 1) Здесь «Список» является QJsonArray { «Data»: { «Список»: [{ «Имя»: «что-то», «идентификатор»: «номер»}, { "имя": "что-то", "идентификатор": "число"}, { "имя": "что-то", "Идентификатор": "номер"}]}} 2) Здесь "Список" является QJsonObject { "Data": { "Список": { "имя": "что-то", "ID": "число"}}} Спасибо заблаговременно. Любая помощь будет оценена.
Sanakum
1

голосов
0

ответ
75

Просмотры

Невозможно График местного оповещения в Qt андроида

Я пытаюсь создать местные регулярные уведомления с Qt для Android App. Я следовал ответ: Невозможно запланировать уведомление с AlarmManager на Android (с использованием Qt), но я не могу заставить его работать. Ниже приведен код notificationclient.h: #ifndef NOTIFICATIONCLIENT_H #define NOTIFICATIONCLIENT_H #include класс NotificationClient: общественный QObject {явный NotificationClient (QObject * родитель = 0); INT createNotification (QString название, содержание QString); }; #endif // NOTIFICATIONCLIENT_H notificationclient.cpp #include "notificationclient.h" #include NotificationClient :: NotificationClient (QObject * родитель): QObject (родитель) {} INT NotificationClient :: createNotification (QString название, содержание QString); {QAndroidJniObject javaNotification = QAndroidJniObject; QAndroidJniObject :: callStaticMethod ( "ScheduledNotifications", "createNotification", "(Ljava / языки / String;) V", javaNotification.object ()); } класс ScheduleNotification.java ScheduledNotifications {статический открытый ИНТ notification_id = 0; Статическая INT scheduleNotification (String название, содержание String, Int futureInMilliseconds) {++ notification_id; Намерение notificationIntent = новое Намерение (QtNative.activity (), NotificationPublisher.class); notificationIntent.putExtra (NotificationPublisher.NOTIFICATION_ID, notification_id); notificationIntent.putExtra (NotificationPublisher.NOTIFICATION, createNotification (название, содержание)); PendingIntent pendingIntent = PendingIntent. getBroadcast (QtNative.activity (), 0, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT); AlarmManager alarmManager = (AlarmManager) QtNative.activity () getSystemService (Context.ALARM_SERVICE). alarmManager.set (AlarmManager.RTC_WAKEUP, / * futureInMilliseconds * / 0, pendingIntent); Log.d ( "!", "По расписанию"); вернуться notification_id; } Статического открытого Уведомление createNotification (строка заголовок, содержание String) {Notification.Builder строитель = новый Notification.Builder (QtNative.activity ()); builder.setContentTitle (название); builder.setContentText (содержание); вернуть builder.build (); }} Класс NotificationPublisher.java NotificationPublisher расширяет BroadcastReceiver {публичный статический Струнный NOTIFICATION_ID = "уведомление-идентификатор"; общественности статической строки УВЕДОМЛЕНИЕ = «уведомление»; общественного недействительный OnReceive (контекст Контекста, Намерение намерения) {// Вызывается, когда его время, чтобы показать уведомление ... Log.d ( «Уполномоченный» «!»); NotificationManager notificationManager = (NotificationManager) context.getSystemService (Context.NOTIFICATION_SERVICE); Уведомление Уведомление = intent.getParcelableExtra (УВЕДОМЛЕНИЕ); INT ID = intent.getIntExtra (NOTIFICATION_ID, 0); notificationManager.notify (ID, уведомление); }} Я не совсем уверен, как это сделать. Если кто-то может обеспечить надлежащий пример с локальным уведомлением в Qt, что было бы действительно полезно спасибо !! Намерение Намерение) {// Вызывается, когда его время, чтобы показать уведомление ... Log.d ( «нотифицированную») «!»; NotificationManager notificationManager = (NotificationManager) context.getSystemService (Context.NOTIFICATION_SERVICE); Уведомление Уведомление = intent.getParcelableExtra (УВЕДОМЛЕНИЕ); INT ID = intent.getIntExtra (NOTIFICATION_ID, 0); notificationManager.notify (ID, уведомление); }} Я не совсем уверен, как это сделать. Если кто-то может обеспечить надлежащий пример с локальным уведомлением в Qt, что было бы действительно полезно спасибо !! Намерение Намерение) {// Вызывается, когда его время, чтобы показать уведомление ... Log.d ( «нотифицированную») «!»; NotificationManager notificationManager = (NotificationManager) context.getSystemService (Context.NOTIFICATION_SERVICE); Уведомление Уведомление = intent.getParcelableExtra (УВЕДОМЛЕНИЕ); INT ID = intent.getIntExtra (NOTIFICATION_ID, 0); notificationManager.notify (ID, уведомление); }} Я не совсем уверен, как это сделать. Если кто-то может обеспечить надлежащий пример с локальным уведомлением в Qt, что было бы действительно полезно спасибо !! getParcelableExtra (УВЕДОМЛЕНИЕ); INT ID = intent.getIntExtra (NOTIFICATION_ID, 0); notificationManager.notify (ID, уведомление); }} Я не совсем уверен, как это сделать. Если кто-то может обеспечить надлежащий пример с локальным уведомлением в Qt, что было бы действительно полезно спасибо !! getParcelableExtra (УВЕДОМЛЕНИЕ); INT ID = intent.getIntExtra (NOTIFICATION_ID, 0); notificationManager.notify (ID, уведомление); }} Я не совсем уверен, как это сделать. Если кто-то может обеспечить надлежащий пример с локальным уведомлением в Qt, что было бы действительно полезно спасибо !!
fist ace
1

голосов
1

ответ
56

Просмотры

Qt5 удаленных объектов + пользовательский тип, но не в POD

Я хотел бы использовать нагрузки пользовательских объектов с Qt5 удаленными объектами. Читая их, возможно, не нужно быть создан как стручки в файле .rep. Я попытался сделать следующее: пространство имен моего :: апи {класс карты {Q_GADGET Q_PROPERTY (QString Тип READ WRITE SetType) [... удаленные функции собственности] Q_PROPERTY (QString идентификатор READ WRITE идентификатор SETID) [... удален недвижимость функции] общественность: статическая сила declareQML () {qRegisterMetaType ( "Card"); }}; встроенный QDataStream & оператор TMP; value.setType (TMP); Поток >> TMP; value.setId (TMP); возврат потока; } Класс Результат {Q_GADGET Q_PROPERTY (BOOL статус статус READ WRITE setStatus УВЕДОМИТЬ StatusChanged) общественности: Статус BOOL () {вернуться m_status; } Общественных слотов: setStatus пустот (BOOL р) {m_status = р; излучают StatusChanged (); } Частные: BOOL m_status; общественности: статическая сила declareQML () {qRegisterMetaType ( "Результат"); } Результат (): m_code (ложь) {}}; встроенный QDataStream и оператор> TMP; value.setStatus (TMP); возврат потока; }} Затем сделать что-то подобное в .rep: SLOT (checkCard (мой :: карта апи :: Card)); СИГНАЛ (checkCardResponse (мой :: апи :: результат Result)); Однако я получаю Попытку построить экземпляр недопустимого типа, тип ID: 1073676288 Попытки построить экземпляр недопустимого типа, типа ID: 655615 Попытки построить экземпляр недопустимого типа, типа ID: 1073676288 от клиента, когда Я пытаюсь сделать checkCard (). все вещи declareQML вызывается сразу после запуска приложения (до создания реплики). Может кто-нибудь отправлять мне полный / рабочий пример, как использовать пользовательские классы с QT5 удаленных объектов без создания пользовательских классов, как стручки РЭП файл?
harsszegi
1

голосов
1

ответ
102

Просмотры

QInputDialog: OK и Отмена: Удаление изображения кнопок для ОК и Отмена

В QInputDialog как я избавиться от икон в ОК и Отмена? Обратите внимание на иконки для отмены и ОК. Я просмотрел кнопку свойств не мог понять, как удалить их.
Ankur Shah
1

голосов
0

ответ
146

Просмотры

Как показать кнопку уведомления в строке заголовка (или общую кнопку, если не возможно)?

Я хотел бы добавить кнопку в строке заголовка моего C ++ / Qt приложения, как один для уведомлений Visual Studio (я видел другие программы, использующие это тоже, как SourceTree). Я искал вокруг на некоторое время, но многие страницы перенаправления на это или это неработающие ссылки. Я только нашел этот CodeProject учебник, но весь мой проект работает на Qt, а не MFC. Есть ли стандартный способ сделать это с помощью Qt или в C ++?
cbuchart
1

голосов
1

ответ
104

Просмотры

GeocodeModel в Qt

Я пишу маленькое приложение с использованием Qt / QML, и у меня есть проблемы с GeocodeModel в моем приложении. Я не знаю, почему он не работает. Я сделал это с YT учебник, но человеком он работает. импорта QtQuick 2.9 импорта QtQuick.Controls 2.2 импорта QtQuick.Window 2.0 импорта QtLocation 5.6 импорта QtPositioning 5.6 ApplicationWindow {ID: app_window видна: истинная ширина: 1024 высота: 800 название: qsTr ( "навигации") PositionSource {активна: истинно onPositionChanged: {map_id .center = position.coordinate; }} {Прямоугольник ID: mapRectangleID ширина: 1024 высота: 800 anchors.horizontalCenter: parent.horizontalCenter anchors.verticalCenter: parent.verticalCenter Карта {ID: map_id anchors.fill: {RouteQuery.addWaypoint (QtPositioning.coordinate (51.318784,12.2773504)); routeQuery.addWaypoint (QtPositioning.coordinate (51.3117764,12.280909000000065)); //routeQuery.addWaypoint(endPointGeaocodeModel) обновление (); }} // начальную и конечную точки MapItemView {модель: routeBetweenPoints делегат: Компонент {{MapRoute маршрут: routeData line.color: "красный" line.width: 10}}} // Linie, умирают Beide Punkte verbindet GeocodeModel {ID: endPointGeaocodeModel плагин: плагин {имя: «ОСМ»} запрос: "Sandakerveien 116, Осло" onLocationsChanged: {если (количество) endPointImage.coordinate = Get (0) .coordinate; } Component.onCompleted: обновление ()} // Suche ден Platz мит Strasse унд Stadt Rectangle {ID: ширина _ifStartPointLongitude: 100 Высота: 20 border.color: 'серый' border.width: 2 х: 900 г: 120 anchors.left : app_window.right TextInput {ID: txtPlainStartPointLongitude anchors.fill: родитель anchors.margins: 4}}} // все виджеты и элементы карты} // размер и положение карты} и этот элемент не работают: GeocodeModel {ID: endPointGeaocodeModel плагина: Плагин {имя: «ОСМ»} запрос: «Sandakerveien 116, Осло»onLocationsChanged: {если (количество) endPointImage.coordinate = Get (0) .coordinate; } Component.onCompleted: обновление ()} // сучьего ден плац мит штрассу унд Stadt Я попытался тоже иногородние, улицы, но он по-прежнему не работает. Может кто-нибудь объяснить мне, что я сделал / написал неправильно? } Component.onCompleted: обновление ()} // сучьего ден плац мит штрассу унд Stadt Я попытался тоже иногородние, улицы, но он по-прежнему не работает. Может кто-нибудь объяснить мне, что я сделал / написал неправильно? } Component.onCompleted: обновление ()} // сучьего ден плац мит штрассу унд Stadt Я попытался тоже иногородние, улицы, но он по-прежнему не работает. Может кто-нибудь объяснить мне, что я сделал / написал неправильно?
DragonCoder
1

голосов
0

ответ
53

Просмотры

Qt QML fails to render text correctly on some systems

Я до сих пор видел этот вопрос на Win 7 PC, не уверен, если это будет происходить на всех Win 7 ПК? Как вы можете видеть, текст «Личная информация» определяется в верхней внутри текста QML {..} коробка неправильно оказанные: я понял, что текст под заголовком работает нормально, это определяется как Ярлык {... }, поэтому я заменил объект Text с объектом Лейбл перекомпилированного и побежал на целевой машине и теперь он работает - код скомпилирован с Qt 5.10.1 MinGW 32bit. Файл QML довольно долго, рассматриваема область выглядит следующим образом: Rectangle {ID: titleNameContainer цвет: "прозрачная" anchors.top: ширина parent.top: parent.width высота: 40 anchors.horizontalCenter: parent.horizontalCenter CenturyGothicFont {идентификатор : nameStrFont} Ярлык {ID: NameStr текст: "Личная информация" ширина: родитель. Ширина // Цвет: "черный" HorizontalAlignment: Text.AlignHCenter шрифт {семья: nameStrFont.name pixelSize: 30}}} В 'метка' был 'текст' объект. Сам текст импортируемого шрифт типа .ttf, этот шрифт явно работает, когда используется в качестве метки. Я не сделал каких-либо изменений в настройках анти наложения спектров, как заданные в комментариях (я бы смотреть это, если я хотел / необходимости). Может кто-нибудь объяснить, что здесь происходит? Я не сделал каких-либо изменений в настройках анти наложения спектров, как заданные в комментариях (я бы смотреть это, если я хотел / необходимости). Может кто-нибудь объяснить, что здесь происходит? Я не сделал каких-либо изменений в настройках анти наложения спектров, как заданные в комментариях (я бы смотреть это, если я хотел / необходимости). Может кто-нибудь объяснить, что здесь происходит?
mx5_craig
1

голосов
0

ответ
51

Просмотры

How do I use multi-line patterns with QRegularExpression?

Qt 5.12.0 Я использую класс, производный от QSyntaxHighlighter, чтобы выделить текст в QTextEdit виджета. Я переопределен в highlightBlock (константный QString & текст) функция, и я пытаюсь сделать шаблон регулярных выражений многострочного с помощью QRegularExpression. Формат QTextCharFormat; format.setForeground (QColor (0xFF, 0x00, 0x00)); авто опт = QRegularExpression :: MultilineOption; автоматическое регулярное выражение = QRegularExpression ( "а (| \\ п) * а.", опт); QRegularExpressionMatchIterator это = regex.globalMatch (текст); в то время как (it.hasNext ()) {матч QRegularExpressionMatch = it.next (); SetFormat (match.capturedStart (), match.capturedLength (), формат); } Это соответствует любой строке, которая начинается и заканчивается буква а, но только в одной строке. Я пробовал несколько вариантов, включая: автоматический неавтоматического = QRegularExpression :: DotMatchesEverythingOption | QRegularExpression :: MultilineOption; автоматическое регулярное выражение = QRegularExpression ( "а * а.", опт); ... авто неавтоматического = QRegularExpression :: MultilineOption; автоматическое регулярное выражение = QRegularExpression ( "(т) а (| \\ г | \\ п) * а?"., опт); ... авто неавтоматического = QRegularExpression :: NoPatternOption; автоматическое регулярное выражение = QRegularExpression ( "(т) а (| \\ г | \\ п) * а?"., опт); Ни одна из этих работ. Является ли многострочные регулярное выражение просто сломано в Qt, или я делаю что-то не так?
tguen
1

голосов
0

ответ
34

Просмотры

Как реализовать QHash для QNetworkCookie

Я пытаюсь собрать QNetworkCookies в виде QSet. Я создаю печенье QSet QSet, а затем вставьте печенье с cookies.insert (печенье); Затем компилятор говорит мне, что нет QHash для QNetworkCookie, поэтому я добавил метод инлайн, как вы можете видеть в коде листинга ниже. Теперь компилятор доволен, но этот метод никогда не вызывается, а набор содержит же печенье несколько раз. Может кто-то мне точку в правильном направлении? #ifndef BROWSER_H #define BROWSER_H #include #include #include #include #include класс Browser: общественный QMainWindow {Q_OBJECT частное: QWebEngineView * webEngine; QSet печенье; общественности: явный браузер (Const QUrl & URL); защищенные слоты: недействительный finishLoading (BOOL); аннулированию handleCookieAdded (константный QNetworkCookie & печенье); }; рядный UINT QHash (Const QNetworkCookie & ключ, UINT семян) {UINT хэш = QHash (key.domain (), семена) ^ QHash (key.name (), семена); QDebug ()
henrik
1

голосов
1

ответ
116

Просмотры

Qt-Creator не в состоянии разобрать общий Qt-проект, но включает в себя все в порядке

Я импортировал существующий общий проект, который использует Qt и добавил все Qt путей заголовка в файл .includes. Анализатор находит включает в себя, но как только что-нибудь Qt связанные сделано, анализатор жалуется на вопросы, которые я никогда раньше не видел. Код компилируется без проблем на консоли. Среди ошибок, сообщенных Qt Creator являются следующие сообщения: * не член с именем «qMakeForeachContainer» в пространстве имен «QtPrivate» ??? почему так * неизвестное имя типа «QComboBox», но включает в себя даются найдено * тип «QObject» не является прямой или виртуальной база «...» „QObject“ на самом деле является прямой базой ... Так что сломан здесь? Это происходит на недавно установленной 64-битной системе с импортированной родового проекта (не создан как проект Qt внутри Qt Creator). Это всегда работало раньше: - /
Aaron
1

голосов
0

ответ
54

Просмотры

Qt: Как текстовые редакторы выполнить операцию Заменить и остановить, когда они цикл назад к первой замены они когда-либо проводили?

Я работаю над текстовым редактором проекта в Qt, и я в настоящее время пытаются имитировать Найти и заменить поведение текстовых редакторов и текстовых процессоров. Рассмотрим следующий пример из Microsoft Word, с номерами с указанием позиции курсора / индекс в конце каждой строки: привет 5 компанейский 11 привет 17 Другими словами, если курсор находится в самом начале документа (слева от " привет "), ее индекс будет равен 0. справа от первого„ч“, то это будет 1. И так далее. Это, как Qt обрабатывает позицию курсора в QTextEdit (или, в данном случае, QPlainTextEdit). Предположим, что наш находится курсор сразу после «дружище» в положении 11, и что мы открыли диалоговое окно поиска (с помощью Ctrl + F или действие меню). В текстовом редакторе, как Microsoft Word, поиск «привет» будет продолжаться, чтобы найти дно «привет» в положении 17, затем цикл обратно на вершину и найти первый «привет» в положении 5, а затем прекратить поиск, как только это циклы обратно в положение, в котором он нашел свой первый матч (17). Это имеет смысл, вы не хотели бы, чтобы езда на велосипеде пользователя через весь документ и создается впечатление, что вы в поиске «новые» хиты, когда вы на самом деле нет. Кроме того, при выходе из поиска, курсор возвращается в исходное положение до первого поиска вы проведенного на срок в вопросе (то есть, курсор возвратится в положение 11 и не будет оставаться в положении 17, «ложь положительная»новая находка). Такое поведение, как ожидается, и работает как задумано в моем текстовом редакторе. Соответствующие части коды для изучения следующим образом: on_findQueryText_ready в editor.cpp finddialog.h finddialog.cpp Позвольте мне объяснить мой собственный подход прежде чем описывать проблему более подробно: Класс FindDialog держит карту, связывающую каждый поисковый запрос / член с парой позиций / целых чисел: первое число является позиционировать курсор был до первого поиска этого термина (на нашем примере, 11); второе число в паре является положение, в котором был обнаружен первый матч (на нашем примере, это было бы 17). Обыск продолжается до конца документа. Если совпадение не найдено, он делает еще один поиск с начала документа. Если мы в конечном итоге в позиции, равной первый матч, мы рассматриваем его как «найти провал», сбросить нашу историю поиска и возвращение. Теперь на операции Replace, который первым вызывает операцию Find и затем вставляет текст замены в курсоре, установленном с помощью операции поиска. Смотрите эту строку. Вот проблема: с операцией Replace, предположим, что мы ищем «привет» и попытаться заменить его «приветствий». Во-первых, мы заменим на дно «привет» с «приветствий». Все идет нормально. Тогда мы заменим сверху «привет» с «приветствиями». И тогда мы цикл обратно на дно «привет». Но здесь не проблема: наш курсор больше не в положении 17, так как введение «приветствия» в верхней части документа просто сдвинута все индексы / позиция курсора на 1. То есть, индекс к самому правой части дно «привет» будет 18, а не 17. Вот некоторые отладки кода, который подтверждает это поведение: Причина, почему я говорю об этом потому, что есть обходной путь, я мог бы использовать, где я поставил какой-то флаг в редактор canReplace-который проверяется перед заменой содержимого. Этот флаг будет приготовьтесь к ложным, когда мы цикл обратно к первому матчу поиска. Конечно, когда я испытал это, он не работает из-за позиции курсора меняющихся, как я описал выше. Есть ли очиститель или лучшее решение, которое я просто не думал? Я знаю, что это был действительно длинный пост, но я был бы признателен за любую помощь. Спасибо тем, кто прочитал все это :) Т работа из-за позиции курсора меняющихся как я описано выше. Есть ли очиститель или лучшее решение, которое я просто не думал? Я знаю, что это был действительно длинный пост, но я был бы признателен за любую помощь. Спасибо тем, кто прочитал все это :) Т работа из-за позиции курсора меняющихся как я описано выше. Есть ли очиститель или лучшее решение, которое я просто не думал? Я знаю, что это был действительно длинный пост, но я был бы признателен за любую помощь. Спасибо тем, кто прочитал все это :)
AlexH
1

голосов
0

ответ
131

Просмотры

Qt Missing compiler for Android

I am trying to setup Qt so that I can build & deploy from my Windows 10 machine, to an Android tablet. However from Tools>Options>Kits>Qt Versions... I get "No compiler can produce code for this Qt version. Please define one or more compilers for x86-linux-android-elf-32bit". (or instead of 'x86-linux...' it says 'arm-linux-android-elf-32bi't or 'arm-linux-android-elf-64bit', depending on the Qt version I have selected in this window). Do I need to manually add C and C++ compilers for the Android SDK/NDK to Qt? Where would I find these? I have installed: Qt: 5.12.0 Qt Creator: 4.7.0 (Community) Android SDK: 3.2.1 64-bit Windows. Android NDK: r18b Windows 64-bit. Java JDK: Java SE Development Kit 8u191 From Qt Maintenance tool, Installed Qt 5.12.0 for Android x86, ARM64-v8a, ARMv7: Within Qt Creator Tools>Options>Devices>Android I have set the paths of the JDK, SDK, & NDK and run "Update Installed": If I go to Tools>Options>Kits>Qt Versions I see several versions, each is missing a compiler (compiler varies based on version): But in Compilers, here is all I see: In looking through the NDK I did see these, are these related to what I am looking for?:
DaveK
1

голосов
0

ответ
25

Просмотры

Старая QWidget :: событие () вопрос возвращаемого значения?

Долгие годы в прошлом пользователь задал этот вопрос на центральном форуме Qt и он был оставлен без ответа. Это по-прежнему актуально, в частности, по отношению к QWheelEvent. В моем опыте, QWheelEvent должен быть либо принимать () под ред или игнорировать () D с помощью обработчика событий, но события мыши могут вернуться верно, и это считается как принимать ()? Что вы узнали в связи с QEvent :: события () возвращаемого значения? Очевидно, что возвращенная правда не всегда считается принимать () и документация расплывчатая, в лучшем случае.
user1095108
1

голосов
0

ответ
44

Просмотры

Когда же разъединяет соединения Qt

У меня есть следующие сценарии: QAction * Отправитель = новый QAction (это); QAction * = новый ресивер QAction (это); авто сопп = & подключения (отправитель, и QAction :: срабатывает, приемник, и QAction :: триггер); Теперь, если я удалю отправитель первым, соппы верно и то, если я удалю приемник, он по-прежнему верно. Но когда я удалить первый приемник, соппы ложны, а затем, если удалить отправитель, он становится истинным (почему?). Я думал, что при удалении приемника или отправителя соединение отсоединяется. Не понимаю, от такого поведения. При отключении соединения?
Sumit Jha
1

голосов
0

ответ
38

Просмотры

Может QT Быстрый использовать PNG изображения в качестве листа шрифта?

У меня есть 2 отдельных изображения PNG, которые содержат множество ячеек шрифтов и должен быть оказана вместе как шрифт, где любой персонаж может быть из клетки в одном из двух изображений в формате PNG. Может ли это быть сделано в любом случае в Qt Quick?
June
1

голосов
0

ответ
51

Просмотры

ProcessException в QtCreator встречается, при генерации APK

У меня есть существующий проект QtCreator, который я хочу работать на Android. Когда я скомпилировать и запустить с комплектом для окон все работает отлично. Но при компиляции приложения для Android, я всегда эта ошибка в последнем шаге «Build Android APK». Технические характеристики: хост-разработка: win10 x64 Andorid comile plattforms: 23, 26, 27, 28 Andorid NDK версия: r19c, R18b Java Версия: 1.8.0_201 Сообщение об ошибке:: compileDebugAidl FAILED FAILURE: Строить неудачу с исключением. * Что пошло не так: Не удалось завершить выполнение задачи по ': compileDebugAidl. > Java.io.IOException: com.android.ide.common.process.ProcessException: Ошибка при выполнении процесса C: \ DEV \ Android \ СДК-инструменты-окон-4333796 \ сборки-инструменты \ 29.0.0-rc1 \ aidl. ех с аргументами {-pc: \ DEV \ Android \ СОК-инструменты-Windows-4333796 \ платформы \ андроид-28 \ framework.aidl -oc: там должно быть что-то не так с моей установкой. Я за каждый благодарность намек, чтобы решить эту проблему ...
Patrick
0

голосов
0

ответ
3

Просмотры

Неопределенная ссылка на резюме :: imread и другие ошибки в qt5 на убунту 16.04

л.д. возвращается статус 1 выездных вы, ребята, знаете, как это исправить? Код, который я использую это один пыльник open_image.pro QT + = ядро ​​QT - = графический интерфейс TARGET = OpenCV-Ex1 CONFIG + = консоли CONFIG - = app_bundle TEMPLATE = приложение ИСТОЧНИКОВ + = main.cpp CONFIG + = link_pkgconfig pkg-config + = OpenCV main.cpp #include #include #include INT основной () {// ле Imagem резюме :: Mat изображения; Изображение = резюме :: imread ( "len_std.png", 0); // Mostra Imagem на Janela резюме :: namedWindow ( "Imagem Original"); // определить Джанеле резюме :: imshow ( "Imagem оригинал", изображение); // Mostra о tamanho да Imagem станд :: соиЬ каст #include #include #include INT основной () {// ле Imagem резюме :: Mat изображения; Изображение = резюме :: imread ( "len_std.png", 0); // Mostra Imagem на Janela резюме :: namedWindow ( "Imagem Original"); // определить Джанеле резюме :: imshow ( "Imagem оригинал", изображение); // Mostra о tamanho да Imagem станд :: соиЬ каст #include #include #include INT основной () {// ле Imagem резюме :: Mat изображения; Изображение = резюме :: imread ( "len_std.png", 0); // Mostra Imagem на Janela резюме :: namedWindow ( "Imagem Original"); // определить Джанеле резюме :: imshow ( "Imagem оригинал", изображение); // Mostra о tamanho да Imagem станд :: соиЬ
panchester
1

голосов
2

ответ
1.4k

Просмотры

Как игнорировать SSL ошибки в Qt5 QML QWebKit 3.0?

У меня есть проблема, показывая www.facebook.com в Qt5 QML QWebKit 3.0. Проблема с сертификатом SSL. Существует решение для Qt 4. *, но мне нужно, чтобы реализовать это в Qt 5.0.1, где изменил все API. Пример решения для Qt 4. * можно найти здесь ссылку
Rodion Mamin

Просмотр дополнительных вопросов

Связанные вопросы