问题标签 [qtwayland]

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.

0 投票
1 回答
1157 浏览

qt - Weston + Qt5 Minimal-QML 示例

我正在尝试运行Qt5 的 Wayland Compositor 示例之一。而且我意识到我仍然缺乏在 Wayland/Weston 上下文中显示服务器/客户端背后的概念。

当我运行 Qt5 合成器时,我应该让 Weston 作为显示服务器在后端运行,对吗?

0 投票
1 回答
1175 浏览

python - PyQt5 找不到 Wayland 插件

我目前正在尝试在 KDE Neon 上的 Wayland 会话中运行编写为使用 PyQt5 的程序,但是当我尝试启动它时遇到此错误:

有人建议我确保 qtwayland5 已经安装在我的系统上,情况就是这样,所以这似乎不是问题的根源。

此外,我已经确认使用我的发行版存储库中的 PyQt5 版本以及安装在 virtualenv 中的最新版本的 PyQt5 仍然存在此问题。

0 投票
1 回答
8287 浏览

qt - QT wayland 无法创建显示(没有这样的文件或目录)

我正在尝试使用 qtwayland 在 yocto 上创建一个 qt5 应用程序。当我运行我的应用程序时,“应用程序输出”显示此错误

“无法创建显示(没有这样的文件或目录)应用程序以退出代码 1 完成。” .

但是,bin 文件实际上已经成功部署,我可以通过手动打开文件在我的板上运行它。我也无法在我的板上调试。怎么解决,谢谢。

0 投票
1 回答
7559 浏览

qt - 在 Wayland 下运行 Qt 应用程序

跑步:

给出:

此应用程序无法启动,因为它无法在“”中找到或加载 Qt 平台插件“wayland”。

可用的平台插件有:eglfs、linuxfb、minimal、minimalegl、offscreen、vnc、xcb。

重新安装应用程序可能会解决此问题。中止(核心转储)

按照说明:如何构建 qtwayland?

运行 qmake 给出:

运行配置测试...完成运行配置测试。

配置总结:Qt Wayland Client ...................... 否

Qt Wayland 合成器 .................... 没有

注意:未检测到 wayland-egl 支持。禁用跨工具包兼容性。

qtwayland README 指出 2 个依赖项:

  1. xkbcommon 0.2.0 - http://xkbcommon.org/
  2. Wayland 1.6.0 - http://wayland.freedesktop.org/

在 fedora 28 上,默认安装 libxkbcommon。另外我还安装了 libxkbcommon-devel

尽管我的 gnome 会话在 wayland 下运行,但没有返回任何结果。

我知道我可以从https://wayland.freedesktop.org/releases.html下载 Wayland 。我下载并解压缩了 1.15,但不确定如何处理解压缩的源:我要构建它吗?我需要把它放在qtwayland可以找到的地方吗?

我看到fedora 28中默认存在以下文件:

/usr/lib64/qt5/plugins/wayland-graphics-integration-server/libwayland-egl.so

但是将其复制到 ~/Qt/5.10.1/gcc_64/plugins/platforms 并不能解决我的应用程序启动错误。

问题:如何让我的 Qt 应用程序在 Wayland 下运行?


为回答以下 bobbaluba 问题而添加:

我正在尝试针对官方 Qt 二进制文件构建 QtWayland,因为它不包括在内。

按照建议安装了 wayland-devel,但根据上面的消息,qmake 仍然报告没有配置 Qt Wayland Client。

尝试使用dnf安装qt5-qtwayland,报:包qt5-qtwayland-5.10.1-2.fc28.x86_64已经安装,跳过。

以下可能是相关的:

? sudo dnf whatprovides libwayland-egl.so

上次元数据过期检查:0:18:44 前,2018 年 5 月 9 日星期三 09:15:20 PM +08。

qt5-qtwayland-5.10.1-2.fc28.i686 :Qt5 - Wayland 平台支持和 QtCompositor 模块

回购:fedora

匹配自:

提供:libwayland-egl.so

? 查找 / -name libwayland-egl.so* -print

/usr/lib64/libwayland-egl.so

/usr/lib64/qt5/plugins/wayland-graphics-integration-server/libwayland-egl.so

? sudo ldconfig -p | grep wayland-egl

libwayland-egl.so.1 (libc6,x86-64) => /lib64/libwayland-egl.so.1

libwayland-egl.so (libc6,x86-64) => /lib64/libwayland-egl.so

安装了 Qt 5.11.0rc 导致

~/Qt/5.11.0/gcc_64/plugins/wayland-graphics-integration-server/libwayland-egl.so

~/Qt/5.11.0/gcc_64/plugins/wayland-graphics-integration-server/libwayland-egl.so.debug

被添加到 ~/Qt/5.11.0/gcc_64/plugins/platforms。

当我安装 Qt5.11rc 时,cmake 的 CMakeFile.txt 突然停止工作 - gcc 无法找到像 QDate 这样的 Qt 头文件。

尝试使用 Qt5.11 编译示例项目“地址簿”并得到:

QSocketNotifier:只能用于以 QThread 启动的线程

