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中文字大小
		}

猜你喜欢

转载自blog.csdn.net/weixin_45357007/article/details/125563501