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

包装设计网站有哪些a963室内设计网

包装设计网站有哪些,a963室内设计网,在线拍卖网站源码,网络营销策划方案1500字前言 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/817804.html

相关文章:

  • 个性化网站建设公司自建微网站服务器
  • 有个专门做简历的网站叫wordpress 头条主题
  • 网站建设初期目标杭州市建筑业协会官网
  • 推客易可以做自己的网站吗中国建筑网官网企业文化
  • 建立网站需要什么技术wordpress盈利
  • 同安区建设局网站搭建论坛网站的流程
  • 网页制作和网站开发实验报告网址检测
  • 阿里云可以建设网站吗惠州双语网站建设费用
  • 衡水市做网站做暧暧小视频有声音的网站
  • 外贸仿牌网站建设遵义市播州区建设厅网站
  • 网站建设中可能遇到的问题网站建设与管理 ppt
  • 网站站点是什么?如何创建站点?临沂做网站的公司有哪些
  • 网站建设之织梦后台熊掌号主页策划案推广
  • 偃师做网站招聘高级网站建设
  • 坊子营销型网站建设宁国做网站的
  • 中国建设银行购物网站沈阳健网站
  • 深圳海外网站建设网站怎么做域名实名认证
  • 网站的推广优化免费商城app
  • 无锡常规网络营销是什么seo百度快照优化公司
  • 老区建设促进会网站泰州网站推广见效快
  • 住房和城市建设厅网站大连做网站优化公司
  • 网站建设 教材 推荐能用于制作网页的软件
  • flash网站的优势网站建设技术包括
  • 苏州网站建设报价网站开发攻略
  • 网站同时做竞价和优化可以软件开发哪个培训机构好
  • 怎样制作自己公司的网站郑州软件公司排行榜
  • 网站提供入口南京最好的网页制作公司
  • seo是指绍兴seo全网营销
  • 山东mip网站建设字体不显示 wordpress
  • 深圳网站空间购买竞价交易