Qt编程笔记二

如何设置程序只运行一个实例

高分屏 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

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181101G00PUA00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

同媒体快讯

扫码关注云+社区

领取腾讯云代金券