加盟网 |移动站| 招商名企 广告合作: 全国服务热线: 客服QQ:
加盟导航
餐饮加盟
奶茶加盟 汉堡加盟 麻辣烫加盟 火锅加盟 甜品店加盟 咖啡加盟 串串香加盟 炸鸡店加盟 面包加盟 酸菜鱼加盟 鸡排加盟 烧烤加盟 糖水加盟 特色餐饮加盟 特色小吃加盟 铁板烧加盟 土豆粉加盟 新奇特餐饮 湘菜加盟 小吃加盟 小吃车加盟 小笼包加盟 小龙虾加盟 西餐加盟 西式快餐加盟 休闲食品加盟 鸭脖加盟 羊蝎子加盟 鸭血粉丝加盟 饮品加盟 鱼火锅加盟 早餐店加盟 中式快餐加盟 自助火锅加盟 石锅拌饭加盟 刨冰加盟 煲仔饭加盟 包子加盟 便当加盟 冰淇淋加盟 冰糖葫芦加盟 披萨加盟 茶餐厅加盟 茶馆加盟 炒货加盟 茶叶加盟 重庆小面加盟 酸奶加盟 贡茶加盟 大米加盟 蛋糕店加盟 刀削面加盟 豆浆加盟 饭团加盟 夫妻肺片加盟 干锅加盟 糕点加盟 锅盔加盟 韩国料理加盟 日本料理加盟 果汁加盟 肉蟹煲加盟 黄焖鸡米饭加盟 馄饨加盟 煎饼加盟 鸡公煲加盟 进口食品加盟 筋头巴脑加盟 烤鸡加盟 烤肉加盟 烤鸭加盟 烤鱼加盟 烤猪蹄加盟 快餐加盟 拉面加盟 凉茶加盟 凉皮加盟 零食加盟 卤菜加盟 麻辣香锅加盟 冒菜加盟 焖锅加盟 面馆加盟 面食加盟 调味品加盟 米线加盟 牛排加盟 牛肉饼加盟 牛肉面加盟 牛肉汤加盟 巧克力加盟 热干面加盟 热狗加盟 肉夹馍加盟 砂锅加盟 烧鹅仔加盟 石锅鱼加盟 寿司加盟 水饺加盟 熟食加盟 酸辣粉加盟
母婴加盟
儿童乐园 婴儿游泳馆 奶粉加盟 童车加盟 玩具加盟 母婴用品加盟 儿童摄影加盟 月嫂加盟
珠宝加盟
黄金首饰加盟 水晶加盟 玉器加盟 钻石加盟 银饰加盟 彩宝加盟 珍珠加盟
女性加盟
彩妆加盟 化妆品加盟 护肤品加盟 美容美发加盟 美甲加盟 美容院加盟 女性项目 手工皂加盟 卫生巾加盟
教育加盟
早教加盟 少儿英语培训加盟 幼儿园加盟 电脑培训 教育培训加盟 作文培训 体育用品加盟 艺术培训 潜能培训 特长培训加盟 写作培训 学生用品加盟 机器人教育培训
饰品加盟
仿真花加盟 发饰加盟 工艺品加盟 家居饰品 精品饰品 民族饰品 女性饰品 情侣饰品 饰品店加盟 饰品加盟 十字绣加盟 手表加盟 眼镜加盟
家居加盟
床上用品 净水器加盟 家居装饰 窗帘加盟 整体厨房 衣柜加盟 橱柜加盟 卫浴加盟 电器加盟 家纺加盟 家具加盟 家居用品加盟 洁具加盟 节能灯加盟 空调加盟 楼梯加盟 墙纸加盟 热水器加盟 生活馆加盟 桶装水加盟 鞋柜加盟 led灯具加盟 装修加盟 布艺加盟 厨房电器 灯饰加盟 房产加盟 汗蒸房加盟
建材加盟
背景墙加盟 瓷砖加盟 吊顶加盟 地板加盟 门窗加盟 木门加盟 涂料加盟 砖厂加盟 集成墙板加盟
服装加盟
女装加盟 童装加盟 男装加盟 内衣加盟 运动服装 衬衣加盟 皮具加盟 箱包加盟 品牌服装 女包加盟 户外用品 家居服 裤业加盟 牛仔加盟 情侣装 亲子装 染衣加盟 少年装加盟 睡衣加盟 丝袜加盟 T桖加盟 休闲装 孕妇装 羽绒服加盟
汽车加盟
汽车美容 汽车维修 电动车加盟 洗车加盟 汽车4S店加盟 补胎液 节油器 汽车零部件 轮胎加盟 汽车导航 汽车用品加盟 汽车装饰 汽车项目 润滑油加盟 停车场系统 洗车器 汽车租赁连锁
当前位置: 首页 > 创业资讯 > 餐饮加盟资讯 > pyqt和python(wxPython和PyQt谁才是最赞的Python)
温馨提示:投资有风险,988创业网提示多做项目考察!
pyqt和python(wxPython和PyQt谁才是最赞的Python)
更新时间: 2023-08-15 21:15 作者: 988创业网 点击次数: 
云都网高防云服务器

