问题标签 [qtembedded]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
qt - QT X11 和 OpenGL
- 如何构建支持 OpenGL 的 X11 的 Qt?我的设备(GPU)上有硬件加速,但是当我将 qt(qml) 应用程序配置为使用 opengl 时,我看不到性能有任何改进……它的性能变得更慢。
我使用命令:
QApplication::setGraphicsSystem("opengl");
我使用 Qt 灯塔(不是 qt Embedded-linux)。
- 如何确保 Qt 真正使用 gpu 加速在屏幕上绘制 qt/qml 小部件?
qtembedded - Qt Embedded 交换颜色位:红色和蓝色
我在帧缓冲区 (/dev/fb0) 上具有 16 位色深的 ARM 显示设备上使用 QtEmbedded (4.8.0)。在这种情况下,我们正在交换颜色位 RED 和 BLUE。
我们使用以下编译标志:
以及执行应用程序的以下参数:
这里有应用程序帧缓冲区(样本)日志:
qt - Qt Multi-Touch 与 qTUIO 和 mtdev2tuio 嵌入式 linux
我有一个嵌入式 linux 项目,我想在其中使用 Qt 的多点触控。我一直在看 qTUIO ( https://github.com/x29a/qTUIO ),它看起来很棒。
我交叉编译了 qTUIO 库并部署到板上。
我还交叉编译并部署了 TUIO“服务器”的要求:
在板上,我启动了“服务器”:
为了确保它正在读取输入设备,我还做了以下操作,当我在触摸屏上移动手指时看到了“名称解析失败”:
然后我在板上运行了 qTUIO 版本的“pinchzoom”示例,它的运行如下所示:
所以我有一个服务器声称正在解释我的触摸并将它们发送 UDP 到端口 3333,而 qt 应用程序声称正在读取这些 TUIO 事件并将它们传递给 Qt。当我触摸屏幕时,没有任何反应。有人对此有想法吗?
qt - SVG 文件的 Qt QML 不支持的图像格式
启动使用 QML 的 Qt Embedded 应用程序时,我不断收到以下错误。从谷歌搜索看来,我需要将图像加载插件添加到我的嵌入式系统导出的 nfs 中。所以我试图将它们添加几个地方,但我不断收到错误。我将嵌入式 ARM 版本的 libqsvg.so 添加到以下位置,但仍然出现错误...
这也不起作用:
我怎样才能解决这个问题??我需要放置插件以便找到它们的正确位置在哪里?
错误:
警告:file:///usr/share/maliit/plugins/org/nemomobile/FunctionKey.qml:98:5:QML 图像:错误解码:file:///usr/share/maliit/plugins/org/nemomobile/ icon-m-input-methods-backspace.svg:不支持的图像格式
警告:file:///usr/share/maliit/plugins/org/nemomobile/FunctionKey.qml:98:5:QML 图像:错误解码:文件: ///usr/share/maliit/plugins/org/nemomobile/icon-m-input-methods-shift-lowercase.svg:不支持的图像格式
警告:file:///usr/share/maliit/plugins/org/nemomobile /FunctionKey.qml:98:5:QML 图像:解码错误:file:///usr/share/maliit/plugins/org/nemomobile/icon-m-input-methods-backspace.svg:不支持的图像格式
qt - QtInputContextFactory 在嵌入式目标上返回 NULL
在我的嵌入式系统上,我没有 X11、Mac、Win、S60 等。我不断收到从 QInputContextFactory 类的 create 方法返回的 NULL ( 0 ) 指针。我确认没有定义 QT_NO_LIBRARY。
在我的桌面 Qt Build 上,这工作得很好。
我还验证了我的自定义键和父级正在传递给该方法。
什么可能导致这失败?-->
这是整个方法:
qt - qdbus 和自定义类型的编组
我想通过 Qt DBUS API 发送一个自定义 C++ 类。我已经使用 protoc 编译器从 .proto 文件创建了类,并将它们添加到我在 QtCreator 中的项目中。现在我想验证我是否可以通过 dbus API 将自定义类作为 QVariant 发送。我有一个接收器和发送器程序,可以发送一个简单的测试字符串,以便 Dbus 工作。将协议缓冲区类添加为元类型后,我无法发送它。
我的测试 .proto 文件只包含整数:
在我添加的协议缓冲区类头文件中:
在我添加的协议缓冲区类实现文件中:
主要看起来像这样:
我的 dbussender 类调用远程函数是这样的:
最终在我的接收程序中,这个函数被调用但总是返回 0:
这是 Sender 程序的输出:
这是 Receiver 程序的输出:
为什么编组函数似乎被调用了两次?为什么第二次调用似乎包含我的协议缓冲区的 3 个属性的有效值 2、3、4,但第一次调用全是 0?接收器似乎只看到全 0 并且从不接收具有有效值的协议缓冲区对象。
我的编组代码有问题吗?还有什么可能发生的?
qt - DirectFB/QT Embedded 中的 USB 鼠标热插拔
在 DirectFB 1.2.9 或 Qt Embedded 4.7.3 中有什么方法可以实现 USB 鼠标的热插拔?
目前我的应用程序堆栈是这样的..
DirectFB 打开 Linux 输入设备节点。Qt 使用 QSocketNotifier 等待 DirectFB 事件缓冲区并设置一个插槽来读取鼠标数据。但是在热插拔时,DirectFB 不会打开设备节点,也不会生成鼠标事件。
据我所知,DirectFb 不支持热插拔。
我尝试禁用 DirectFB 对 Linux 输入设备的处理(从 directfbrc 中的 linux-input-devices= 选项中删除 dev 节点),并设置 QWS_MOUSE_PROTO="linuxinput:.." 但这由于某种原因不起作用。似乎没有生成鼠标事件。即使我设法让它工作,我也不认为 QT 对热插拔提供任何支持。
那么我唯一的替代子类 QMouseDriverPlugin 和 QWSMouseHandle 类吗?为此,我还没有弄清楚如何让 QT 使用我实现的子类。即,一旦我实现了这些类,我如何将它们链接到 QT 输入设备处理框架中,以便我可以设置类似 QWS_MOUSE_PROTO="mylinuxinput:.." 的东西?
qt - 如何(正确)在 Qt-Embedded 中输出多语言文本?
我的目标系统是:
- linux 3.3.7,
- Qt Embedded(开源版)4.8,
- Droid 字体(取自 fonts-droid_20111207+git-1_all.deb Debian 包并复制到
/usr/lib/fonts
目录中), - 用于主要 Qt GUI 应用程序的 Linux 帧缓冲区,
- 一切都是由Buildroot包构建的。
我的测试应用程序非常简单:只有一个对话框,QLabel
上面有一些静态(一个用于中文,一个用于阿拉伯语,一个用于西里尔文等)。
当我在我的 linux 桌面上运行它时,所有标签都正确显示。但是当它在我的目标系统上运行时,一些文本会消失。
经过一番研究,我发现 Qt 框架的行为存在这种差异:
QFontDatabase
类报告说我的桌面系统上只有 4 个 Droid 字体系列:
但是同一个QFontDatabase
班级报告说我的目标系统上有很多分离的字体系列:
结果,如果我更改我的应用程序的“默认”字体系列(通过-fn
命令行选项或通过在我的应用程序内部手动调用setFont()
)会显示一些文本标签,但不会显示其他标签(例如,当我使用“Droid Sans 希伯来语”字体时)家庭,缺少韩文文本,但希伯来文/阿拉伯文都可以)。
所以,我的问题是:在 Qt Embedded 应用程序中输出多语言文本的正确方法是什么?为什么“Droid Sans”一家会分开?有没有办法将它们结合在一起?
谢谢。
c++ - Qt 嵌入式触摸屏在收到 MouseButtonRelease 之前未收到 QMouseEvents
我在带有触摸屏的小型 ARM 嵌入式 Linux 设备上使用 Qt 4.8.3。我用 tslib 配置了我的触摸屏并对其进行了校准,因此 /etc/ 中有一个指针文件。我的触摸事件的位置工作得很好,但无论我在鼠标按下或鼠标释放事件之前获得鼠标移动的 QEvent。此外,在我从触摸屏上抬起手指之前,我不会收到任何与鼠标相关的事件。我需要正常的行为,我按下触摸屏并立即接收鼠标按下事件,然后是我的移动事件(如果有的话),然后是当我抬起手指时的鼠标释放事件。
我还尝试通过实现以下 qwsEventFilter 来查看 QWS 服务器事件,以查看进入我的 QApplication 的 QWS 事件:
现在,当我启动我的应用程序时,我在触摸屏幕后看到了相同的行为——即打印以下内容:
正如你所看到的,只要我松开手指,我就会得到 2 个事件,大概是按下并松开。
我在 Linux 中的 /dev/input/touchscreen 设备上运行了“evtest”,并且在按下屏幕时肯定会立即看到一个触摸事件。在我抬起手指之前,我不会收到鼠标释放事件,因此驱动程序的行为符合预期。当我按下时也没有“重复”触地事件 - 这只是一次按下的事件,但行为正确。
我不确定为什么我会看到我的行为。Qt 和输入设备之间一定存在翻译问题。
此外,如果我在处理 MouseButtonRelease 接收到的事件时添加一个 3 毫秒的小延迟,那么我会在应用程序的工作方式方面获得所需的行为,但在我释放新闻之前我仍然没有收到我的鼠标事件。我根本不需要添加延迟,我希望我的鼠标向下发生,然后是任何移动,最后是鼠标向上事件
有谁知道如何解决这个问题或可能是什么原因造成的?非常感谢你!
--
在我真正抬起手指之前,我看不到以下打印出来的内容:
这是我的 eventFilter,我在其中检查我的应用程序中收到的事件:
这是我的延迟功能:
neon - 编译 Qt 嵌入式熊猫板时出错:[.moc/release-shared-emb-arm/moc_qabstractanimation.cpp] 错误 1
我正在尝试为熊猫板(OMAP4、4430)编译 Qt 嵌入式。我为 armv7 安装了这个交叉编译器:
我下载了最后一个 qt-embedded 源并将它们解压缩到文件夹中:
/opt/qt-everywhere-opensource-src-4.6.4
我复制了配置文件:
我修改了 mkspecs/qws/linux-arm-gnueabihf-g++/qmake.conf 如下:
我运行了配置:
但是,使用 make 命令编译当然会失败:
怎么了?