相关课程推荐:《8周LabVIEW视觉项目编程实战特训营》
作者:iwanttofly
labview8.2,x
功能说明:调用这个VI的上层VI在调整好界面后,一定要将前面板的最小尺寸设置为当前前面板大小,如下图所示:
方法是调整前面板为需要大小,然后通过"文件">>"VI属性">>"窗口大小",也可以直接CTRL+I再选择“窗口大小”,点击“设置为当前前面板大小”即可,
至于下一个“在不同分辨率下保持窗口比例”的选项,试过不勾选也不会出什么问题,以防万一,还是勾选上了。最后点击确定完成。
使用时直接将这个子VI放入到需要显示前面板的程序的后面板中即可(即直接调用)。如果A调用B,B再调用这个程序时,只对B起作用,如果需要对A也起作用
需要在B的后面板也加入这个程序。
这个VI只有错误输入输出,也可以不连接。
LabVIEW中,在不同的分辨率下或在窗口放大时会带来前面板严重变形的缺点一直都存在,虽然在VI的属性中可以设置“在不同的分辨率下保持窗口比例”和“窗口缩放时保持所有控件比例”这二个选项,但实践证明这二个选项并没有多大意义,仅仅这样设置的话前面板一样会变形,目前一般有二种方案解决,一个是在安装手册中规定用户只能在指定分辨率下进行安装使用,这一条似乎太过霸道,而且给人不够专业的感觉;另一个做法是通过API取得屏幕的分辨率,然后又有二种做法,一种是在打开程序时判断当前分辨率是否为合适的分辨率,如果不是则同样通过API设置屏幕的分辨率为自己指定的分辨率,在程序退出时再将分辨率设置回来;一种是取得当前的分辨率后,在程序中根据当前的分辨率大小重新设置前面板的大小。
后面的方法都没有试过,最后一种方法感觉效果会好一点,但比较麻烦,因为一个程序中显示的界面肯定不止一个的,这就需要对每一个用户能看到的界面在每一种分辨率下进行设置并测试,工作量比较大。
前阵子在对这个问题调试时突然发现修改分辨率后,如果有在VI属性的窗口大小中设置界面的最小尺寸,则虽然窗口不是我们设置的大小,但如果鼠标拖动界面右下角进行缩放时,界面一下子就自动跳回理想的大小了,由此想到可能是窗口的最小尺寸起了作用,想到编程来设置的话也许能起到一定的效果,马上写了个程序,在自己机子上运行后真的可以自适应分辨率的变化,生成EXE后也没有发现什么问题。
但后来多试了几台机,似乎发现在个别机子上会失效的情况出现,但概率不大,具体原因不明。不管怎么样,至少方法简单一点,也许对大家有点帮助,附件中有对应的源程序和生成的EXE,希望大家下载在自己机子上试用后可以将试用的结果告之一下,谢谢
不知道那些大公司是怎么样解决这个问题的?NI也不想个办法解决一下这些问题...
主要思路,在屏幕分辨率改变后,根据原来设置的最小尺寸再次将前面板设置为最小(最佳)的尺寸。
调用这个VI的上层VI在调整好界面后,一定要将前面板的最小尺寸设置为当前前面板大小,如下图所示
方法是先调整前面板为需要大小(理想大小),然后通过"文件">>"VI属性">>"窗口大小",也可以直接CTRL+I再选择“窗口大小”,点击“设置为当前前面板大小”即可。
至于下一个“在不同分辨率下保持窗口比例”的选项,试过不勾选也不会出什么问题,以防万一,还是勾选上了。最后点击确定完成。
使用时直接将这个子VI放入到需要显示前面板的程序的后面板中即可(即直接调用)。如果A调用B,B再调用这个程序时,只对B起作用,如果需要对A也起作用,需要在B的后面板也加入这个程序。
这个VI只有错误输入输出,也可以不连接。
程序为8.2写的,在8.2中生成的EXE。如果只有8.5的RUNtiME需要自己在8.5在重新生成一个EXE,附件中包括了源程序。
使用方法:R
1,运行可执行文件下面的“自适应屏幕分辨率测试(8.2).exe”,程序会显示一个波形图、一个表格和二个按钮,其中波形图和表格控件主要是为了更容易识别界面是否变形,如果你的分辨率没有跟我机子上的一致时看到的是变形的界面,此时可以点击“自适应分辨率”按钮,界面会自动调整到最佳状态;
2,程序运行时修改显示器分辨率,修改后界面发生变化,如果分辨率是从小变到大的话则窗口变大,会有多余的界面显示出来,反之,分辨率从大变到小时窗口中的波形图和表格会有部分不可见;
3,此时点击“自适应分辨率”按钮,界面会自动调整到最佳状态;
4,更换为其它分辨率重复2-3步,得到最终的结果。
114
|
|
|
|
.............................
|
|
|
|
|
求问,如果做界面时是在大的显示器上做得,换到小的之后,这个还管用吗?我看这个开始就是比较小的一个界面,这么小的像波形什么的根本看不清楚啊
|
|
|
|
|
头像被屏蔽
· 2014-2-20 13:08:12
|
|
|
|
|
xiexie!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
|
|
|
let me see see,想写个可以自动调整界面的,但也会想到所有的界面都这么处理的话工作量会比较大~
|
|
|
|
|
刚好遇到了这样的问题,学习学习
|
|
|
|
|
顶~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
|