所属行业: 云服务

品牌源地: 

公司名称: 雲都網絡信息科技有限公司

Python是一种解释型、面向对象、动态数据类型的高级程序设计语言,Python GUI图形库允许Python程序员很方便的创建完整的、功能键全的GUI用户界面。作为Python开发者,你迟早都会用到图形用户界面来开发应用,wxPython和PyQt是两个最受欢迎的Python GUI框架,它们之间有何区别?在实际应用中又该如何选择呢?

外观

根据我们的经验,大多数用户在使用应用程序时首先关注的一定是应用程序的外观,所以我们先来比较一下wxPython和PyQt的外观。

wxPython是Python语言对流行的wxWidgets跨平台GUI工具库的绑定。而wxWidgets是用C 语言写成的,所以在GUI中编写按钮小部件的代码时,不会看到类似于另一个操作系统的东西。

pyqt和python(wxPython和PyQt谁才是最赞的Python)(1)

▲基于Linux的Thunar和wxPython

PyQt也是使用C 编写的,它基于著名的Qt工具包。与wxPython不同的是,它不使用native

▲基于Linux的KDE和Qt

跨平台

wxPython和PyQt都支持Linux,Windows和Mac,因此它们都非常适合跨平台;但是这种跨平台并不是无条件的,想要你的Python代码在特定平台中运行还需要进行一些调整,如GUI工具包无法将路径格式调整为数据目录,因此必须在Python中运行最佳实践,使用os.path.join和几个不同的退出方法等等。 GUI工具包的选择不会从平台上神奇地抽象出来。

PyQt正在努力的消除跨平台差异,允许Python本身需要的常见调整。PyQt可以避免大多数跨平台问题,所以在不同的操作系统中,GUI代码基本都可以保持不变。

在wxPython中,用户可能就需要根据编程内容对不同平台中的GUI代码做一些调整。例如,为了防止Microsoft Windows上的某些元素闪烁,USE_BUFFERED_DC属性必须设置为True才能对图形进行双缓冲。这不是默认的,即使可以无条件地对所有平台进行操作,因此在某些用例中可能存在缺陷。

安装

作为开发人员,您可能不关心获取应用程序所需的库所需的安装步骤; 但是,如果您计划分发应用程序,则需要考虑用户为了使程序运行所必须执行的安装过程。

在所有平台上安装Qt与安装任何其他应用程序一样简单, 给用户一个下载的链接,然后安装下载的软件包即可使用。

PyQt依赖于Qt本身的C 代码,这意味着用户不仅要安装PyQt,而且还要安装所有的Qt。这个操作没有之前的安装那么简单,但是Qt和PyQt团队已经尽可能简化安装操作了,就现在来看,只要是会安装浏览器或游戏的用户,都可以通过链接成功安装Qt,如果用户十分擅长,用户甚至可以将安装脚本作为自己的安装程序的一部分。

在Linux,BSD和Ilumos中,安装程序通常由经销商的软件包管理员为用户编写。

在Linux和Windows上,wxPython的安装过程非常简单,但在Mac OS上是有问题的。如果可下载的软件包严重过时,Mac OS不利于向后兼容。由于存在修复程序的错误代码,程序包没有被更新,所以用户自己找到并实现修补程序的机会很低。现在的解决方案是打包wxPython并将其分发给Mac OS用户,或者依靠外部程序包管理器。

部件和功能

PyQt和wxPython都具有用户期望从GUI工具包(包括按钮,复选框,下拉菜单等)中获得的所有常用小部件。 两者都支持拖放操作,标签式界面,对话框和创建自定义小部件。

PyQt具有灵活性的优点。 您可以在运行时重新排列,浮动,关闭和还原Qt面板,为每个应用程序提供高度可配置的以可用性为中心的界面。

pyqt和python(wxPython和PyQt谁才是最赞的Python)(2)

只要您使用正确的小部件,就可以为用户提供很多友好的功能,而不必自己去重新思考花哨的技巧。

WxPython具有很多很好的功能,但它在灵活性和用户控制方面不能和PyQt相提并论,PyQt更易于开发人员设计和布局,在开发Qt之前,要先花费一些时间从用户获取跟踪自定义布局的方法,或者如何找到意外关闭的丢失面板等等。而对于wxPython来说,想要重新打开因意外关闭的面板则是件困难的事情。

总体来说,wxPython毕竟只是wxWidgets的前端,所以如果你真的需要一个功能,你可以用C 实现它,然后在wxPython中使用它。与PyQt相比,wxPython的学习曲线更加陡峭一些。

