qt程序投大屏字体不清楚

qt程序投大屏字体不清楚,第1张

1、首先打开设置,下滑屏幕界面找到显示与亮度,进入界面后,下滑可以看到文字大小,点击进入后;

2、可以滑动下方按钮调整文字大小,调整到你喜欢的文字大小,点击左上角的返回键就可以了,另外在这个界面。

在QT中,我们经常使用 qDebug() 、 qInfo() 等来打印调试的信息,但是当打印信息过多时,很不利于查找阅读。所以本文介绍使用 QtMessageHandler 类中的 qInstallMessageHandler() 来自定义处理调试信息。

一、在主线程中注册调试信息处理回调

这里的 outputMessage 即为自定义的触发函数,当程序有调试信息时,将会调用此函数

二、实现触发函数

说明:此函数需要接受三个参数

QtMsgType type :表示调试信息类型,包括 QtDebugMsg (调试消息)、 QtInfoMsg (信息消息)、 QtWarningMsg (警告消息和可恢复的错误)、 QtCriticalMsg (关键错误和系统错误)、 QtFatalMsg (致命错误)

const QMessageLogContext &context :表示有关日志消息的其他信息,比如文件名 contextfile 、行号 contextline 等等。

const QString &msg :表示原始的调试信息。

这样,我们就可以根据调试信息类型,自定义处理调试信息,并打印到日志文件等等。

但是有时候,我们会有这样的需求,有些类型的信息需要打印到屏幕,而有些类型的信息需要打印到日志。当注册了调试信息处理的回调,如何分类去处理呢?

查看QT文档中对于 qInstallMessageHandler() 的描述,可以知道该函数返回一个指向上一个消息处理程序,可以理解为上一个消息处理函数的指针。因此在使用 qInstallMessageHandler() 注册回调时,可以保存函数的返回,从而用之前的处理程序来处理调试信息

例如:

使用 s_messageHandler 来保存函数的返回值,即指向了上一个消息处理函数。在 outputMessage() 函数中使用 s_messageHandler

这样就实现了将Info等信息打印到日志,而debug信息打印到屏幕。

注: 以上写入日志文件的写法,并不是线程安全的,需要加锁来保证线程安全,这里就不再赘述。

正常的运行程序,日志内容如下:

实际项目中遇到了编译出的Release版本,日志输出没有文件信息、行数的问题。如下:

解决方法:

在pro文件中添加宏

一定要先删除掉之前编译的中间文件,重新qmake!这样就可以在Release版本中正确输出日志信息。

19英寸、20英寸24英寸的都有。

CRT显示器的尺寸指显像管的对角线尺寸。最大可视面积就是显示器可以显示图形的最大范围。显像管的大小通常以对角线的长度来衡量,以英寸单位(1英寸=254cm),常见的有15英寸、17英寸、19英寸、20英寸24英寸等。

显示器是将一定的电子文件通过特定的传输设备显示到屏幕上再反射到人眼的一种显示工具。根据制造材料的不同,可分为:阴极射线管显示器,等离子显示器PDP,液晶显示器LCD等等。

使用QFont的setPointSize,此时字体的大小会跟随DPI改变而改变。

使用QFont的setPixelSize,此时字体的大小不会随DPI的改变而发生变化。

通过设置PointSize的字体来说,字体大小是随着屏幕大小以及分辨率自适应的,无须处理字体的缩放;

通过设置PixelSize的字体来说,所占分辨率大小固定,在相同尺寸上更高分辨率的屏幕上,由于其单位长度内的像素点数更多,即像素密度更大,字体会看起来小一些

要处理这种情况,一种办法就是所有字体都用PointSize来表示大小,但对于已经采用PixelSize的字体来说,就要对其进行控制缩放。 

通过qss来实现:

PointSize:    font-size:16pt;

PixelSize:     font-size:16px;

把这个程序运行下字符终端下到分辨率就出来了。

#include <stdioh>

#include <sys/typesh>

#include <sys/stath>

#include <fcntlh>

#include <linux/fbh>

#include <sys/mmanh>

#include <mathh>

int w,h ,bpp;

int fbmem;

int main(int argc , char argv[])

{

int fd;

struct fb_var_screeninfo fb_var;

fd = open("/dev/fb0",O_RDWR);

//

//screen w , h , bpp

//get screen information

ioctl (fd,FBIOGET_VSCREENINFO,&fb_var);

w = fb_varxres;

h = fb_varyres;

bpp = fb_varbits_per_pixel;

printf ("Framebuffer %d%d-%dbpp\n",w,h,bpp);

//fbmem = Framebuffer address

fbmem = mmap (0,whbpp/8,PROT_WRITE|PROT_READ,

MAP_SHARED,fd,0);

//y = 10,x = 200, color = 0xF800;

return 0;

}

如有问题联系我!

一般情况下,Qt程序使用Boost库崩溃不会导致屏幕刷屏。但是,具体情况可能因为 *** 作系统、硬件设备等因素而有所不同。

如果您的Qt程序在使用Boost库时出现了崩溃,并且同时出现了屏幕刷屏的问题,建议您检查以下几个方面:

1 确认是否存在其他异常:除了Qt程序和Boost库之外,还有没有其他应用或进程也出现异常?这些异常是否与Qt程序和Boost库的崩溃相关?

2 检查硬件设备:如果您的计算机或移动设备存在硬件故障,则可能会导致屏幕闪烁或者黑屏等问题。请检查电脑或手机等硬件设备是否正常工作。

3 检查 *** 作系统设置:某些 *** 作系统设置可能会影响到应用程序运行状态。请检查您的 *** 作系统设置并确认其符合要求。

4 尝试重新安装软件:如果以上方法都不能解决该问题,请尝试重新安装QT和Boost库以解决问题。

总之,在遇到Qt程序使用Boost库崩溃并且同时出现了屏幕刷屏等问题时,请先排除以上几种可能性,并采取相应措施进行处理。如仍然无法解决,请寻求更专业人士帮助分析原因并提供更好地支持。

以上就是关于qt程序投大屏字体不清楚全部的内容,包括:qt程序投大屏字体不清楚、QT 自定义处理调试信息、qt6 多显示器尺寸等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9793893.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-02
下一篇2023-05-02

发表评论

登录后才能评论

评论列表(0条)

    保存