纠纷奇闻社交美文家庭
投稿投诉
家庭城市
爱好生活
创业男女
能力餐饮
美文职业
心理周易
母婴奇趣
两性技能
社交传统
新闻范文
工作个人
思考社会
作文职场
家居中考
兴趣安全
解密魅力
奇闻笑话
写作笔记
阅读企业
饮食时事
纠纷案例
初中历史
说说童话
乐趣治疗

wxPython一些扩展按钮控件

5月1日 渡缘祠投稿
  实战wxPython系列045
  本文介绍几个扩展按钮,它们不数属于wxPython核心库中的控件,但是它们可以提供一些特殊的效果。
  一、PlateButton
  PlateButton是一个通用按钮控件,它是一个自定义的平面按钮。它在许多方面模拟Safari浏览器书签栏中的按钮。可以使用它来替换wx。Button或者wx。BitmapButton。它还提供了一些选项来定义其外观。
  PlateButton支持的窗口样式:MainButtonStyles:下列值的任何组合都可以传递给构造函数的style关键字参数。PBSTYLEDEFAULT:创建一个圆角的平面标签按钮,鼠标悬停和按下状态时基于系统当前主题的高亮显示颜色对按钮高亮显示。PBSTYLEGRADIENT:在高亮和按下状态时使用当前高亮颜色渐变绘制按钮。PBSTYLESQUARE:矩形形状的正方形边缘按钮,鼠标悬停和按下状态时基于系统当前主题的高亮显示颜色对按钮高亮显示。PBSTYLENOBG:只有当控件显示在具有非纯色背景的面板或其他窗口中时,才应使用它。也就是说,在父窗口的背景上绘制渐变或图像。如果在纯色背景上使用,可能会导致控件失去透明外观(仅Windows下有效)。PBSTYLEDROPARROW:在按钮上添加一个下拉按钮箭头,当单击该按钮时将发送一个单独的事件。
  下面的例子展示了如何创建一个PlateButton。例子显示了几种不同样式的PlateButton按钮。并演示了如何给PlateButton添加一个菜单。wx。lib。platebuttonPlateButtonimportwximportwx。lib。platebtnasplatebtnclassSamplePlateButton(wx。Frame):definit(self,args,kw):super(SamplePlateButton,self)。init(args,kw)self。InitUi()defInitUi(self):self。SetTitle(实战wxPython:PlateButton演示)self。SetSize(400,240)panelwx。Panel(self)girdSizerwx。GridBagSizer(2,3)按钮三种不同背景btnDefaultplatebtn。PlateButton(panel,labelDefault,styleplatebtn。PBSTYLEDEFAULT)btnGradientplatebtn。PlateButton(panel,labelGraddient,styleplatebtn。PBSTYLEGRADIENT)btnSquareplatebtn。PlateButton(panel,labelSquare,styleplatebtn。PBSTYLESQUARE)菜单支持menuwx。Menu()forurlin〔https:www。baidu。com,https:cn。bing。com,https:sogou。com〕:menu。Append(wx。NewId(),url,在浏览器里打开surl)btnMenuplatebtn。PlateButton(panel,labelMenu,styleplatebtn。PBSTYLEDEFAULT)btnMenu。SetMenu(menu)girdSizer。Add(btnDefault,flagwx。EXPAND,pos(0,0))girdSizer。Add(btnGradient,flagwx。EXPAND,pos(0,1))girdSizer。Add(btnSquare,flagwx。EXPAND,pos(0,2))girdSizer。Add(btnMenu,flagwx。EXPAND,pos(1,0))panel。SetSizer(girdSizer);self。Centre()defmain():appwx。App()sampleSamplePlateButton(None)sample。Show()app。MainLoop()ifnamemain:main()
  图1:PlateButton演示
  二、AquaButton
  AquaButton及之后介绍的两个按钮都来自wxPython的高级通用控件(AdvancedGenericWidgets,AGW)库。
  AquaButton是一个自定义绘制的按钮控件,它近似地模仿了Mac上Aqua按钮的行为。它支持以下效果:气泡和阴影效果。可自定义背景,前景和悬停颜色。圆角按钮。纯文字或图片文字按钮。获得焦点的脉冲效果。
  下面的代码演示如何使用AquaButton。wx。lib。agw。aquabutton。AquaButtonimportwximportwx。lib。agw。aquabuttonasabclassSampleAquaButton(wx。Frame):definit(self,args,kw):super(SampleAquaButton,self)。init(args,kw)self。InitUi()defInitUi(self):self。SetTitle(实战wxPython:AquaButton演示)self。SetSize(400,240)panelwx。Panel(self)bmpwx。Bitmap(agtmp3。png,wx。BITMAPTYPEANY)btn1ab。AquaButton(panel,bitmapbmp,labelClickme)btn1。SetForegroundColour(black)btn1。Bind(wx。EVTBUTTON,self。OnButtonClickMe)btn2ab。AquaButton(panel,labelPulseOnFocus)btn2。SetForegroundColour(black)btn2。SetPulseOnFocus(True)vboxwx。BoxSizer(wx。VERTICAL)vbox。Add(btn1,0,wx。CENTERwx。ALL,5)vbox。Add(btn2,0,wx。CENTERwx。ALL,5)panel。SetSizer(vbox)self。Centre()defOnButtonClickMe(self,e):msg点击了按钮dlgwx。MessageDialog(None,msg,消息,wx。OKwx。ICONEXCLAMATION)dlg。ShowModal()dlg。Destroy()defmain():appwx。App()sampleSampleAquaButton(None)sample。Show()app。MainLoop()ifnamemain:main()
  AquaButton支持位图,因此在上面的例子中我们展示了两个按钮,其中一个带有位图,另一个没有。AquaButton另一个功能是当它具有焦点时,它具有脉冲效果,第二个按钮打开了这个效果。
  图2:AquaButton按钮演示
  三、GradientButton
  GradientButton是另一个自定义绘制的按钮类。类似于AquaButton,它们都有圆角,可以有一个可选的位图。GradientButton允许设置从上到下的渐变,以及按下时的顶部底部颜色。GradientButton支持:三重混合梯度背景,可定制颜色。按下状态的自定义颜色。圆角按钮。纯文本或图像文本按钮。
  下面的代码演示如何使用GradientButton。wx。lib。agw。gradientbutton。GradientButtonimportwximportwx。lib。agw。gradientbuttonasgbclassSampleGradientButton(wx。Frame):definit(self,args,kw):super(SampleGradientButton,self)。init(args,kw)self。InitUi()defInitUi(self):self。SetTitle(实战wxPython:GradientButton演示)self。SetSize(400,240)panelwx。Panel(self)bmpwx。Bitmap(agtmp3。png,wx。BITMAPTYPEANY)gbBtn1gb。GradientButton(panel,bitmapbmp,labelGradientwithbitmap)gbBtn2gb。GradientButton(panel,labelPressMe)gbBtn2。Bind(wx。EVTBUTTON,self。OnPressMe)vboxwx。BoxSizer(wx。VERTICAL)vbox。Add(gbBtn1,0,wx。CENTERwx。ALL,5)vbox。Add(gbBtn2,0,wx。CENTERwx。ALL,5)panel。SetSizer(vbox)self。Centre()defOnPressMe(self,e):msgOK!dlgwx。MessageDialog(None,msg,消息,wx。OKwx。ICONEXCLAMATION)dlg。ShowModal()dlg。Destroy()defmain():appwx。App()sampleSampleGradientButton(None)sample。Show()app。MainLoop()ifnamemain:main()
  类似AquaButton,我们展示了两个按钮,其中一个带有位图,另一个没有。
  图3:GradientButton按钮演示
  四、ShapedButton
  ShapedButton试图填补wxPython中自定义形状控件的不足(这取决于wxWidgets中同样的不足)。可用于制作圆形按钮或椭圆按钮。
  ShapedButton可能是功能最齐全的按钮。你可以创建一个普通按钮,一个位图按钮,一个奇怪的偏移位图文本按钮,切换按钮,也可以旋转文本到任何角度显示。
  尽管ShapedButton是构建在矩形窗口上,但是只有当鼠标事件发生在圆圈椭圆内时,ShapedButton才会对鼠标事件做出反应。
  使用ShapedButton我们可以:创建圆形椭圆按钮切换按钮;为按钮的启用禁用聚焦选中状态设置图像;绘制焦点指示器(或禁用它);设置标签颜色和字体;对ShapedButton标签应用一个旋转;在运行时更改ShapedButton的形状和文本方向。
  下面的代码演示了如何使用ShapedButton。wx。lib。agw。shapedbutton。ShapedButtonimportwximportwx。lib。agw。shapedbuttonassbclassSampleShapedButton(wx。Frame):definit(self,args,kw):super(SampleShapedButton,self)。init(args,kw)self。InitUi()defInitUi(self):self。SetTitle(实战wxPython:ShapedButton演示)self。SetSize(400,240)panelwx。Panel(self)bmpwx。Bitmap(agtmp3。png,wx。BITMAPTYPEANY)sBtnsb。SButton(panel,labelPressMe,size(75,75))sBtn。Bind(wx。EVTBUTTON,self。OnShapedButton)bmpBtnsb。SBitmapButton(panel,wx。IDANY,bitmapbmp)bmpBtn。Bind(wx。EVTBUTTON,self。OnBmpShapedButton)bmpToggleBtnsb。SBitmapToggleButton(panel,wx。IDANY,bitmapbmp)bmpToggleBtn。Bind(wx。EVTBUTTON,self。OnToggle)bmpToggleTxtBtnsb。SBitmapTextToggleButton(panel,wx。IDANY,bitmapbmp,labelToggle,size(100,100))rotatedTxtBtnsb。SButton(panel,labelRotated!,size(75,75))rotatedTxtBtn。SetAngleOfRotation(90)hboxwx。BoxSizer(wx。HORIZONTAL)hbox。Add(sBtn,0,wx。ALL,wx。CENTER,5)hbox。Add(bmpBtn,0,wx。ALL,wx。CENTER,5)hbox。Add(bmpToggleBtn,0,wx。ALL,wx。CENTER,5)hbox。Add(bmpToggleTxtBtn,0,wx。ALL,wx。CENTER,5)hbox。Add(rotatedTxtBtn,0,wx。ALL,wx。CENTER,5)panel。SetSizer(hbox)self。Centre()defOnShapedButton(self,e):self。ShowDialog(你点击了常规的ShapedButton)defOnBmpShapedButton(self,e):dlgwx。ColourDialog(self)datadlg。GetColourData()data。SetChooseFull(True)ifdlg。ShowModal()wx。IDOK:print(你选择了:sstr(data。GetColour()。Get()))dlg。Destroy()defOnToggle(self,e):ife。GetIsDown():wx。CallAfter(self。ShowDialog,YouToggledMe!)else:wx。CallAfter(self。ShowDialog,Youuntoggledme!)e。Skip()defShowDialog(self,msg):显示一个自定义消息dlgwx。MessageDialog(None,msg,消息,wx。OKwx。ICONEXCLAMATION)dlg。ShowModal()dlg。Destroy()defmain():appwx。App()sampleSampleShapedButton(None)sample。Show()app。MainLoop()ifnamemain:main()
  在上面的代码中,演示了如何创建一个普通的ShapedButton,一对切换按钮和一个带有一些旋转90度的文本的按钮。
  图4:ShapedButton演示
  五、本文知识点了解自定义控件。了解和使用PlateButton。了解和使用AquaButton。了解和使用GradientButton。了解和使用ShapedButton。
  前一篇:wxPython高级控件之HtmlWindow
  欢迎关注,评论,收藏,点赞,和转发。
