首页
学习
活动
专区
圈层
工具
发布

Qt-for-鸿蒙PC-无边框窗口开发实践

Sheets)进行样式定制 支持 Windows/Linux/macOS 平台 HarmonyOS 适配版本(Qt Quick): 使用 ApplicationWindow + QML 声明式语法 使用...QML 的 MouseArea 和 Button 实现交互 使用 QML 的 Gradient 实现渐变效果 使用 JavaScript 函数实现主题切换 完全适配 HarmonyOS 平台特性 核心技术要点...无边框窗口实现 3.1 QML 中设置窗口标志 在 QML 的 ApplicationWindow 中直接设置 flags: ApplicationWindow { id: root width...) { // 从最大化/全屏恢复时,将窗口定位到屏幕顶部 y = 0 // 确保窗口宽度不超过屏幕宽度 if (width > Screen.width...)确保窗口已创建 设置窗口背景色避免白色/黑色闪烁 问题2:窗口恢复时出现白色或黑色背景 原因:ApplicationWindow 的默认背景色是白色,透明时可能显示为黑色。

96710
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    OpenCV3 和 Qt5 计算机视觉:11~12

    为此,请打开 Qt Creator,然后从主菜单中选择“工具”,然后选择“选项”。 从左侧的列表中,选择Build & Run,然后选择Qt Versions选项卡。...以下是 QML 代码的示例,该代码导致创建具有指定宽度,高度和标题的空窗口(ApplicationWindow类型): import QtQuick 2.7 import QtQuick.Controls...首先打开 Qt Creator,然后在欢迎屏幕上按“新建项目”按钮,或者从“文件”菜单中选择“新建文件”或“项目”。...,因此您可以从磁盘加载它们,或者在我们的示例中,可以从作为资源存储在qml.qrc文件中并嵌入到可执行文件中的main.qml文件加载它们。...在此示例中,我们还使用了 QML Drawer,该 QML Drawer在调用其打开函数时在另一个窗口上滑动,并且我们已嵌入imgViewer作为此Drawer的子项。

    8.8K20

    Qt5+VS2017点击按钮打开新窗口

    2.添加按钮和槽函数 双击“解决方案资源管理器”中的“XXX.ui”打开ui编辑界面,拖一个PushButton在中间去。 ? 保存之后回到VS,找到QtFather.ui右键编译一下 ?...找到QtFather.h头文件,添加如下代码(图中红线报错不用管,正常的): 1 void slot1()为你打算用来连接按钮点击事件的函数名字,返回类型随意。 ?...顶顶顶顶 最后在QtFather.cpp中添加: 连接函数:ui.pushButton为你添加的按键的名字,SLOT(slot1())为刚刚的函数 connect(ui.pushButton, SIGNAL...3.添加新窗口 右键Form Files找到Add Qt Class ? 添加一个Qt GUI Class然后直接“Next"—>"Finish"不用改其他参数。 ?...回到QtFather.h添加头文件#include "QtSon.h"(也就是你刚刚添加那个),再创建一个新窗口的指针:QtSon *son; ?

    2.8K10

    Qt-for-鸿蒙PC-AnimationDemo 动画演示开源鸿蒙开发实践

    / └── 演示示例.gif # 演示动图 组件层次结构 ApplicationWindow (main.qml) ├── Column (主布局) │ ├── Rectangle...渐变效果动画实现 核心思想:使用独立的 NumberAnimation 实现淡入淡出效果,通过按钮控制。...ApplicationWindow { id: root // 窗口状态变化处理(修复最大化黑屏问题) onVisibilityChanged: { if...on alpha { loops: Animation.Infinite // 缺少 running 属性 // ... } 问题 2:动画切换时状态不正确 症状:切换动画时,新动画从错误的状态开始...原因: 窗口状态变化时没有重新启动动画 窗口尺寸变化导致动画计算错误 解决方案: ApplicationWindow { id: root // ✅ 正确:处理窗口状态变化

    57121

    Chrome下的打开新窗口

    一般点击打开新窗口,有几种方式: 1、超链接a  有href属性、target为_blank 2、iframe,其target为_blank 3、window.open的浏览器安全设置...> 4、form表单提交,同样target也必须设为_blank 现在遇到一个需求: 做了一个后台运维管理系统,在点击datagrid头部一个按钮,需要打开一个新窗口...因为extjs运行效率比较低,所以选择使用chrome访问系统,而在操作些按钮的时候发现很多很奇特的现象,这些现象只出现在chrome中: 1、打开一个窗口后,些窗口不关闭,将无法打开多个窗口,即使原有窗口关闭...,就是弹出的窗口是没有工具栏和地址栏的,且不在新选项卡中打开 后来搜索到一篇文章,有所启发,就有了如下的代码: var nwin = window.open(); nwin.location = ‘xxxx...’;//需要打开的地址 如果使用ajax请求地址后面的参数的话,需要将ajax改为同步,不然弹出的窗口会在新窗口中打开,而且没有工具栏和地址栏的

    5.4K30

    WPF 获取全局所有窗口的创建显示事件 监控窗口打开

    本文将告诉大家如何在 WPF 里面进行全局监控任意的窗口创建显示打开,可以获取到每个 WPF 窗口的打开的时机。...于是我就在自己的应用上写了一个逗比代码,强行弹出一个 Dialog 窗口出来,结果我就发现监控模块告诉了我有一个在白名单之外的窗口弹出了,如果确定这是符合开发预期的,那就需要手动修改白名单。...这是一个开发时的辅助机制,用来让开发者不要随便弹出窗口,我又好奇这个监控模块是如何监控到我弹出一个窗口的,学习了监控模块的机制,就写了这个博客 在 WPF 里面,可以通过 EventManager 监听全局的路由事件...于是就可以进行监控窗口创建显示 监听窗口的 SizeChangedEvent 路由事件是比较靠谱的方式,这个有一点点违反开发者的想法,开发者默认想的是使用 LoadedEvent 事件。...也可以在事件里面对每个窗口注入一些有趣的逻辑,或者是监听窗口的各个事件,输出更多日志,让开发者可以通过日志了解到当前有哪些窗口依然还在显示 这是另一位大佬写的代码,请看 https://gist.github.com

    3.8K50

    layui打开iframe窗口不刷新的问题

    这个问题可能是我工作以来,最死磕不算bug的一个了,晚上熬夜到三点钟,终于找到了解决的办法。...问题所在,我所用的layui后台管理系统的框架是之前遗留下来的,2017年的版本,iframe窗口不刷新的问题,也就是框架本身的缓存问题,现在layui针对这一问题已经升级版本,就不存在问题了。...先说一下要修改的地方:点击左侧的菜单栏(即打开一个新的iframe层页面),第一次打开的窗口会刷新,但是再次点击左侧菜单的时候就不会刷新了,每次这个页面获取到新的数据,iframe窗口里面都是有缓存的,...解决办法:打开tab.js文件 1:在配置里面添上 autoRefresh:true 2:写自动刷新的代码 if(_config.autoRefresh) {...原文作者:祈澈姑娘 技术博客:https://www.jianshu.com/u/05f416aefbe1 90后前端妹子,爱编程,爱运营,文艺与代码齐飞,魅力与智慧共存的程序媛一枚。

    1.1K00

    Qt for HarmonyOS PC 时钟应用开发实践

    QML 窗口结构: // main.qml - 基础结构 import QtQuick 2.15 import QtQuick.Window 2.15 Window { width: 800...width/height:设置窗口尺寸 Rectangle:填充整个窗口作为背景 1.2 运行验证 此时运行应用,应该看到一个纯色背景的窗口。...PC 平台的特殊性 特性 手机/平板 鸿蒙 PC 窗口大小 固定全屏 可调整窗口 交互方式 触摸 鼠标+键盘 分辨率 较低 较高 多任务 有限 完全支持 ️ 步骤九:适配鸿蒙 PC 9.1 调整窗口大小...对于 PC 应用,我们需要设置合适的窗口尺寸: Window { // 根据平台自动调整窗口大小 width: Qt.platform.os === "ohos" ?...PC 端功能扩展: 桌面挂件模式 多时区时钟并排显示 番茄钟功能 开机自启动 快捷键自定义 窗口置顶功能 跨平台特性: 云同步设置 多设备协同 统一的数据格式 自适应不同设备 继续探索,创造更多精彩的应用

    76010

    layui打开iframe窗口不刷新的问题

    这个问题可能是我工作以来,最死磕不算bug的一个了,晚上熬夜到三点钟,终于找到了解决的办法。...问题所在,我所用的layui后台管理系统的框架是之前遗留下来的,2017年的版本,iframe窗口不刷新的问题,也就是框架本身的缓存问题,现在layui针对这一问题已经升级版本,就不存在问题了。...先说一下要修改的地方:点击左侧的菜单栏(即打开一个新的iframe层页面),第一次打开的窗口会刷新,但是再次点击左侧菜单的时候就不会刷新了,每次这个页面获取到新的数据,iframe窗口里面都是有缓存的,...解决办法:打开tab.js文件 1:在配置里面添上 autoRefresh:true ?...ok,重新启动项目的时候,会发现缓存的问题已经解决。 ----

    5.1K20

    「游戏引擎 浅入浅出」98.1 SubstancePainter插件开发环境

    1.打开日志窗口点击菜单Window-Views-Log,打开日志窗口,方便插件打log做调试。图片2.插件目录点击菜单 JavaScript - Plugin Folder 打开插件目录。...在 plugins 插件目录,新建我们的第一个插件目录helloworld,并创建文件toolbar.qml、main.qml。...toolbar.qml描述了自定义按钮的属性,代码如下:import QtQuick 2.7import AlgWidgets 2.0import AlgWidgets.Style 2.0AlgButton...{tooltip: "这是一个按钮,点击会在log窗口输出helloworld"iconName: ""text: "第一个插件"}main.qml 将toolbar.qml描述的自定义按钮,添加到工具栏...描述的按钮,添加到工具栏var InterfaceButton = alg.ui.addToolBarWidget("toolbar.qml");// 给按钮加事件if( InterfaceButton

    1.5K20
    领券