一个用于小型异步web应用程序的简单gui包

dominter的Python项目详细描述


dominter是一个用于小型异步web应用程序的简单gui(图形用户界面)python包。

功能

  • javascript风格的api和其他类型的api,可以写得更短。
  • 可以使用任何标记和属性。
  • 支持onclick()、onchange()和addEventListener()。
  • 支持多窗口。
  • 支持多实例和单实例。
  • 支持element.classname和element.style属性。
  • 对“hashchange”等事件支持window.addEventListener()。
  • 支持本地存储和会话存储。
  • 支持假窗口。onload()通知localstorage,sessionstorage和location已设置。
  • 支持invoke()从其他线程进行操作。
  • 只依赖于Tornado

安装

pip install dominter

示例

  • 你好,世界:
fromdominterimportWindow,start_appclassMyWindow(Window):def__init__(self):super().__init__()document=self.documentself.p1=document.createElement('p')self.p1.textContent="text content"self.btn1=document.createElement('button')self.btn1.textContent="button1"self.btn1.onclick=self.on_btn1document.body.appendChild(self.p1)document.body.appendChild(self.btn1)defon_btn1(self,ev):self.p1.textContent='Hello world!'win=MyWindow()start_app(win)
  • 不上课:
fromdominterimportWindow,start_appwin=Window()document=win.documenttag_p1=document.createElement('p')tag_p1.textContent="text content"defon_btn1(ev):tag_p1.textContent='Hello world!'tag_btn1=document.createElement('button')tag_btn1.textContent="button1"tag_btn1.onclick=on_btn1document.body.appendChild(tag_p1)document.body.appendChild(tag_btn1)start_app(win)
  • 三种类型的标记创建和子列表属性
fromdominterimportWindow,start_appwin=Window()document=win.document# js likep1=document.createElement('p')p1.textContent='by createElement() '# html like : specify all by text excepts event handlerp2=document.tag('p _="by tag() "')# use '_=' for textContent# individual tag methodp3=document.p('by p() method. ')document.body.childList=[p1,p2,p3]start_app(win)

单个标记方法: 标题,样式,链接,脚本, BR,P,SPAN,DIV,按钮, 文本,复选框,收音机,颜色, 日期,月,时间,周,数字, 密码,范围,选择,选项, 文本区域,表格,tr,th,td, 字段集,图例,IMG,A,标签, h1、h2、h3、h4、h5、h6、ol、li、ul、节、页眉、页脚

  • 多窗口
fromdominterimportWindow,start_appclassMyWindow1(Window):def__init__(self):super(MyWindow1,self).__init__()document=self.documentself.txt1=document.text('windows1')self.btn1=document.button('test1',onclick=self.on_btn1)document.body.appendChild(self.txt1)document.body.appendChild(self.btn1)defon_btn1(self,ev):self.txt1.value='changed1'classMyWindow2(Window):def__init__(self):super(MyWindow2,self).__init__()document=self.documentself.txt1=document.text('windows2')self.btn1=document.button('test1',onclick=self.on_btn1)document.body.appendChild(self.txt1)document.body.appendChild(self.btn1)defon_btn1(self,ev):self.txt1.value='changed2'start_app([MyWindow1(),# localhost:8888/index.htmlMyWindow2()])# localhost:8888/index1.html
  • 多实例和单实例
fromdominterimportWindow,start_appclassMyWindow1(Window):def__init__(self):super(MyWindow1,self).__init__()document=self.documentself.txt1=document.text('windows1')self.btn1=document.button('test1',onclick=self.on_btn1)document.body.appendChild(self.txt1)document.body.appendChild(self.btn1)defon_btn1(self,ev):self.txt1.value='changed1'classMyWindow2(Window):def__init__(self):super(MyWindow2,self).__init__()document=self.documentself.txt1=document.text('windows2')self.btn1=document.button('test1',onclick=self.on_btn1)document.body.appendChild(self.txt1)document.body.appendChild(self.btn1)defon_btn1(self,ev):self.txt1.value='changed2'start_app([MyWindow1(),# instance for single-instance. localhost:8888/index.htmlMyWindow2])# class for multiple-instance. localhost:8888/index1.html

热门话题
java如何在Salesforce中查询自定义对象?   RichFaces 4中的java ExtendedDataTable:数据模型处理   java Android类层次结构和带有片段的接口   java如何在文件中保存JLabel的颜色/大小?   java编辑类中的返回值而不修改类本身?   安卓如何替换字符串java中的ï»   1.3.7.发布>1.4.1。发布| java。lang.NoSuchMethodError:org。springframework。靴子建设者SpringApplicationBuilder。展示横幅   java列表保存在模型中,而不在setter中进行设置   java如何打开一个窗口。windows中的ks文件?   Java HashMap获取值(其中大部分值)   vps的javascript Websocketurl?   使用byte buddy或某些库进行java评测   java Dom4j获取单节点文本值