锁定老帖子 主题:300行代码你能做什么
该帖已经被评为精华帖
|
|
---|---|
作者 | 正文 |
发表时间:2009-09-03
最后修改:2009-09-03
看着布局代码的风格,有点像我以前写EXT布局代码的风格,贴出看看:
//AddFromPanel function getFormPanel(type) { var formPanel = new Ext.FormPanel({ labelAlign: 'top' ,bodyStyle: 'padding: 5px' ,frame: true ,items: [{ layout: 'form' ,border: false ,items: [{ xtype: 'fieldset' ,title: '请填写' ,autoHeight: true ,items: function(){ // this = button in tbar var items = App.formItems(dataColumnModel, [ [{'type': {value: type, disabled: true}}], [{'type': {value: type, hidden: true, hideLabel: true}}], ['flag', 'sort', 'level'], ['name'], clientExtraFields[type], ['telephone', 'fax', 'zipcode'], [{'address': {anchor: '95%'}}], [{'website': {anchor: '95%'}}], [{'info': {height: 120}}] ]); return items; }() }] }] ,buttons: [ { text: '保存' ,handler: saveForm }, { text: '重置' ,handler: function(){this.ownerCt.getForm().reset();} } ] }); return formPanel; } 渲染出来的效果如图: |
|
返回顶楼 | |
发表时间:2009-09-03
依样画葫芦:
require 'gtk2' require 'simple_layout' class MyWin < Gtk::Window include SimpleLayout::Base def initialize super('添加新客户') add my_layout signal_connect('destroy') do Gtk.main_quit end end def my_layout frame ' 请填写 ', :border_width => 5 do vbox do with_attr :border_width => 5 do vbox do hbox{ label '客户种类:'} combobox end hbox do with_attr :set_size_request => [200, -1], :border_width => 5 do vbox do hbox{ label '合作标记:' } combobox end vbox do hbox{ label '客户类别:' } combobox end vbox do hbox{ label '客户级别:' } combobox end end end vbox do hbox{ label '公司名称:' } entry :layout => [true, true] end vbox do hbox{ label '集团名称:' } entry :layout => [true, true] end hbox do with_attr :set_size_request => [200, -1], :border_width => 5 do vbox do hbox{ label '公司电话:' } entry :layout => [true, true] end vbox do hbox{ label '传真号码:' } entry :layout => [true, true] end vbox do hbox{ label '公司邮编:' } entry :layout => [true, true] end end end vbox do hbox{ label '公司邮编:'} entry :layout => [true, true] end vbox do hbox{ label '公司网站:' } entry :layout => [true, true] end vbox do hbox{ label '概况'} frame :border_width => 3 do scrolled_window do text_view :set_size_request => [-1, 100] end end end end hbox do hbox :layout => [true, true] hbutton_box :border_width => 5 do button '保存' button '重置' end hbox :layout => [true, true] end end end end end MyWin.new.show_all Gtk.main |
|
返回顶楼 | |
发表时间:2009-09-03
不错不错,现在是没有时间学这个!看以后吧
|
|
返回顶楼 | |
发表时间:2009-09-03
为什么要写?还是喜欢拖。。。。。
|
|
返回顶楼 | |
发表时间:2009-09-03
jinleileiking 写道 为什么要写?还是喜欢拖。。。。。
代码生成界面有两个好处: 1. 动态界面,例如你可以从数据库中生成界面,根据不同数据类型提供不同的界面等。 2. 用普通的代码版本管理工具就可以跟踪变化记录,并且具有良好的可读性。 另外,和HTML类似,为什么要用文本编辑器写HTML?(可视化工具多了是...) |
|
返回顶楼 | |
发表时间:2009-09-04
建议 ls 用 dreamweaver 敲标签 ……
不关门不是什么大事,用 tidy 刷一遍就全关上了,有些不关上的浏览器也能认,节约带宽,保护环境 …… ps:现在的 XUL 可读性太差了。 |
|
返回顶楼 | |
发表时间:2009-09-04
rubynroll 写道 代码生成界面有两个好处:
1. 动态界面,例如你可以从数据库中生成界面,根据不同数据类型提供不同的界面等。 2. 用普通的代码版本管理工具就可以跟踪变化记录,并且具有良好的可读性。 另外,和HTML类似,为什么要用文本编辑器写HTML?(可视化工具多了是...) 嗯支持一下~我也是比较喜欢用代码写界面。 以前写页面的时候用过一段时间AceHTML Pro,感觉还不错。虽说是“敲代码”但能够被自动补全的地方也很多 现在用WPF我也还是经常手写XAML……顺手些而且容易控制版本一些 =v= |
|
返回顶楼 | |
发表时间:2009-09-04
好文,收藏了.....
我写桌面的机会不多, 偶尔玩玩更喜欢Shoes |
|
返回顶楼 | |
发表时间:2009-09-04
编写界面一个很重要的就是component复用,把事件。属性封在component的边界里。同时要兼顾美观、通用。
比如普通一点的界面,至少有个menu bar有menu item,有menu event,用代码写起来是很乏味的。 其实是就是象.NET FORM,动态生成界面也是很简单的,以上说的什么用代码编写可以存数据库是毫无关联的。 |
|
返回顶楼 | |
发表时间:2009-09-04
subwayline13 写道 另外你这两点好处基本上不成立,或者说现在的开发工具已经完全实现了,你装个VS20008就知道了。 用MFC的话,rc文件可读性不算好,你能从rc文件中看出UI? 而即使是.NET, VS生成的代码由于没有象builder-style那样体现UI的层次,因此当你从SCM结果中观察diff时也不能很好地看出真正变化了什么。 至于动态界面,VS2008可视化似乎帮不上什么忙。 |
|
返回顶楼 | |