ar plugin = require('topsin.gengui'); var gui = plugin.newGui(plugin.__dirname); function gen() { this.PAUSE = function () { console.log("pause"); } } gui.setLang("zhcn"); // zhcn, zhtw, en r = gui.showForm({ title: "注册账号", size: [600, 400], ui: [{ type: 'ScrollArea', property: { widget_resizable: true, frame_shape: 'NoFrame', align: 'Top' }, child: { type: 'VBoxLayout', property: { margin: 2, spacing: 20, align: 'Top' }, pack: { stretch: 0 }, child: [ { type: "FormGridLayout", property: { columns: 1, label_alignment: 'Top | Right', margin: 10, spacing: 20 }, pack: { stretch: 0 }, child: [ { name: 'username', type: 'LineEdit', pack: { label: "用户名" }, property: { enabled: true } }, { name: 'password', type: 'LineEdit', pack: { label: "密码" }, property: { echo_mode: "password" } }, { name: 'sex', type: 'ComboBox', property: { enabled: true, item_list: [ { name: "male", icon: "male", text: "男", text_zhcn: "男", text_zhtw: "男" }, { name: "female", icon: "female", text: "女", text_zhcn: "女", text_zhtw: "女" }, { name: "hideyoshi", icon: "circle-thin", text: "Hideyoshi", text_zhcn: "秀吉", text_tw: "秀吉" } ] }, pack: { label: '性别' } }, { name: 'table', type: 'TableView', property: {}, pack: { label: '性别' }, initCallback: function (obj, self) { obj.setHeaderItem( [ {}, { name: 'analysis_item', display: 'Analysis Item', resizeMode: 'ResizeToContents', displayRole: '$analysis_item' }, { name: 'analysis_result', display: 'Analysis Result', resizeMode: 'ResizeToContents', displayRole: '$analysis_result' }, { name: 'result', display: 'Result', resizeMode: 'ResizeToContents', displayRole: '$result' }, { name: 'standard', display: 'Standard', resizeMode: 'ResizeToContents', displayRole: '$standard' }, { name: 'remark', display: 'Remark', resizeMode: 'ResizeToContents', displayRole: '$remark', editRole: '$remark', flagsRole: 'ItemIsEditable|ItemIsEnabled|ItemIsSelectable' } ] ); obj.setDataKeyList(["id", "analysis_item", "analysis_result", "result", "standard", "remark"]); obj.setPrimaryKey("id"); }, setter: function (obj, value, self) { if (value != null) { obj.loadData(value); } else { obj.clearData(); } } } ] } ] } }], data: { username: "elder", password: "nαive!", sex: "male" }, includehide: false, buttons: [ { stock: "ok", sensitive: true, command: function (data) { } }, { stock: "cancel", sensitive: true, command: function (ddata) { } }, { stock: "help", sensitive: true, command: function (data) { console.log(data); } } ], hook: function (data) { }, gen: new gen() }); console.log(r);