技术专栏
Qt Pt转Px
Qt Pt转Px
界面开发时因为是在自己的电脑上,所以开发出来的效果看上去和自己预期的一样,但是发布出去后就不同了,不同的分辨率导致尺寸比例不同,会出现不协调的现象,想要解决这个问题就需要使用pt,但是设置的尺寸都是px,所以需要将pt转成Px.
在看代码前先了解几个概念:
pt (point,磅):
是一个物理长度单位,指的是72分之一英寸。
px (pixel,像素):
是一个虚拟长度单位,是计算机系统的数字化图像长度单位,如果px要换算成物理长度,需要指定精度DPI(Dots Per Inch,每英寸像素数),在扫描打印时一般都有DPI可选。Windows系统默认是96dpi,Apple系统默认是72dpi。
DPI(Dots Per Inch,每英寸点数):
是一个量度单位,用于点阵数码影像,指每一英寸长度中,取样、可显示或输出点的数目。
代码:
#ifndef PTFORPX_H
#define PTFORPX_H
#include <QApplication>
#include <QtGlobal>
#include <QScreen>
class PtForPx
{
public:
PtForPx(QApplication* App);
~PtForPx();
public:
static qreal dpiVal;
static qreal dpiValX;
static qreal dpiValY;
static int GetPxVal(int PtVal);
static int GetPxValX(int PtVal);
static int GetPxValY(int PtVal);
};
#endif // PTFORPX_H
#include "ptforpx.h"
qreal PtForPx::dpiVal;
qreal PtForPx::dpiValX;
qreal PtForPx::dpiValY;
PtForPx::PtForPx(QApplication* App)
{
QScreen *screen = App->primaryScreen();
dpiVal = screen->logicalDotsPerInch();
dpiValX = screen->logicalDotsPerInchX();
dpiValY = screen->logicalDotsPerInchY();
}
PtForPx::~PtForPx()
{
}
int PtForPx::GetPxVal(int PtVal)
{
int Pixel = dpiVal * PtVal / 72;
return Pixel;
}
int PtForPx::GetPxValX(int PtVal)
{
int Pixel = dpiValX * PtVal / 72;
return Pixel;
}
int PtForPx::GetPxValY(int PtVal)
{
int Pixel = dpiValY * PtVal / 72;
return Pixel;
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
<
声明:本文内容由易百纳平台入驻作者撰写,文章观点仅代表作者本人,不代表易百纳立场。如有内容侵权或者其他问题,请联系本站进行删除。
红包
36
7
评论
打赏
- 分享
- 举报
评论
0个
手气红包

相关专栏
-
2024-01-03 22:05:50
-
2023-01-04 15:09:58
-
浏览量:5092次2021-12-11 15:15:29
-
浏览量:5605次2022-03-03 09:00:09
-
浏览量:2220次2023-04-19 09:11:52
-
浏览量:2633次2022-12-08 23:43:55
-
浏览量:46012次2019-07-25 11:31:42
-
2024-01-22 16:01:53
-
浏览量:12463次2020-12-02 22:49:48
-
浏览量:4879次2017-10-30 11:12:34
-
浏览量:3913次2020-08-21 19:40:26
-
浏览量:1885次2024-02-19 15:26:47
-
浏览量:2281次2024-03-05 15:34:48
-
浏览量:2779次2019-12-05 16:39:49
-
浏览量:2885次2020-04-24 17:44:09
-
浏览量:5383次2017-11-16 11:35:44
-
浏览量:10616次2020-11-24 23:10:14
-
浏览量:2066次2020-08-22 16:10:10
-
浏览量:2988次2017-12-27 13:40:31
置顶时间设置
结束时间
删除原因
-
广告/SPAM
-
恶意灌水
-
违规内容
-
文不对题
-
重复发帖
打赏作者

小王子🤴
您的支持将鼓励我继续创作!
打赏金额:
¥1

¥5

¥10

¥50

¥100

支付方式:

举报反馈
举报类型
- 内容涉黄/赌/毒
- 内容侵权/抄袭
- 政治相关
- 涉嫌广告
- 侮辱谩骂
- 其他
详细说明
审核成功
发布时间设置
发布时间:
请选择发布时间设置
是否关联周任务-专栏模块
审核失败
失败原因
请选择失败原因
备注
请输入备注