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

包装设计网站有哪些什么语言做网站好

包装设计网站有哪些,什么语言做网站好,钓鱼网站下载,网站建设需要写语句吗前言 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/783718.html

相关文章:

  • 某网站建设策划方案网页制作布局模板
  • 江苏网站建设公司114做网站
  • 六师五家渠市建设局网站网站修改关键词不收录
  • 南岗哈尔滨网站建设北京高端网站公司哪家好
  • 济南外贸网站建站石家庄免费自助建站模板
  • dedecms网站空白创一个公司要多少钱
  • setnet科技网站建设做我姓什么的网站
  • 多媒体资源库网站建设网站建设标准依据
  • 营销网站建设解决方案有哪些做分析图用的地图网站
  • 网站设计行业吃香么产品免费推广平台有哪些
  • 云南省建设学校网站如何访问国外网站
  • 免费网站建设专业服务平台企业微站系统
  • 怎么做淘宝客网站赚钱吗网站后台有显示前台没有
  • 双流建设局网站自适应wordpress模板
  • 网站建设覀金手指科杰深圳游戏网站开发
  • 深圳网站建设哪个好什么是微网站
  • 英文 edm营销 的网站 与 工具网站站长英文
  • 在百度备案网站wordpress防止数据库注入
  • 企业网站数据库设计表中国电商排名前十名
  • 禹顺生态建设有限公司网站七牛 wordpress插件
  • 公司网站数据分析公司从零开始学做网站 网站
  • 哪个网站可以找题目给小孩做做汽配的网站
  • wordpress加cnzz统计在那里加如何给网站做外部优化
  • 7个优秀网站设计赏析网站设计 视频
  • 用什么自己做网站吗在58做网站推广有用没
  • 建设建设银行甘肃分行网站无锡网站商城建设
  • 集趣网站怎么做兼职国内ui做的好的网站
  • 哪个网站可以做名片水母智能在线设计平台
  • 想做网站 优帮云新会住房和城乡建设部网站
  • 网站logo用什么来做深圳网站建设 壹起航