Qt 使应用程序始终位于 Weston/Wayland 平台之上

2023-12-07

我想在 Wayland-Weston 桌面系统中安排两个应用程序的焦点。两个应用是:

  1. 用 Qt/QML 编写,全屏
  2. 使用 Wayland 客户端 API + OpenGL 编写,全屏

我想让 App#1 始终位于顶部,App#2 始终位于底部,即使我杀死并重生其中任何一个。我也想在它们都是全屏应用程序时执行此操作。

我进行了调查并发现了几种实现此目的的方法:

  1. Using wmctrl在桌面系统中排列窗口:我已经尝试过这个。但是,我得到Cannot open display.。后来我发现wmctrl不适用于 Weston/XWayland,仅适用于 X11。所以,我认为这不再是一个选择。

  2. 默认情况下,使 App#1 (Qt/QML) 始终位于顶部:为了解决此问题,我尝试在 main.qml 中添加以下内容:

    ApplicationWindow {
        visible: true
        visibility: "FullScreen"
        width: 1920
        height: 720
        flags: Qt.WindowStaysOnTopHint|Qt.FramelessWindowHint
    
        MainScreen{
            anchors.fill: parent
        }
    }
    
  3. 默认情况下,使 App#2(Wayland 客户端 API/OpenGL)始终位于底部。老实说,我对 Wayland Client API 不太熟悉,但如果可能的话,我可以在一些指导下探索它。

现在,我的重点是让 Qt 应用程序始终位于最前面。它在我的电脑上工作,但在目标平台上不起作用。我的电脑是 Ubuntu 16.04,带有 Xorg。目标平台有 weston compositor 和 xwayland 后端。我不知道为什么它在目标中不起作用。可能是桌面系统。任何指导和想法表示赞赏。谢谢

EDIT:主程序

    QGuiApplication app(argc, argv);
    QQmlApplicationEngine engine;
    engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
    if (engine.rootObjects().isEmpty())
        return -1;
    return app.exec();

EDIT主程序.qml

import QtQuick 2.0
import QtQuick.Controls 2.0
import QtQuick.Window 2.2
import "app/main"

ApplicationWindow {
    visible: true
    visibility: "FullScreen"
    maximumWidth: 1920
    maximumHeight: 720
    minimumWidth: 1920
    minimumHeight: 720
    width: 1920
    height: 720
    title: qsTr("App")
    flags: Qt.FramelessWindowHint|Qt.WindowStaysOnTopHint

    MainScreen{
        anchors.fill: parent
    }

}

EDIT:Qt版本 PC 上的 Qt 5.10.1,目标平台上的 Qt 5.8.0


我在 Qt Bugs 上提出了一个问题,并从 Qt 员工那里了解到,由于 Weston 合成器的限制,这是不可能的。因此,我要么创建自己的合成器,要么使用不同的合成器。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Qt 使应用程序始终位于 Weston/Wayland 平台之上 的相关文章

