如何设置程序只运行一个实例
高分屏 Qt界面文字放缩问题
QRadialGradient 赋值问题
1、如何设置程序只运行一个实例
在main函数中加入以上代码,Qt生成的exe程序就只能启动一次了,原理就是通过共享内存的方式。
2、Qt中高分屏 界面放缩问题
QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
直接在main函数中使用下面一行代码即可,然后在windows设置中可以设置放缩比例,控件的大小会根据这个比例自动放缩。
下面我们通过修改windows的放缩比例来看一下效果:
放缩比例为125%
放缩比例为150%
我们从上面的例子看到,一个是125%,一个是150%的放缩,整体控件都进行了放大,但是有个问题,文字怎么不跟着放大呢?
这个问题纠结了我半天,因为我发现界面上有些文字是可以随着系统缩放比例进行放缩的,而有些则不行,后来通过不断调试,才发现文字的放缩与控件是否设置字体大小有关。
1、可以给控件单独设置字体大小,但是此种方法需要一个一个控件进行设置。
setFont(QFont("Microsoft YaHei", 15));
2、通过样式表的方式,因为样式表是可以继承的,但是缺点就是字体大小不同仍然需要重新设置不同控件的字体大小。
setStyleSheet("font-size:15px;");
3、QRadialGradient 赋值问题
正常情况下。我们习惯使用这样直接进行赋值,但是如果后期想要修改怎么办呢?
QRadialGradient rgd(250,250,250,250,250);
为了寻找问题的解决办法我翻了一遍Qt助手文档,然后进行了各种尝试发现还是不行,后来翻了一遍QRadialGradient 的源码才知道方法。
如果不在构造中指定这些值或者后期想要修改位置,半径什么的,需要修改以下三个参数才可以生效,从文档中给了好多个set方法,怪我才疏学浅,没有看懂正确用法,最后的答案在QRadialGradient 构造函数的源码中找到。
所以,查找问题的解决办法不仅仅要在Qt助手中,还要再源码中寻求帮助。
QRadialGradient greenGradient(250,250,250,250,250);
// 这里如果需要修改之前的设置或者之前没有设置过,需要调用下面三行代码达到上一行代码的效果;
greenGradient.setCenter(QPoint);
greenGradient.setFocalPoint(QPoint);
greenGradient.setRadius(radius);
CSDN 博客
前行中的小猪
https://blog.csdn.net/GoForwardToStep
领取专属 10元无门槛券
私享最新 技术干货