通信

GUI应用程序由许多较小的视觉元素组成,通常称为“小部件”。 为了使GUI应用程序顺利运行,小部件必须彼此通信,例如,用于显示图像的窗格可以知道用户选择了哪个缩略图。大多数GUI工具包,包括wxPython,都可以处理和“callback”的内部通信。 回调是指向某段代码(“函数”)的指针。如果您想要点击某个按钮小部件时发生某些事情,那么你就要为这个发生的操作编写函数,当点击按钮时,触发函数,发生操作。

如果它和Lambda表达式结合起来将会产生一个非常灵活的解决方案,达到的效果可能会超过你的预期。

另一方面,Qt以信号/槽机制而闻名。如果您将wxPython的内部通信网络比喻为旧式电话交换机,那么PyQt的通信则可以视为网状网络。

pyqt和python(wxPython和PyQt谁才是最赞的Python)(3)

▲在Qt的信号和槽

Qt使用了信号和槽来代替回调函数。当一个特定的事件发生时,信号会被发送出去。Qt的窗体部件(widget)拥有众多预先定义好的信号,当然,我们也可以创建窗体部件(widget)的子类来为它们添加我们需要的自定义信号。槽,则是对一个特定的信号进行的反馈。Qt的窗体部件(widget)同样拥有众多预先定义好的槽,但是通常的做法是,创建窗体部件(widget)的子类并添加自定义槽,以便对感兴趣的信号进行处理。

信号和槽机制是类型安全的(type-safe):一个信号的参数必须和接收槽的参数匹配。由于这种参数匹配机制,编译器以帮助我们检查类型不匹配的签名。信号与槽是松耦合(loosely coupled)的:一个发出信号的类既不知道也不关心哪一个槽接收到这个信号。Qt的信号和槽机制保证了如果你将一个信号连接到一个槽上,槽会在正确的时间以号的参数被调用。信号与槽可以携带任意个、任意类型的参数。他们是完全的类型安全。

所有从QObject或者它的一个子类(比如:QWidget)继承的类都可以使用号与槽。对象中以这种方式通信:一个对象的状态发生了改变并发送信号,关心这个改变的另一对像接收到这个信号。发送信号的对象并不知道也不感兴趣什么对象接收它所发出的信号,这是真正的信息封装,保证了对象能被当作软件组件来使用。

槽能被用来接收信号,除此之外它们也是普通的成员函数。槽不知道是否有信号与它连接起来,正如对象不知道它发出信号是否会被接收一样。这样的机制确保了可以使用Qt创建一个个完全独立的组件。

信号可以与槽进行多对多的连接。就这样,信号与插槽建立了强大的组件编程机制。

布局

编写一个GUI应用程序,首先要做的就是设计布局,以便将所有窗口小部件都合适的布局在应用程序窗口中。和设计网页一样,你可以调整应用程序的大小,甚至可以将其设置为固定大小。

在Qt中,布局是十分顺利的进行,小部件被明确命名(QPushButton,QDial,QCheckbox,QLabel,甚至QCalendarWidget),并且易于调用,甚至连应用文档也很齐全。

这里大多数的困惑都集中在基础级的GUI元素中。 例如,如果您正在编写应用程序,您是否能从QMainWindow或QWidget开始构建您的父窗口?

QWidget是一个空的容器,能被所有其他小部件使用,当然也能放置更多的QWidget来形成放置更多小部件的父窗口。QMainWindow使用QWidget,增加了大多数应用程序需要的许多便利功能,如顶部的工具栏,底部的状态栏等。

pyqt和python(wxPython和PyQt谁才是最赞的Python)(4)

▲QMainWindow

这是一个使用QMainWindow的小型文本编辑器,只有100多行Python代码:

pyqt和python(wxPython和PyQt谁才是最赞的Python)(5)

wxPython中的基础小部件是wx.Window。 wxPython中的所有内容都是基于wx.Window类的,无论是实际的窗口还是按钮,复选框或文本标签。如果类名写错了,wx.Window将直接忽略。

下图是使用wx.Frame创建一个空的窗口:

pyqt和python(wxPython和PyQt谁才是最赞的Python)(6)

将其他小部件放在wx.Frame窗口中,然后构建GUI应用程序。 例如,wx.Panel小部件类似于具有绝对大小约束的HTML中的div,因此您可以使用它在主窗口中创建面板。

与PyQt相比,WxPython具有较少的便捷功能。 例如,复制和粘贴功能是建立在PyQt中的,而在wxPython中必须手工编码(并且有部分还受其运行的平台的限制)。

pyqt和python(wxPython和PyQt谁才是最赞的Python)(7)

▲WxPython框架

wxPython中的简单文本编辑器:

pyqt和python(wxPython和PyQt谁才是最赞的Python)(8)

你应该使用哪一个呢?

PyQt和wxPython GUI工具包都有自己的优势。

WxPython在大多数情况下的应用都是比较简单的,即使在使用过程中出现一些难题,对于Python程序员来说也是很直观、易于解决的。你不必学习太多的“wxWidget way”实例,它可以将零七碎八的工具包放置在GUI中,如果你定位的用户空间已安装GTK,那么wxPython会以最小的依赖关系轻轻松开。

WxPython使用原生小部件使得开发的应用程序与计算机上的应用程序几乎没有不同。另外,对于wxPython的跨平台不要期待太高,它有时会在某些平台上出现安装问题,因为它没有提供多层抽象来屏蔽平台之间的差异。

PyQt比较大,总是需要安装一些依赖关系(特别是在非Linux和非BSD中)。沉重的代码也带来了很多便利性,Qt几乎可以完全支持跨平台,同时也提供了很多预置的功能和部件,这对于依靠Qt作为基础框架的公司和一些开源项目来说都是非常重要的。

至于WxPython和PyQt到底要选择哪个,其实是没有定论的,首先你要看它们的哪些点吸引或者说是吸引了你,其次如果你是一个成熟的程序员,你要可以选择自己更擅长的,最重要的要根据项目的实际需求来进行选择。

,

十大品牌排行榜

更多+
  • 蓝话筒少儿口才
    咨询数:4894 门店数:133

    蓝话筒少儿口才加盟详情:教育行业是一个非常有钱途的行业,选对了品牌就是选对了商机,就可以获得非常高的利润,那么在餐饮行业都有哪些...

  • 天线宝宝早教
    咨询数:4698 门店数:118

    天线宝宝早教加盟详情:2013年,天线宝宝早教品牌授权青岛喜乐宝教育咨询有限公司在青岛设立华北区加盟总部,专注发展拥有巨大潜力的中...

  • 优贝乐早教
    咨询数:4667 门店数:109

    优贝乐早教加盟详情:优贝乐国际儿童教育集团于2006年成立于香港,全面移植全美创造性思维课程早期教育体系,专注于全球儿童创造性潜能...

  • 顿斯坦少儿口才
    咨询数:4641 门店数:189

    顿斯坦少儿口才加盟详情:少儿口才加盟中心-顿斯坦简介: 北京顿斯坦教育中心是一所致力于少年儿童素质教育培训的研究机构,经过十年的...

  • 白雪驴肉火烧
    咨询数:4631 门店数:140

    白雪驴肉火烧加盟详情:小吃一直以来就备受消费者喜爱,并且因为投资小回本快收到了众多投资者的青睐,开一家小吃店真是不错的创业想法...

  • 抱抱熊早教
    咨询数:4280 门店数:130

    抱抱熊早教加盟详情:抱抱熊隶属于北京市东方爱婴咨询有限公司,东方爱婴作为中国最早、规模最大的0~3岁婴幼儿早期教育机构,一直以专...

  • UCC国际洗衣
    咨询数:4198 门店数:132

    UCC国际洗衣加盟详情:UCC国际洗衣集团---倡导绿色洗涤、无磷化 洗涤,以人为本更注重对衣物的保护和护理, 追求洗衣行业与环境和谐共...

  • 两个黄鹂少儿口才
    咨询数:4180 门店数:100

    两个黄鹂少儿口才加盟详情:两个黄鹂少儿口才由中国播音主持专业的最高学府中国传媒大学的教师肖弦弈博士创办,教学和教材的研发全部...

  • 香港艾乐国际连锁幼儿园
    咨询数:4080 门店数:136

    香港艾乐国际连锁幼儿园加盟详情:香港艾乐国际教育集团-广州艾乐教育品牌管理有限公司成立于2003年,是一间坐落于广州,面向国际的教...

  • 小博士少儿口才
    咨询数:4005 门店数:125

    小博士少儿口才加盟详情:北京小博士(全国联盟)口才与作文培训学校隶属于北京卡耐基与小博士教育集团,前身以口才培训起家,分别开设有成...

创业故事

更多+

我对加盟感兴趣,马上免费通话留言!

(24小时内获得企业的快速回复)

温馨提示:
1.此次通话将不会产生任何费用, 请放心使用

*姓名:
*电话:
QQ/Email:
投资金额:
加盟地区:
留言:

*为必填

7x24小时电话咨询

您可以根据下列意向,快捷留言

  • 想要加盟煲饭堂,请尽快联系
  • 煲饭堂加盟流程怎样的?
  • 煲饭堂加盟费是多少钱?
  • 煲饭堂有哪些扶持政策?
  • 煲饭堂能实地考察吗?
在线
咨询
在线
留言
关注
微信
APP下载
返回
顶部