投诉 评论 转载

wxPython一些扩展按钮控件实战wxPython系列045本文介绍几个扩展按钮,它们不数属于wxPython核心库中的控件,但是它们可以提供一些特殊的效果。一、PlateButtonPl……能不能对孩子发火,情绪失控怎么办?作为两个小孩的母亲,生娃之前看了很多育儿和亲子沟通相关的文章和书籍。比如最出名的正面管教,他的核心理念是温柔而坚定,不提倡贿赂、恐吓、惩罚、喊叫、推搡来要求孩子。现在,大……中企宣布芯片技术突破,长江存储或将成为行业领导者文毅科纪本文原创,禁止抄袭,违者必究目前,我们常用的芯片种类有很多种,除了处理器芯片之外,存储芯片也是十分重要的一种。当前在国际芯片市场上,主要以欧美、日韩等几个国……潘长江翻车了,一点都不值得同情315晚会后,食品届和娱乐界同时大地震!先不说用脚踩出来的老坛酸菜,掉在地上还继续封包的双汇火腿,光是邓伦漏税被罚1。05亿这件事,就惊爆了热搜。这边当红流量小生偷……准备好了吗?去杭州德寿宫走一场刷爆你朋友圈的大秀钱江晚报小时新闻记者周丰杭州德寿宫外的红墙成了不少市民打卡地。2022年的秋天,杭州德寿宫百米红墙火出了圈,成了市民游客的打卡地。杭州德寿宫外的红墙吸引了不少……海南免税版iPhone14系列价格出炉最高便宜610元海南免税版iPhone14系列价格出炉:最高便宜610元2022091607:10手机中国【手机中国新闻】9月16日消息,iPhone14系列海南免税版价格已出炉,……熊猫mini长沙浪漫发布2月14日,几何汽车携旗下熊猫MINI亮相长沙黄兴广场,区域独创的潮改车型吸引了超多年轻人打卡,成为街头靓丽的风景线。现场,主办方还设置了浪漫花墙,不少情侣在现场合影拍照。一对……感恩节感恩今生相遇的每个人董卿在《朗读者》中有这样一段话:世间一切,都是遇见。冷遇见暖,就有了雨;冬遇见春,有了岁月;天遇见地,有了永恒;人遇见人,有了生命。我们在人间寻寻觅觅,总会在不经意间,遇……他乡纵有当头月,不抵故乡一盏灯责编:老钱深冬路上,潇潇风里,人们走过的春秋,已成了岁月间的斑驳,不知觉中,这座城市的街巷里,渐染了几分年味,也多几分热闹。虽然,生活于我们而言,是晨起月落间无尽的……熊去氧胆酸你是伊人吗?12月财经新势力这两天,一个叫熊去氧胆酸的概念在A股突然崛起,领涨股市,相关的个股宣泰医药,新华制药、共同药业、西点药业等纷纷被资金追捧,高开、涨停。闹得这些公司也不得不……冬奥遇上元宵节,来延庆感受别样快乐冬奥年,虎虎生威。闹元宵,喜气洋洋。春节的热情还未散去,元宵的狂欢喜乐火热来袭,当欢乐的元宵佳节遇上激情的冬奥,延庆乡亲欢天喜地乐不停,一起去看看吧香水园街道香水园……索尼新款的小黑砖NW外观紧致精密内在干净细腻观察世界的变化,是一件十分有趣的事。仔细回想一下,十几二十年前,当中国人因为经济水平和出行需求的双重提升,普遍发出咱家得有辆车这种声音时,最火热的是什么?是入门家轿是从奇……
春伢子刘继忠14岁走红,娶鼓手当妻子,如今62岁了白酒企业三季报前六名营收净利均保持双位数增长我在故宫实习秋季,若不差钱,这肉再贵也要给孩子吃,增强抵抗力,长出大高个3000点保卫战又开始了,空仓,空仓,空仓故宫冷宫为什么不开放?其实因为3个原因,并非是因为民间传言金砖国家还没加入,阿根廷就露出野心?既要枭龙还要做拉美总代理30条生活小建议,慢慢养出好肤色彩虹岛手游爷青回!永恒岛之彩虹回忆来袭,玩法精彩纷呈!股市陷阱堪称经典的尾盘砸盘,主力是什么意图,要懂这出货行为网友到朝鲜旅游带什么东西过去比较好?不要乱管孩子,要管,就管着七条
它被放在《诗经》第一篇,说明孔老夫子不是个糊涂人一次性口罩消毒后还能用吗一次性口罩可以用开水煮吗头版造句用头版造句大全运河边的人们后续剧情梁子言离婚,乔雨被抓,路长河被举报推荐描写春季的作文600字四篇关于高尚品质的名言名句p2p是什么意思(P2P和非法吸收公众存款)热议聚热点网 美丽的家乡幼儿园英语教学反思一年级小学生开学日记摸鱼儿为赵懒窝寿怎样给一个手机定位(怎样给一个定位)

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找美丽时装彩妆资讯历史明星乐活安卓数码常识驾车健康苹果问答网络发型电视车载室内电影游戏科学音乐整形