Qt调整分辨率让文字变大或变小
前言
这个问题其实一般情况下都不用考虑好像。但是我遇到这个问题,于是就有了这俩种最优解决方案。
方案一:修改样式表
在样式表里固定文字大小,这样的化不论你如何调整分辨率,字体也不会有所影响。
代码段:
font: 24pt "Arial";/*24pt//是文字大小,"Arial"是文字字体样式*/
样图:
方案二:在主函数中添加代码段main()
效果方面于上面的差不多,但是是在主函数中,对于部分需要大一点的字体不太友好。那些需要不同大小的文字,还是样式表修改好一点。(PS:在样式表中设置了字体大小会覆盖代码设置的)
源码:
QFont font(QStringLiteral("Tahoma")); //设置字体
font.setPixelSize(25); //设置字体大小
qApp->setFont(font);//设置到应用程序中
样图:
文字随着窗口变化百分比扩大缩小算法
(PS:放到全局事件中,要判断大小是否变化&&鼠标是否松开)
int Old_Width = re->oldSize().width();
int New_Width = re->size().width();
int Old_Height = re->oldSize().height();
int New_Height = re->size().height();
double Upstep_percentage = (New_Width - Old_Width)*0.1;
double shrink_percentage = (Old_Width - New_Width)*0.1;
if (Old_Width < New_Width && Old_Height < New_Height)
{
QFont ft;//QFont设置字体尺寸
int i_Upstep_percentage = 10 + (Upstep_percentage*0.1);
ft.setPointSize(i_Upstep_percentage );//设置字体大小
ui.label->setFont(ft);//设置label中文字大小
}
else if (Old_Width > New_Width && Old_Height > New_Height)
{
QFont ft;//QFont设置字体尺寸
int i_shrink_percentage = 10 + (shrink_percentage*0.1);
ft.setPointSize(i_shrink_percentage );//设置字体大小
ui.label->setFont(ft);//设置label中文字大小
}