用好控件的小技巧
时间:10-02
整理:3721RD
点击:
首先,我収现,如果你不选择 Picture控件右键菜单中的“Erase First”,那么整
个图片会更新得更快。如果你需要在图片上改变什么,我会试图只是重画图片中必
要的部分,而保留其余地方不变。因此,如果你是要处理一个很大的图片的话,那
么你需要不选择Erase First这个选项。
? 如果你需要重新绘制整个图片,你可以先擦除所有内容(否则新的画就会覆盖在老
的画中)。你可以简单地使用 Picture控件的 Erase First属性,将“1”连于此,
这样你就可以擦除内容一次,而不需要去改变真正的“Erase First”设定项。
? 在我的项目中,我在Picture控件中使用了很多拖拽的效果。有一个很聪明的方法
是,当你点击与拖拽 Picture控件中的对象时,我会利用“move”的这个行为,
让它看上去真的像随着鼠标光标移动,直到我放下这个对象。有两种方式可以解决
这个问题……其中一种是在你移动对象时,主 Picture控件中重新绘制图片。当
然,第事种方法看上去会运行得快得多……其实你可以有第事个 Picture 控件,是
一个透明的 Picture控件(边框也是透明)。然后在这个程序中,你可以在这个控
件中画需要移动的图案。然后,你根据鼠标的位置改变该控件的位置。这样也能达
到同样的效果,结果显示这种方式比第一种方式要快得多,并且也很酷。
? 在 Picture Function 函数板上有着许多函数和 VI用来在一个 Picture控件上绘制对
象,比如 Draw Point、Draw Line、Draw Rect 等。我倒不经常用这些 VI,作为替
代,我会使用像Microsoft Paint这样的软件来画我会在 Picture控件上用的物体的
位图。在很多场合,我会使用 Read from BMP File 这个VI 来读取位图到
LabVIEW,然后我会使用 Unflatten Pixmap VI 将它转换为 2 维数组。此时,我有
一个 2D数组常量,然后我可以通过使用 Draw Unflattened Pixmap这个VI使用
在我的程序框图中。这样,不需要画一堆复杂的绘画 VI,我就有了一个2D数组常
量,只有当我的对象图片出现变化时候才需要更新。
? 上面这个觃则的一个例外就是我会使用Get Text Rect 和Draw Text in Rect这两个
VI。该VI会让在 Picture控件中添加文本以及定义图片中有文字的区域变得很容
易,仍而允许我做一些很 Cool的亊情,比如当这些文字被点击,我可以显示一个
之前隐藏的组合框,仍而允许用户能够在我的 Picture控件中编辑文本。
好了,真的有点像意识流的写法,但我真诚希望这些要点将是各位希望通过使用
Picture 控件来实现很美观的 LabVIEW 界面的开収者们。在我开始这个项目乊前,有
人曾经告诉过我,你可以通过 Picture控件在 LabVIEW 下做出任何酷的界面,我现在
觉得他们说的挺对的。
个图片会更新得更快。如果你需要在图片上改变什么,我会试图只是重画图片中必
要的部分,而保留其余地方不变。因此,如果你是要处理一个很大的图片的话,那
么你需要不选择Erase First这个选项。
? 如果你需要重新绘制整个图片,你可以先擦除所有内容(否则新的画就会覆盖在老
的画中)。你可以简单地使用 Picture控件的 Erase First属性,将“1”连于此,
这样你就可以擦除内容一次,而不需要去改变真正的“Erase First”设定项。
? 在我的项目中,我在Picture控件中使用了很多拖拽的效果。有一个很聪明的方法
是,当你点击与拖拽 Picture控件中的对象时,我会利用“move”的这个行为,
让它看上去真的像随着鼠标光标移动,直到我放下这个对象。有两种方式可以解决
这个问题……其中一种是在你移动对象时,主 Picture控件中重新绘制图片。当
然,第事种方法看上去会运行得快得多……其实你可以有第事个 Picture 控件,是
一个透明的 Picture控件(边框也是透明)。然后在这个程序中,你可以在这个控
件中画需要移动的图案。然后,你根据鼠标的位置改变该控件的位置。这样也能达
到同样的效果,结果显示这种方式比第一种方式要快得多,并且也很酷。
? 在 Picture Function 函数板上有着许多函数和 VI用来在一个 Picture控件上绘制对
象,比如 Draw Point、Draw Line、Draw Rect 等。我倒不经常用这些 VI,作为替
代,我会使用像Microsoft Paint这样的软件来画我会在 Picture控件上用的物体的
位图。在很多场合,我会使用 Read from BMP File 这个VI 来读取位图到
LabVIEW,然后我会使用 Unflatten Pixmap VI 将它转换为 2 维数组。此时,我有
一个 2D数组常量,然后我可以通过使用 Draw Unflattened Pixmap这个VI使用
在我的程序框图中。这样,不需要画一堆复杂的绘画 VI,我就有了一个2D数组常
量,只有当我的对象图片出现变化时候才需要更新。
? 上面这个觃则的一个例外就是我会使用Get Text Rect 和Draw Text in Rect这两个
VI。该VI会让在 Picture控件中添加文本以及定义图片中有文字的区域变得很容
易,仍而允许我做一些很 Cool的亊情,比如当这些文字被点击,我可以显示一个
之前隐藏的组合框,仍而允许用户能够在我的 Picture控件中编辑文本。
好了,真的有点像意识流的写法,但我真诚希望这些要点将是各位希望通过使用
Picture 控件来实现很美观的 LabVIEW 界面的开収者们。在我开始这个项目乊前,有
人曾经告诉过我,你可以通过 Picture控件在 LabVIEW 下做出任何酷的界面,我现在
觉得他们说的挺对的。
谢谢
学习了
顶个
受益~·
学习了!
有三位图形模拟的控件吗
学习学习
写的很好
学习了谢谢!
谢谢!
你好,这个可否给个例子啊,菜鸟一个,我想实现某个图片或控件,从一个位置拖动到另一个位置,但拖动出来的图片或控件是原图片或控件的复制。谢谢。
顶一下
确实是给力的设计,顶顶顶小编啊 。
大家谁能给写个程序看看啊,我新手,看不懂,谢谢了。
菩提达摩额
学习。
记住
学习了
谢谢~~~
谢谢了 大爱你