使用 Wayland-EGL

使用“xdg-shell-v6”外壳集成

简而言之,使用 Qt5.11rc 似乎可以解决问题。

0 投票
3 回答
653 浏览

yocto - 在 Ubuntu 14.04 上删除 local.conf 中的 Wayland 时出现 bitbake 错误

我正在使用 Yocto Project 2.4 和 i.MX6 Quad sabreSD 平台。我在我的 Ubuntu 16.04 计算机上构建 Yocto Project。

我想在我的 rootFS 中有 qt5.9 库,所以我使用以下命令构建我的图像。

在那之后,我尝试删除 Wayland,因为我想使用 eglfs 来播放我的应用程序。所以我将下面的行添加到 local.conf 中。

然后再次尝试 bitbake fsl-image-qt5 但这一次我得到了以下错误。

我在 Yocto Project 2.0 中执行的所有相同步骤都可以工作,但 Yocto Project 2.4 不能。

如何修复此错误?

如果我想用它-platform eglfs来运行我的应用程序,哪种方式最好?

0 投票
2 回答
1307 浏览

qt - 在 Yocto 中构建 qtwayland 失败

我正在使用 Yocto Rocko 构建 qt 框架,在构建 qtwayland 包时遇到了以下错误。

do_configure 任务的构建进度失败。我相信这是由于wayland-egl 的某些遗漏。任何想法可以帮助?

0 投票
0 回答
316 浏览

qt5 - 如何正确配置 Qt 应用程序以在 Wayland 平台上启动?

目前正在尝试在 Wayland 平台上启动 Qt 应用程序,但没有成功。我成功启动了其他基本应用程序,例如计算器或油漆样本。但我的应用程序收到以下错误:

QSocketNotifier:只能用于以 QThread 启动的线程

我找不到这个错误的原因。尝试使用以下值启动具有 env 变量“qt.qpa.plugin”的应用程序:wayland-egl、wayland、wayland-xcomposite-egl 总是得到相同的错误。

什么样的行为会触发此错误?

0 投票
0 回答
100 浏览

qt - QML:使用 NodeInstantiator 实例化时未触发 Scene2D 单击事件

我正在创建一个 3D QtWayland 合成器,当将 ShellSurfaceItems 放在 Qt3D 平面上时,我使用 NodeInstantiator。这样做会注册除我的 Scene2D 上的实体之外的所有属性(我用来在 3D 平面上显示 2D ShellSurfaceItem)

我已经尝试了从加载组件时设置实体属性到手动实例化我的自定义面板组件(所有 QML)的所有方法。实体根本不链接到 Scene2D 中的事件处理程序

节点实例化器:

面板.qml:

该程序应该在创建面板时将 Scene2D 单击处理程序链接到 Scene2D 类中的 ObjectPicker。然而,这并没有完成,因为 Scene2D 在entities属性更改时从不执行其内部方法。

0 投票
1 回答
106 浏览

c++ - 对于 qml 客户端,从 C++ 注册 QtWayland 失败

我的 qtwayland 合成器测试有一个奇怪的问题。它似乎只适用于 qt c++ 客户端。Qml 客户端以死锁结束,事件处理停止(对于客户端)。我已更改此https://doc.qt.io/archives/qt-5.11/qtwaylandcompositor-qwindow-compositor-example.html示例并添加以下功能:

对于 c++ 客户端,它会创建一个窗口并将客户端嵌入其中,而 qml 客户端则无响应。创建窗口、输出和 QuickItem 的顺序是否正确?我错过了什么吗?

谢谢,凯恩

0 投票
1 回答
436 浏览

x11 - wl_display_dispatch 和 wl_display_roundtrip 调用的顺序

我试图弄清楚在 wl_display_dispatch 和 wl_display_roundtrip 之间应该先调用哪一个,然后再调用哪一个。我已经看到了两个订单,所以想知道哪个是正确的。

我的想法是:wl_display_dispatch() 将从显示 fd 读取和调度事件,无论服务器发送但在服务器之间发送的任何内容都可能仍在处理请求,并且在短时间内 fd 可能为空。wl_display_dispatch 返回假设所有事件都已调度。然后调用 wl_display_roundtrip() 并将阻塞,直到服务器处理完所有请求并将其放入事件队列中。因此,在此之后,事件队列仍有待处理的事件,但没有调用 wl_display_dispatch()。这些待处理的事件将如何被调度?是 wl_display_dispatch() 等待服务器处理所有事件然后调度所有事件吗?

在这种情况下, wl_display_roundtrip() 等待服务器处理所有事件并将它们放入事件队列中,因此一旦返回,我们可以假设从服务器发送的所有事件都在队列中可用。然后调用 wl_display_dispatch() 将调度所有未决事件。

Order 2nd 在我看来是正确且合乎逻辑的,因为队列中没有剩余的未决事件。但是我已经在包括韦斯顿客户端示例代码在内的可能的地方看到了 Order 1st,所以我很困惑正确的调用顺序是什么。

如果有人能在这里澄清一下,那就太好了。提前致谢