Flexx一个强大的跨平台的纯Python开发的Web的GU
1说明:
1。1Flexx是一个纯python工具包,用于创建图形界面应用程序(GUI)。
1。2FlexX是跨平台的,因为它使用纯Python开发。
1。3它使用Web技术呈现接口;可以使用flexx创建桌面应用程序,也可以导出应用程序以分离HTML文档。
1。4如果在桌面模式下运行,建议使用Firefox浏览器。
2准备:
2。1官网:https:flexx。readthedocs。ioenstablehttps:github。comflexxuiflexx
2。2安装:pipinstallflexx本机安装pip3。8installflexx
2。3报错一:未建立软连接,我暂时跳过也能使用WARNING:Thescriptwebruntimeisinstalledinusrlocalpython3。8binwhichisnotonPATH。ConsideraddingthisdirectorytoPATHor,ifyouprefertosuppressthiswarning,usenowarnscriptlocation。WARNING:Thescriptflexxisinstalledinusrlocalpython3。8binwhichisnotonPATH。ConsideraddingthisdirectorytoPATHor,ifyouprefertosuppressthiswarning,usenowarnscriptlocation。
2。4报错二:可能是版本兼容问题frombz2importBZ2Compressor,BZ2DecompressorModuleNotFoundError:Nomodulenamedbz2
2。5环境:
华为笔记本电脑、深度deepinlinux操作系统、谷歌浏览器、python3。8和微软vscode编辑器。
2。6解决报错二的方法,我没有重新编译python3。8,而是换一种方法,如下。
2。7如果在机器上没有bz2。cpython37mx8664linuxgnu。so的话,可以到这里下载:
链接:https:pan。baidu。coms1GzUY4E0G2yVUfqxHOIzn1A
提取码:oiwh
2。8本机是python3。8,故将下载bz2。cpython37mx8664linuxgnu。so文件,修改一下:bz2。cpython38mx8664linuxgnu。so,并拷贝到python3的安装目录,如本机usrlocalpython3。8libpython3。8sitepackagesusrlocalpython3。8libpython3。8libdynload
2。9终端法:在cpbz2。cpython38mx8664linuxgnu。so文件的目录下,打开终端,输入cpbz2。cpython38mx8664linuxgnu。sousrlocalpython3。8libpython3。8sitepackagescpbz2。cpython38mx8664linuxgnu。sousrlocalpython3。8libpython3。8libdynload
3简述:
Flexx使用模块化设计,包含一些子系统:
uiUI部件
app事件循环和服务器
reactreactive编程
pyscriptPythontoJavaScripttranspiler
webruntimetolauncharuntime
注意:
1、下面的代码,运行的浏览器是谷歌浏览器,非推荐的火狐浏览器,所以适当修改代码。
2、带大家入门,有注释和基本用法。
4Helloworld:
4。1代码:fromflexximportflxclassExample(flx。Widget):内置CSS定义样式,还是要学一点html的相关知识的CSS。flxLabel{background:9d9;width:200px;height:3px}definit(self):flx。Label(texthelloworld你好世界)网页的标题名和样式定义,注意这个样式是指html或body的背景颜色定义appflx。App(Example,titleTemperature19512014,stylebackground:pink;)导出或者保存为一张单html文件app。export(example。html,link0)Exporttosinglefileapp。launch(browser)showitnowinabrowserflx。run()enterthemainloopflx。start()与run小区别就是退出循环,还可再启动
4。2操作和效果图:
4。3flx。run与flx。start的区别,图:
5带CSS的转动的点组成的圆:
5。1代码:fromtimeimporttimefromflexximportflxclassCircle(flx。Label):CSSbody{body的背景颜色这种方法backgroundcolor:rgb(49,107,233);backgroundcolor:black;}。flxCircle{圆点为red,注意可以直接如下,也可以使用:f00为红色background:blue;backgroundcolor:black;borderradius:10px;width:10px;height:10px;}classCircles(flx。Widget):definit(self):withflx。PinboardLayout():self。circles〔Circle()foriinrange(32)〕self。tick()deftick(self):globalMath,windowttime()fori,circleinenumerate(self。circles):xMath。sin(i0。2t)3050yMath。cos(i0。2t)3050circle。applystyle(dict(leftx,topy))window。setTimeout(self。tick,30)ifnamemain:mflx。App(Circles)。launch(app)指定火狐浏览器,容易报错mflx。App(Circles)。launch()打开默认浏览器,谷歌浏览器flx。run()
5。2操作和效果图:
6带滑动条的sin绘图:
6。1代码:fromflexximportflxclassSineExample(flx。Widget):definit(self):time〔i100foriinrange(100)〕withflx。VBox():withflx。HBox():文本标签flx。Label(textFrequency:)滑动条设置self。slider1flx。Slider(min1,max10,value5,flex1)flx。Label(textPhase:)self。slider2flx。Slider(min0,max6,value0,flex1)绘图控件self。plotflx。PlotWidget(flex1,xdatatime,xlabeltime,ylabelamplitude,titleasinusoid)flx。reactiondefupdateamplitude(self,events):globalMathfreq,phaseself。slider1。value,self。slider2。valueydata〔〕forxinself。plot。xdata:ydata。append(Math。sin(freqx2Math。PIphase))self。plot。setdata(self。plot。xdata,ydata)ifnamemain:mflx。launch(SineExample)flx。run()
6。2图:
7主题表单:
7。1代码:fromflexximportflxclassThemedForm(flx。Widget):CSS。flxButton{background:9d9;}。flxLineEdit{border:2pxsolid9d9;}definit(self):withflx。HFix():withflx。FormLayout()asself。form:self。b1flx。LineEdit(titleName:,textHola)self。b2flx。LineEdit(titleAge:,textHelloworld)self。b3flx。LineEdit(titleFavoritecolor:,textFoobar)flx。Button(textSubmit1)flx。Widget(flex1)有间隙空行withflx。FormLayout()asself。form:self。b4flx。LineEdit(titleName:,textHola)self。b5flx。LineEdit(titleAge:,textHelloworld)self。b6flx。LineEdit(titleFavoritecolor:,textFoobar)flx。Button(textSubmit2)flx。Widget(flex1)没有间隙空行的ifnamemain:mflx。launch(ThemedForm,app)报错,这是默认火狐浏览器的mflx。launch(ThemedForm)启动本机默认的谷歌浏览器flx。run()
7。2图:
8附注几个demo图:
8。1chatroom:聊天室
8。2pointpaint:
8。3Bootstrap:
8。4scrollandbutton:
8。5PlotlyGeoDemo:
官网的demo显示超级强大的例子
自己整理并分享出来
喜欢的人,请点赞、关注、评论、转发和收藏。
NS星之卡比新作情报4人同屏无敌风火轮出击!任天堂旗下switch独占游戏,由HAL研究所制作的《星之卡比:星之盟友(Kirby:StarAllies)》将要在3月16日正式发售了,目前《星之卡比:星之盟友》公布了一些游……
王力宏变邋遢大汉,直播卖课谋生,昔日歌王为何如此落魄?王力宏是娱乐圈为数不多的有才华又有颜值的男人。也可以说是德艺双馨,绯闻很少,为人低调。今天,王力宏在抖音直播,不到一个小时人气就冲上了榜一,直播间在线人数66万。王力宏从……
唯有成熟的人,才能做到三种稳定一位行者,上山求学,双眼盯着远方的山,心里想着一定要在日落前到达。于是加快步伐,不料一不小心被脚下的石头绊了一跤,摔得头破血流,最后只能一瘸一拐地龟速行进,无法按时到达。……
GoogleAssistant走向世界新增超过30种语言MWC2018即将到来,谷歌也准备了发布新消息,其中GoogleAssistant将会在2018年年底支持超过30种语音,同时也将加入多种语言自动切换功能。据谷歌表示,他……
孩子推荐给父母的两本书女儿非常推崇两本书:《奇迹男孩》《奥吉和我》,并推荐给我,让我也读一读。如果你或者你身边的人生而不同,你该怎么办?故事是在这样一个情境中展开的。不得不说,孩子的视角……
FF15PC版配置公布PC版4K硬盘至少需要155G!自本世代主机发售以来,电子游戏的容量也开始越来越大。《最终幻想15》并非首个安装容量超过100GB的游戏,在此之前《战争机器4》安装空间也是超过了100GB。根据SE,《……
能早起的人,命运都不会太差文老卫一名30岁的情感博主,洞察情感,并将答案告诉你。每日一篇情感文章,带你洞察生活的酸甜苦辣,希望您能享受我的文章。早上的时间究竟有多重要?李嘉诚6:00起……
秋之回忆8无垢少女ebten店铺限定特典公布预计在2018年3月29日发售的PS4PSV平台恋爱冒险游戏《秋之回忆:无垢少女(MemoriesOffInnocentFille)》近日公开了网路店铺ebten限定特典的设计……
育碧公布彩虹六号围攻国际邀请赛多项新记录刚刚结束的春节假期不知各位看官老爷们过的是否满意呢?就在中国的老百姓们合家欢庆的时候,育碧旗下战术射击游戏《彩虹六号:围攻(RainbowSix:Siege)》除了度过自己两周……
中考之后,有必要报高一衔接班吗,校长给出答案并附上避坑指南随着高考的结束,中考也在火热进行中。中考是学生第一次正式分层的考试,对于学生来说也是一种挑战。不过对于成绩尚可的学生来说,考普高甚至重点高中也志在必得的事。中考之后高中开……
3个月的婴儿都需要买什么?3个月的宝宝还太小,准备的东西不需要太多。1、衣服类现在天气越来越热了,3个月的宝宝身高体重各方面,都比前两个月增长快。应该准备合适宝宝尺寸,舒服的几套衣服。遮阳帽……
EA官宣战地新作6月E3就能抢先玩上了2016年底发售的《战地1》凭借精良的制作和独特的一战背景,收获了口碑和销量,关于续作也有了更进一步的动态。据TT报道,EA在官网确认,在EAPlay2018活动中,玩家将于有……