注:这是本人在网络上听课后的总结笔记,仅供参考. Gui编程 一,介绍: 图形化用户接口,会有一个图形化的界面展示为用户,与用户交互 二,python中可以支持GUI编程的库 官方的标准库:Tkinter 其他使用率高的库:PyQt,PySide,wxPython,PyGUI,Kivy,Libavg..... 选择标准: 1,适合的就是最好的 2,根据最新版本和最新更新时间 3,简单好用 4,文档齐全 5,性能高 6,稳定性高 7,生态支持,可以有些辅助工具 8,平台支持 9,开源免费 基于各方面考虑,最终选择PyQt Qobject 定义:所有qt对象的基类 类名.__subclass__()#查看所有子类 类名.mro()#查看父类 功能作用: 一,对象名称和属性(重要) 1,api -setobjectname('唯一名称')#给qt对象设置一个名称,一般这个名称是唯一的,当做对象的ID使用 -objectname()#获取qt对象的名称 -setproperty('属性名',值)#给一个qt对象动态添加一个属性和值 -property()#获取对象的属性值 -dynamicpropertynames()#获取对象中所有通过setpeoperty()设置的属性的名称 2,应用场景 - 用于qss的id选择器,属性选择器,方便统一设置格式(qss是样式管理) -用于装饰器的信号与槽 二,父子对象的操作(重要) 1,api -setparent(parent)#设置父对象,父对象只能设置一个 -parent()#获取父对象 -children()#获取所有直接子对象 -findchild(参数1,参数2,参数3)#获取某一个指定名称和类型的子对象,参数1:类型,参数2:名称,参数3,查找选项,查找选项默认是递归查找也就是依次查找子对象以及子对象以下的子对象 -findchildren(参数1,参数2,参数3)#查找多个 2,应用场景 -涉及到qt对象内存管理机制:当父对象被删除,子对象自动被删除 -如果一个控件没有任何父控件,那么就会被当成顶层控件(窗口) -如果想要一个控件被包含在另一个控件内部,就需要设置父子关系,子控件位置,大小受父控件限制,生命周期会被父控件限制 三,信号处理(重要) 1,api -widget.信号.connect(槽)#连接信号和槽 -obj.disconnect()#取消信号与槽的连接 -widget.blocksignals(True\False)#临时阻断或建立信号与槽的连接 -widget.signalsblocked()#信号是否被阻止False表示没有断开连接,True表示已经断开连接 -widget.receivers(信号)#获取信号连接多少个槽的数量 2,应用场景 -监听信号,响应用户行为 -信号与槽机制 四,类型判断 1,api -isWidgetType()#判断是否是一个控件类别 -inherits('父类类名')#判断一个对象是否继承(直接或间接)自某个类 五,对象删除 1,api -obj.deletelater()#删除一个对象,同时解除它与父对象的关系,并不会立即销毁,而是下一次消息循环时才会销毁对象 六,事件处理 1,api -childevent() -customevent() -eventfilter() -installeventfilter() -removeeventfilter -event() 2,应用场景 -事件机制 -拦截事件,监听特定行为 七,定时器 1,api -starttimer(ms,qt.timertype)#开启一个定时器,有一个返回值 -killtimer(timer_id)#根据定时器id杀死定时器 -timerevent()#定时器执行事件 2,应用场景 八,语言翻译 信号: objectNameChanged(objectName)#对象名称发生改变时发射此信号 destroyed(obj)#对象被销毁时发射此信号 ---------------------------------------------------------------------------------------------------------------------- 我们尊重原创,也注重分享,文章来源于微信公众号:BB贩卖团,建议关注公众号查看原文。如若侵权请联系qter@qter.org。 ---------------------------------------------------------------------------------------------------------------------- |