http://hi.baidu.com/buptyoyo/blog/item/1bc2d8ed4cf8b406fdfa3c9e.html
思想就是在软件初始运行时,获取屏幕的宽高,与软件之前设计的界面的宽高进行除操作,分别计算出在横坐标方向和纵坐标方向的伸缩系数。然后把所有控件根据得到的伸缩比例重新计算其坐标和宽高,然后进行RESIZE。
注意的一点是尽量把原来控件上的图片也想办法拉伸。
以下具体介绍下:
获取屏幕分辨率方法:
int currentScreenWid = QApplication::desktop()->width(); int currentScreenHei = QApplication::desktop()->height();
对于LABEL控件可以使用setScaledContents(true)允许其伸缩,对于LABEL上之前添加的图片也会跟随LABEL的大小伸缩而伸缩。
对于其他控件类型,可以定义一个简单的函数来实现他们的伸缩
void MLCNWidget::resetGrid(QWidget *widget,double factorx,double factory) { int widgetX = widget->x(); int widgetY = widget->y(); int widgetWid = widget->width(); int widgetHei = widget->height(); int nWidgetX = (int)(widgetX*factorx); int nWidgetY = (int)(widgetY*factory); int nWidgetWid = (int)(widgetWid*factorx); int nWidgetHei = (int)(widgetHei*factory); widget->setGeometry(nWidgetX,nWidgetY,nWidgetWid,nWidgetHei); }
以上factorx,factory即指横纵方向上的伸缩比例,例如我原来的界面是设计的针对1920*1080分辨率的显示器的,而客户可能会把他拿到1680*1050分辨率的显示器上
所以factorx = 1680/1920.0 factory = 1050/1080.0。
相关推荐
PyQt5: 程序入口添加 QtCore.QCoreApplication.setAttribute(QtCore.Qt.AA_EnableHighDpiScaling) Qt5: 程序入口添加 ... 您可能感兴趣的文章:PyQt5 实现字体大小自适应分辨率的方法pyqt5 获取显示
解决qt程序窗口在不同的分辨率和缩放比下窗口分辨率出现的问题,绝对有效!
一个小小的实验,按分辨率缩放比例调整窗体、控件、字体大小。
具体原因可以上网查询,在这里将记录下解决方法。 这里记录两种方法,如果使用的Qt版本在5.6.0之后,可以支持High_DPI,应用设置该属性即可;如果不支持,可以为应用设置自适应字体。 if __name__ == __main__: v_...
系统根据当前dpi缩放设置,使用QT_SCALE_FACTOR环境变量,自动自适应屏幕demo,适用win10高分辨率下的不同设置
包含基本用法,主函数关联一个槽即可方便实现窗口自动跟随系统设置的比例
qt使用FFmPeg+SDL2.0+QOpenGLWidget实现的视频播放器,FFmPeg+SDL2.0解码音视频,视频图像解码为YUV420的格式,然后使用QOpenGLWidget进行显示。亲测在windows和Linux下都可使用,附带FFmPeg+SDL2.0第三方库 支持...
用于给QT开发的带ui程序,进行快速的全屏保持比例自适应不同分辨率的屏幕,无需进行特殊布局
款软件基于Qt框架,实现了在线画图的基本功能。 主要功能: 选择不同颜色和粗细的画笔进行绘图。 支持填充选定区域。 ...支持导入图片作为绘图底图...不同分辨率下界面自适应很好。 代码结构清晰规范,具有很好的扩展性。
本Demo使用Qt开发,获取分辨率大小,自适应测试整个屏幕,支持64阶灰阶、64阶棋盘、渐变背景颜色切换。
在Qt局域网聊天程序的到的东西...首先是获取屏幕分辨率,并实现自适应屏幕分辨率。 #ifndef VERDESKTOP_H #define VERDESKTOP_H #include #include class VerDesktop : public QObject { Q_OBJECT public: explic
在使用qtCreator中使用各种控件,默认是没有布局。在发布软件以后,如果软件在不同分辨率的屏幕显示界面时,是无法自适应屏幕分辨率的。就造成了显示不全或者显示太小等问题,,使用spacer控件
采用QT的前端界面QML框架...对数据输入及数据展示,采用了自适应布局,适用于不同设备的分辨率;对数据的展示,分别处理了键盘事件及鼠标事件,适用于桌面程序和移动APP程序;对代码进行逐行解释,适用于零基础的同学;
•AR8035网络芯片采用RGMII模式完美支持10M/100M/1000M网口自适应 通讯接口 •3路RS232串口,其中:1路为调试串口,2路RS232与RS485复用 •1路USB高速OTG,4路USB HOST,其中1路接入MIN_PCIE接口 •2路CAN接口,支持...