`
chinamming
  • 浏览: 141073 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

FLTK学习-5-使用FLUID编程(3)

 
阅读更多

11.6 FLUID 参考手册

本节描述了FLUID的各个窗口。

11.6.1 构件浏览器

主窗口显示一个菜单栏和包含所有已定义的构件的滚动浏览器。正在编辑的.fl文件的名字显示在窗口标题栏。

构件分层存储,你可以通过点击构件左边的三角形打开或者关闭一层。最左边的是父母,他们下面所列出的所有构件都是他们的孩子,父母可以没有孩子。

分层结构的最上层由函数和类构成,它们每一个都可以在输出的.cxx文件中生成一个单独的C++公共函数或者类。调用函数或者实例化类将创建它的所有子构件。

分层机构的第二层包含窗口,每一个产生一个Fl_Window实例。

再往下层就是构件(Fl_Widgets的子类)或者构件组(包含其他组)。简单的构件组是为布局、导航和调整大小之用。标签组提供了著名的标签卡界面。

构件在浏览器中以名字显示(例如:例子中的”main_panel”)或者以类型和标签显示(例如:”Button””the green”)。

你可以通过点击构件的名字选择它,这将高亮显示选中的构件(你可以通过显示窗口选中构件)。你可以通过将鼠标拖过构件选中多个构件,或者通过按住Shift键然后用鼠标点击选中或者取消选中多个构件。要取消选中,可以点击最后一个构件下面的空白区域。注意:隐藏的孩子可能会在不知不觉中被选中(没有界面上的指示)。

你可以通过双击打开构件,或者通过按F1键打开多个选中的构件,你可以通过显示的一个控制面板来改变构件(们)。

11.6.2 菜单项

顶部的菜单栏可以在任何显示的窗口上作为弹出菜单弹出。在任何窗口上都可以使用所有菜单项的快捷键。菜单项如下:

File/Open…(Ctrl+o)

放弃当前的编辑文件,读入一个新的.fl文件,如果你已经对当前文件进行了修改,你需要进行确认(放弃当前的编辑文件)。

FLUID也可以读由Forms和XForms程序生成的.fd文件,最好是使用文件融合而不是直接打开。FLUID并不完全认识.fd文件,将对所有不认识的数据在控制终端打印一条警告信息。你可能需要对结果进行编辑以修复这些错误。小心不要不改变文件名就保存,因为FLUID将以它自己的方式改写.fd文件,改写之后的文件fdesign程序将无法再读取。

File/Insert…(Ctrl+i)

在不改变当前fl文件名的情况下插入另一个fl文件的内容。所有的函数(即使他们与当前文件中的名字相同)将被加入,你需要使用剪切/粘贴来将构件放到你希望的位置。

File/Save(Ctrl+s)

将当前数据写入fl文件,如果文件未命名,FLUID将询问文件名。

File/Save As... (Ctrl+Shift+S)

询问新的文件名保存文件。

File/Write Code (Ctrl+Shift+C)

编辑数据生成cxx和h文件,这跟你使用-c选项运行FLUID时产生的文件一模一样。输出文件名与fl的文件名一样,只是将fl换为了h或者cxx而已。

File/Write Strings (Ctrl+Shift+W)

为当前文件中的所有文本标签写一个信息。输出文件名与当前文件一样,忽略路径,将fl换成了txt、po或者msg,具体情况取决于国际化模式。

File/Quit (Ctrl+q)

退出FLUID,如果你修改了当前文件,将弹出询问确认。

Edit/Undo (Ctrl+z)

这个还没有实现,你最好经常保存一下以便能够从你犯的错误中恢复。

Edit/Cut (Ctrl+x)

删除选中的构件以及所有他们的孩子,他们被保存在剪贴板文件中可以他们粘贴到任何FLUID窗口中。

Edit/Copy (Ctrl+c)

复制所有选中的构件和他们的孩子到剪贴板。

Edit/Paste (Ctrl+v)

从剪贴板上粘贴构件,如果构件是窗口,它将被加入任何选中的函数或者包含在当前选择中。如果构件是一个普通的构件,将被加入到任何选中的窗口或者构件组中,如果没有窗口或者构架组被选中,那么将加入到当前选择的父窗口或者构件组中。

为避免混乱,最好在粘贴之前选中一个构件。

剪切/粘贴是唯一改变构件的父对象的方式。

Edit/Select All (Ctrl+a)

选中当前选择所在的构件组中的所有构件。如果他们已经选中了那么该操作将选中该构件组父对象中的所有构件。重复执行Ctrl+a选中范围将逐步扩大直到全部选中。

Edit/Open... (F1 or double click)

在属性面板中显示当前构件,如果当前是一个不可见的窗口那么窗口将会显示出来。

Edit/Sort

对选中的构件按照从左到右,从上到下的顺序排序。要使FLTK的导航键正常工作你需要这么做【??】,你可能需要使用”Earlier”和”Later”来执行精细的排序【??】。这不会影响窗口的位置以及函数。

Edit/Earlier (F2)

将父母对象中的所有选中构件按照【加入?】时间由晚到早先后排序(如果可能的话),这将影响导航顺序,如果构件有重叠也将影响它们的重绘,因为后【加入的?】构件在先【加入的?】构件之上绘出。你也可以用该操作来对函数、类以及函数中的窗口进行重新排序。

Edit/Later (F3)

将父母对象中的所有选中构件按照【加入?】时间由早到晚先后排序(如果可能的话)。

Edit/Group (F7)

创建一个新的Fl_Group对象,并且将当前所有选中的组件设为它的子构件。

Edit/Ungroup (F8)

如果一个组构件中的所有子构件都被选中的话则删除该父构件。

Edit/Overlays on/off (Ctrl+Shift+O)

在不改变选择的情况下切换红色覆盖区域的显示【??】。这使得更容易查看框的边界以及布局如何,如果你改变了选择,覆盖将强制到后面【??没看懂】。

Edit/Project Settings... (Ctrl+p)

显示工程设置面板,输出文件名控制由FLUID生成的文件的名字或扩展名。如果你选中了”Include .h from .cxx”按钮,代码文件将自动包含头文件。国际化选项将在本章的后面介绍。

图11.7 FLUID偏好窗口。

Edit/GUI Settings... (Shift+Ctrl+p)

显示GUI设置面板,该面板用于控制用户界面设置。

New/Code/Function

创建一个新的C函数,你将被要求给函数一个名字,该名字必须是一个合法的C++函数模板,不需要返回值。你可以传递参数,在构件中输入的代码中你可以引用这些参数【??】。

如果函数包含未命名的窗口,应该将其声明为返回Fl_Window指针,未命名的窗口由它(函数)返回(多于一个的未命名窗口是无效的)。如果函数包含的都是命名的窗口,它可以无返回值(返回void)。

将.cxx输出生成为一个可以编译运行的自包含程序是可行的。这通过将函数名删除???【看不懂,原文: This is done by deleting the function name so main(argc, argv) is used】。函数将在所有窗口创建时调用show()函数,然后调用Fl::run(),这还可以用来测试调整大小或者其他用户界面行为。

你可以通过双击函数修改函数名。

New/Window

创建一个新的Fl_Window构件,窗口将被加入到当前选中的函数中或者包含当前选中项的函数中。该窗口将以100x100的尺寸显示,你可以调整到你想要的大小。

构件面板将同时显示,关于它的介绍将在本章稍后给出。

New/...

在New菜单项上的所有其他项都是Fl_Widget的子类,创建它们将把它们添加到当前选中的组件组或者窗口或者包含当前选中构件的窗口或者构件组。如果可能的话初始的维度和位置将选择复制当前的构件。当你创建构件时构件控制窗口将显示,后面将会对它进行介绍。

Layout/Align/...

将所有的选中构件以第一个为基准对齐。

Layout/Space Evenly/...

将选中的构件在选中空间中均匀分布,构件将从第一个到最后一个排序。

Layout/Make Same Size/...

将所有选中的构件调整为与第一个选中的大小一样。

Layout/Center in Group/...

将所有选中构件以他们的父构件为基准中心对齐。

Layout/Grid... (Ctrl+g)

显示网格设置面板,该面板控制你移动或者调整构件大小时对齐,网格对齐就是你拖拽时你一个移动的最小距离【就这么个意思吧】。

Shell/Execute Command... (Alt+x)

显示shell命令面板,shell命令在运行”make”脚本编译FLTK输出时经常使用。

Shell/Execute Again (Alt+g)

再次运行shell命令。

Help/About FLUID

弹出FLUID版本面板

Help/On FLUID

显示手册的本章。

Help/Manual

显示手册的目录页。

11.6.3 构件面板

当你双击一个构件或者一组构件时,你将获得构件属性面板。当你使用此面板修改属性时,改变将会在窗口中实时反映出来。点击”no overlay”按钮来隐藏红色轮廓线是很有用的,它可以使你更准确的看清构件,特别是在设置框的样式时。

如果你选择了多个控件,它们的域可能有不同的值,这种情况下有一个构件的值被显示出来,但是如果你改变这个值所有选中构件的值将会变为这个值。

点击”OK”保存修改,选择另一个构件也可以保存修改,FLUID检查简单的语法错误,例如在保存文本之前的代码中的括弧的不匹配。

“恢复”或者”取消”将使得所有的构件恢复到打开面板之前的状态或者上次点击OK时,但是在当前版本的FLUID中,改变了”可视化的”属性(例如:颜色,标签或者边框)将不能够通过恢复或者取消来复原,但是对于代码如回调的修改可以复原。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics