教育国际新闻办公房产生活
生活城市
词库投稿
生活动态
智能汽车
房产信息
手机数码
办公软件
应用科技
新闻晨报
时事热点
国际环球
商业财经
教育体育
生物科学

wxPython自定义控件

1月21日 封了心投稿 造句
  实战wxPython系列051
  前面系列文章中,我们介绍了wxPython提供各种的各种控件,在一般情况下可以满足我们开发应用的各种需求。但是在一些情况下,比如对按钮的美化,一个可以显示CPU占用率的控件等等。这首就需要自定义的控件,才能满足要求。
  自定义控件可以通过两种方式创建:一种是通过修改或增强现有控件,另一种是我们使用GDI直接创建。下面我们将分别演示采用这两种方式如何在wxPython中实现一个自定义控件。
  一、简单的超链接控件
  创建一个超链接控件,我们基于wx。lib。stattext。GenStaticText控件来构建它,控件的字体用蓝色显示。点击该控件时将调用默认浏览器打开指定的网址。importwxfromwx。lib。stattextimportGenStaticTextimportwebbrowserclassMyLink(GenStaticText):definit(self,args,kw):super(MyLink,self)。init(args,kw)self。font1wx。Font(11,wx。SWISS,wx。NORMAL,wx。BOLD,True,Verdana)self。font2wx。Font(11,wx。SWISS,wx。NORMAL,wx。BOLD,False,Verdana)self。SetFont(self。font2)self。SetForegroundColour(0000ff)self。Bind(wx。EVTMOUSEEVENTS,self。OnMouseEvent)self。Bind(wx。EVTMOTION,self。OnMouseEvent)defSetUrl(self,url):self。urlurldefOnMouseEvent(self,e):ife。Moving():self。SetCursor(wx。Cursor(wx。CURSORHAND))self。SetFont(self。font1)elife。LeftUp():webbrowser。opennew(self。url)else:self。SetCursor(wx。NullCursor)self。SetFont(self。font2)e。Skip()classSampleHyperlink(wx。Frame):definit(self,args,kw):super(SampleHyperlink,self)。init(args,kw)self。InitUi()defInitUi(self):self。SetTitle(实战wxPython:自定义控件演示)self。SetSize(400,240)panelwx。Panel(self)vboxwx。BoxSizer(wx。VERTICAL)hboxwx。BoxSizer(wx。HORIZONTAL)stGenStaticText(panel,label连接到Web站点:)st。SetFont(wx。Font(11,wx。FONTFAMILYSWISS,wx。FONTSTYLENORMAL,wx。FONTWEIGHTBOLD,False,Verdana))hbox。Add(st,flagwx。LEFT,border20)linkwidMyLink(panel,labelbing)linkwid。SetUrl(https:cn。bing。com)hbox。Add(linkwid,flagwx。LEFT,border20)vbox。Add(hbox,flagwx。TOP,border30)panel。SetSizer(vbox)self。Centre()defmain():appwx。App()sampleSampleHyperlink(None)sample。Show()app。MainLoop()ifnamemain:main()
  上面的例子中我们使用已有控件,没有绘制任何新的东西,做了一点修改,构建了一个超链接控件。fromwx。lib。stattextimportGenStaticTextimportwebbrowser
  导入我们需要的模块,webbrowser是python的标准模块,使用它在默认浏览器中打开超链接。self。SetFont(self。font2)self。SetForegroundColour(0000ff)
  修改控件中字体和字体的颜色ife。Moving():self。SetCursor(wx。Cursor(wx。CURSORHAND))self。SetFont(self。font1)
  如果鼠标移到链接上方时,我们显示文本下划线,并将鼠标设置为手型。elife。LeftUp():webbrowser。opennew(self。url)
  如果点击链接,将在默认浏览器打开超链接控件所关联的网址。
  图1:自定义超链接演示
  二、一个显示资源使用率的控件
  在一些应用中,会需要监测系统资源,温度,内存消耗,CPU使用率等等。如果仅单纯地使用文字(比如CPU60),则显得不那么直观,如果使用一定定制化的控件,以直观的图形方式来显示,则会更加一目了然。importwxclassMyCPU(wx。Panel):definit(self,parent):wx。Panel。init(self,parent,size(80,110))self。parentparentself。SetBackgroundColour(black)self。Bind(wx。EVTPAINT,self。OnPaint)defOnPaint(self,e):dcwx。PaintDC(self)dc。SetDeviceOrigin(0,100)dc。SetAxisOrientation(True,True)posself。parent。GetParent()。GetParent()。selrectpos5foriinrange(1,21):ifirect:dc。SetBrush(wx。Brush(075100))dc。DrawRectangle(10,i4,30,5)dc。DrawRectangle(41,i4,30,5)else:dc。SetBrush(wx。Brush(36ff27))dc。DrawRectangle(10,i4,30,5)dc。DrawRectangle(41,i4,30,5)classSampleMyCPU(wx。Frame):definit(self,args,kw):super(SampleMyCPU,self)。init(args,kw)self。InitUi()defInitUi(self):self。SetTitle(实战wxPython:自定义控件演示)self。SetSize(400,240)self。sel0panelwx。Panel(self)centerPanelwx。Panel(panel)self。cpuMyCPU(centerPanel)hboxwx。BoxSizer(wx。HORIZONTAL)self。sliderwx。Slider(panel,valueself。sel,maxValue100,size(1,100),stylewx。VERTICALwx。SLINVERSE)self。slider。SetFocus()hbox。Add(centerPanel,0,wx。LEFTwx。TOP,20)hbox。Add(self。slider,0,wx。LEFTwx。TOP,30)self。Bind(wx。EVTSCROLL,self。OnScroll)panel。SetSizer(hbox)self。Centre()defOnScroll(self,e):self。sele。GetInt()self。cpu。Refresh()defmain():appwx。App()sampleSampleMyCPU(None)sample。Show()app。MainLoop()ifnamemain:main()
  上面的例子里,我们创建一个控件,它继承自wx。Panel。在其上绘制了一些矩形,矩形的颜色取决于滑块控件的值,可以为深绿或者亮绿。dc。SetDeviceOrigin(0,100)dc。SetAxisOrientation(True,True)
  上面的例子里,我们创建一个控件,它继承自wx。Panel。在其上绘制了一些矩形,矩形的颜色取决于滑块控件的值,可以为深绿或者亮绿。dc。SetDeviceOrigin(0,100)dc。SetAxisOrientation(True,True)
  将坐标系设置为笛卡尔坐标系,让绘制更加直观。posself。parent。GetParent()。GetParent()。selrectpos5
  获取sizer的值。一列有20个小矩形,滑块的变化范围为0到100。rect参数保存将滑块值转变成需要用亮绿色绘制的矩形数目。foriinrange(1,21):ifirect:dc。SetBrush(wx。Brush(075100))dc。DrawRectangle(10,i4,30,5)dc。DrawRectangle(41,i4,30,5)else:dc。SetBrush(wx。Brush(36ff27))dc。DrawRectangle(10,i4,30,5)dc。DrawRectangle(41,i4,30,5)
  这里我们绘制了40个矩形,每列20个。如果矩形数目大于rect的值,用暗绿色绘制,否则用亮绿色绘制。
  图2:自定义控件之CPU占用率演示
  三、本文知识点什么时候需要自定义控件。创建自定义控件的两种方式。使用EVTPAINT事件。
  前一篇:wxPython动态添加和删除控件
  欢迎关注,评论,收藏,点赞,和转发。
评论 转载

造句:自定义控
造句:自定义控件
加强APP自动续费监管,让消费者开会员更放心人民锐见来源:【人民日报评论】你被手机APP自动续费过吗?据媒体报道,市面上不少APP都存在自动续费套路。在用户开通会员前,APP或是用免费试用会员一分钱体验x天会员等口号吸引眼……夺夫战互插刀,这7对明星闺蜜的散伙故事,让人真正认识娱乐圈娱乐圈是个名利场,明星们为了追名逐利,结下梁子的不在少数,甚至还有不少明星,从好闺蜜变陌路人,这其中的故事,恩恩怨怨、弯弯绕绕,可以说是相当精彩。1。杨幂唐嫣杨幂和……PS公布全新游戏阵容短片多款大作亮相今日(3月9日),PSJapan公布了与梅田合作的全新游戏阵容短片PUNCHLINEUP,包括《最终幻想16》、《生化危机4重制》、《街头霸王6》、《自杀小队:杀死正义联盟》、……体验SSCMS内容管理功能SSCMS是一款开源免费、企业级、可商用的内容管理系统,我们将在本文介绍SSCMS系统内容管理的基础操作:如何导出、导入、转移、复制、排序、删除等。点击信息管理内容管理,……张越红刘亚男同框!引发一话题女排黄金一代如今在干吗?前些天,女排名宿刘亚男、颜倪同框亮相,参加同一活动的还有张越红,3名女排退役世界冠军出现在同一现场,在排球迷们备感亲切。刘亚男、张越红均是中国女排黄金一代主力队员,分别司职主攻……全球气候变暖不利于海底储存更多的碳,海大研究重建2000万年青岛日报社观海新闻4月4日讯当全球气候变暖时,不利于海底储存更多的碳。中国海洋大学日前发表在国际顶级学术期刊《自然》上的一篇论文得出这个结论。该研究首次揭示了新近纪(2300万……出手了!我国对美芯片展开精准反击,外媒这是替华为出气智能手机、通讯、半导体等,当华为在这些领域打破老美浸淫多年的市场,寸土必争的老美,三年多的时间对华为展开了多轮的围剿,最终导致华为设计好的高端麒麟芯片无法量产,智能手机业务急转……养儿子6年,我才明白男孩跟女孩的差别,比猫与狗的区别还大作者:栗子爸妈研究所(ID:mamacn)原创首发01hr自从儿子上了小学之后,看着老师上课坐不住、爱说话、注意力不集中、课间经常打闹的点评,再看看他的同学们……wxPython自定义控件实战wxPython系列051前面系列文章中,我们介绍了wxPython提供各种的各种控件,在一般情况下可以满足我们开发应用的各种需求。但是在一些情况下,比如对按钮的美化……肾脏想让你知道这些事每分钟约有1。2升流经各处的血液来到肾脏接受过滤,将其中的垃圾、毒素等滤出并代谢掉,让干净的血液供养全身。肾脏作为内分泌系统的重要部分,是除了呼吸系统之外另一个维持身体酸……晚间公告丨3月14日这些公告有看头【品大事】法尔胜:公司不涉及室温超导相关业务法尔胜披露股票交易异动公告,公司主营业务为金属制品及环保业务,公司不涉及室温超导相关业务,也未开展相关研发和投入。……春天怎么穿更洋气?这些搭配思路都为你总结好了,照着穿简单好看爱美是女人的天性,相信很多小姐姐们都想在这个春天打扮得更洋气好看,但不少人总会因为欠缺搭配头绪,花费了时间与财力却无法达成愿望。春天,对于这些不知道怎么穿更洋气的女生,建……
篮网备战76人!杜兰特妙传本西欧文拉杆太美,小将增重苦练罚球内含最新演示影片,马斯克说特斯拉机器人将是真正的AI机器人看舌象,教你柴胡舒肝丸巧搭配,不止疏肝解郁,还能治这5种病学玩两不误,趣学伴儿童故事放映机测评日元贬值到24年前,人民币要破7?苹果扛起2022护盘大旗?房价预测未来房价会下跌的6大理由分析新发现一颗超级地球!它的30都是水,仅100光年远,或存在生腊八粥的6种搭配方法,步骤教给你,看一遍就会,香甜糯滑喝不够对抗路再添一位T0,支援碾压马超,对线强过吕布,却无人会玩中外对抗赛火热进行中,马哲再次携手广君,热血迎战为国争光万向控股副董事长,万向区块链实验室创始人肖风元宇宙的新经济规海珠搭起无接触配送保供站快递单量翻倍涨,八成订单次日达
秋季时令水果宝宝如何选择?今起,樊城每周都有烟花看!春天适合穿什么裙子美出天际的春季穿搭年初中体育教师工作计划steam如何安装(steam如何安装dlc)如何避免优化好的关键词排名突然不稳定的情况九宫舞(由词目及其释义等构成的中文知识性百科条目)肠道病变身体会出现3多2痛若1个不占肠癌离你还很远2022华为折叠屏手机怎么样耐用吗杰奎琳画廊(由词目及其释义等构成的中文知识性百科条目)云南金水河边检站开展法治宣传进校园活动我最喜欢的运动篮球英语作文
©2025网站地图最近更新文明上网我要投诉