随机推荐

  • memcmp 返回值的大小是什么意思?

    我只是碰巧调试了一个令人难以置信的令人讨厌的错误 在我自己的 PC Windows 7 x64 MinGw 上 我的 C 程序将使用以下命令成功对数组进行排序 memcmp比较数组成员时 我的函数使用冒泡排序算法 它的骨架如下所示 void
  • 具有管理权限的进程在用户登录时运行

    我正在尝试找出如何解决特权获取问题 该应用程序需要桌面访问 因此它不能作为Windows服务执行 它必须创建一个窗口来接收其他进程使用SendMessage发送的消息 它必须用于等待消息确认 该应用程序应在用户登录时启动 并将管理用户会话
  • OpenGL ES 中的大滚动背景

    我正在为 iPhone 开发一款 2D 卷轴游戏 我有一个大图像背景 比如 480 6000 像素 只有一部分可见 正好一个屏幕的大小 480 320 像素 在屏幕上获得这样的背景的最佳方法是什么 目前 我将背景分为多个纹理 以绕过最大纹理
  • 从浏览器执行 HTTP PUT

    我想知道最终的 答案是什么 除了从浏览器进行 POST GET 之外 如何做其他事情 无论是 HTML 表单还是 Ajax 因为我听到关于哪些浏览器允许什么 特别是在 ajax 方面 的混合报告 当以 RESTful 风格构建后端时 最好使
  • Java序列化

    我现在正在学习如何使用进行序列化Java语言 我已经阅读了一些有关该主题的帖子和文档 并且尝试做一个简单的示例 如下 public class SterializeObject implements java io Serializable
  • 获取一系列待处理的承诺

    var arr 1 2 3 4 5 6 67 8 10 function f1 return arr map function member console log member return Promise resolve member
  • Angular 6 在两个不相关的组件之间传递数据

    我有课程详细信息组件 其中包含来自后端应用程序的数据 名为课程 我想将该数据传递给与该组件无关的另一个组件 课程播放 我想在这两个组件中显示从后端获得的相同数据 这是相关文件 应用程序路由模块 import NgModule from an
  • 批处理文件中的字符串替换

    我们可以使用以下命令替换批处理文件中的字符串 set str jump over the chair set str str chair table 这些行工作正常 并将字符串 jump over the chair 更改为 jump ov
  • Google 地图 API 错误:此 API 密钥无权使用此服务或 API。地点 API 错误:ApiTargetBlockedMapError

    我开始从我使用的 CMS 内的 Google 地图小部件收到此错误 This API key is not authorized to use this service or API Places API error ApiTargetBl
  • 在 Python 中生成 CSR

    我正在尝试在 Python 中生成 CSR 而不使用 OpenSSL 如果有人能指出正确的方向 我将非常感激 我假设你不想使用命令行 openssl 本身 Python 库就可以了 这是我编写的用于创建 CSR 的辅助函数 它从生成的密钥对
  • ConvertTimeFromUTC,处理澳大利亚夏令时

    我有以下代码 我有一位位于澳大利亚堪培拉的客户 它们通常是 UTC 10 但现在处于 DST 所以是 UTC 11 奇怪的是 当我运行此代码时 它没有考虑 DST 我认为 ConvertTimeFromUTC 可以处理 DST 我正在路过E
  • 使用 Xcode、Swift3 的 iOS Rich Push 通知但无法获取图像

    我正在尝试使用 Xcode Swift3 创建 iOS 丰富推送通知 我已经使用 php 的curl 命令确定推送通知 主题 正文 但我无法创建引用的丰富推送通知在本文件中 我添加了通知服务扩展 如下所示 File New Target N
  • JTextArea 中的行

    有没有可靠的方法来计算 JTextArea 中字符串如何划分为行 我有一个固定宽度的 JTextArea 当它被填充时 会添加一个新行并垂直扩展 现在 我需要确切地知道哪些字符位于哪一行 我可以使用字体规格来添加单个字符宽度 但我不知道这是
  • 如何对表中特定数量的行进行着色?

    如何仅对特定数量的行进行着色 这里我的显示屏只有前 7 行是白色的 其余的是灰色的 我想要 7 条白色线 7 条灰色线 7 条白色线 7 条灰色线等等 你可以尝试这样的事情 table gt span height 20px width 2
  • 将 php 变量添加到 css 语句中!

    我想在我的 css 样式声明中包含以下内容 是否可以
  • 如果表2中不存在,如何插入到表1中?

    我是mysql新手 如果 table2 中不存在记录 则将记录插入到 table1 时出现问题 我有 2 个表 table1 和 table2 其形式为 table1 dep id start stop modified deleted 1
  • 是否可以在Python中创建特定目录的快捷方式?

    我查了一下 inetrnet 但没有发现任何相关内容 所以我在这里问 是否可以使用 python 创建文件的快捷方式并将其放入我选择的特定目录中 例如 我在 C 中有一个名为 EXAMPLE 的文件夹 我想自动创建谷歌浏览器的快捷方式并将其
  • 我可以序列化 ruby​​ Digest::SHA1 实例对象吗?

    大家好 我正在 ruby sinatra 中重新实现现有的自定义文件上传服务 并使用 redis 作为后备存储 客户 计算 SHA1 哈希并启动上传 上传最多 64K 块直至完成 服务器 将块附加到文件 计算完整文件的 SHA1 哈希值以验
  • 在 Ansible 中,如何将活动角色的变量组合到一个数组中?

    看着 在 Ansible 中 如何将不同文件中的变量合并到一个数组中 答案之一建议使用包含变量要将多个来源的变量放入一个数组中 这是almost我需要什么 但不完全是 我正在设置 cloudfront logging 它需要 a 中的项目a
  • Qt 使应用程序始终位于 Weston/Wayland 平台之上

    我想在 Wayland Weston 桌面系统中安排两个应用程序的焦点 两个应用是 用 Qt QML 编写 全屏 使用 Wayland 客户端 API OpenGL 编写 全屏 我想让 App 1 始终位于顶部 App 2 始终位于底部 即