当前位置: 首页 > wzjs >正文

展厅设计与施工抖音seo关键词优化排名

展厅设计与施工,抖音seo关键词优化排名,苏州seo网络推广,西安建设集团网站前言 Windows 显示设置中,可以修改缩放比,所有界面和文字会同比例放大或缩小,在开发桌面程序时, 实时监测Qt应用程序在不同缩放比例下的表现,可以及时调整程序界面以适应不同显示屏幕的需求。 正文 本文通过Qt相关…

前言

Windows 显示设置中,可以修改缩放比,所有界面和文字会同比例放大或缩小,在开发桌面程序时, 实时监测Qt应用程序在不同缩放比例下的表现,可以及时调整程序界面以适应不同显示屏幕的需求。
在这里插入图片描述

正文

本文通过Qt相关接口实时监测系统分辨率和缩放比的变化,并通过发送信号通知UI进行处理。兼容多屏情况,会自动检测软件窗口所在的屏幕。
关键代码:

// HighDpiHelper.h
#ifndef HIGHDPIHELPER_H
#define HIGHDPIHELPER_H#include "qfont.h"
#include "qscreen.h"
#include <QObject>
#include <QWindow>
#include <QGuiApplication>
#include <QDebug>/*** @brief The HighDpiHelper class* @author luoyayun361* 自动监测程序所在的屏幕 缩放比变化* 使用需要先调用 dpiHelper.setWindow(mainWindow),mainWindow是主窗口id*/class HighDpiHelper : public QObject
{Q_OBJECTpublic:HighDpiHelper() {//适配多屏幕的情况,只监测程序窗口所在的屏幕for(auto &screen : qApp->screens()){connect(screen,&QScreen::logicalDotsPerInchChanged,this,[=](qreal dpi){if(!m_win){return;}auto sc = QGuiApplication::screenAt(QPoint(m_win->x(),m_win->y()));auto send = qobject_cast<QScreen*>(sender());if(sc == nullptr && send == nullptr){return;}if(sc->geometry() == send->geometry()){qDebug() <<__FUNCTION__<< "logicalDotsPerInchChanged="<<dpi/96.;emit dpiChanged(dpi/96.0f);}});}for(auto &screen : qApp->screens()){connect(screen,&QScreen::geometryChanged,this,[=](const QRect &geometry){if(!m_win){return;}auto sc = QGuiApplication::screenAt(QPoint(m_win->x(),m_win->y()));auto send = qobject_cast<QScreen*>(sender());if(sc == nullptr && send == nullptr){return;}if(sc->geometry() == send->geometry()){emit screenGeometryChanged(geometry);}});}}Q_INVOKABLE void setWindow(QWindow *win){m_win = win;}//获取当前屏幕缩放比Q_INVOKABLE float getScreenScalingFactor() {auto sc = QGuiApplication::screenAt(QPoint(m_win->x(),m_win->y()));if(sc){return sc->logicalDotsPerInch() / 96.0f; // 96 dpi 是 Windows 的标准DPI,所有的缩放比都是相对于标准 DPI 的}else{return 1.0;}}//获取窗口所在的屏幕尺寸Q_INVOKABLE QSize getScreenAvailableSize() {auto sc = QGuiApplication::screenAt(QPoint(m_win->x(),m_win->y()));if(sc){return sc->availableSize();}else{return qApp->screens().first()->availableSize();}}signals:void dpiChanged(float scaleFactor);void screenGeometryChanged(const QRect &geometry);
private:QWindow *m_win = nullptr;
};
#endif // HIGHDPIHELPER_H

如果是在QWidget项目中,可以将QWindow 改成QWidget,然后将主窗口指针传进来即可。QML项目的话 直接使用QWindow就行。附件提供了两种场景下的demo调用。

本文demo下载

http://www.dtcms.com/wzjs/33264.html

相关文章:

  • wordpress+火车头接口seo专员是什么
  • 外卖优惠券网站怎么做网盘资源大全
  • 海淀深圳网站建设公司营销策划方案包括哪些内容
  • 重庆企业网站的推广陕西seo公司
  • logo设计及创意说明seo推广公司
  • 网站建设技术方面的论文上海培训机构白名单
  • 长沙 学校网站建设网络测试
  • 网站建设总结 优帮云优化大师官网登录入口
  • 中国企业网站免费发布广告的网站
  • 浙江省建设厅继续教育网站网站seo哪家好
  • 做老师好还是网站编辑好整合营销公司排名
  • 网站建设工作室北京小俊哥网络营销策划与创意
  • wordpress模板修改seo怎么学在哪里学
  • 班级的网站设计怎么做网站优化有哪些技巧
  • 江苏水利厅建设网站网站搜索优化方法
  • 网站推广员如何做西地那非片的功能主治
  • web用框架做网站步骤做公司网页
  • 青岛建网站公司珠海网站seo
  • 网站建设百度小程序百度分析
  • 利用免费网站做SEO百度云官网入口
  • 做网站前台用什么软件如何建立网页
  • 平阴网站建设seo优化的方法
  • 网站建设怎么让百度搜索到怎么用手机创建网站
  • 网站建设冫金手指谷哥十四seo管理是什么
  • 网站开发用php还是python网站建设营销型
  • 基层网站建设作用青岛seo优化
  • dw怎么做网站教程阿里关键词排名查询
  • 长安做英文网站在线seo超级外链工具
  • 网站内连接seo分析与优化实训心得
  • 怎样自己做网站推广2023半夜免费b站推广