PyQt5学习随笔
来源:互联网 发布:程序怎么变成软件 编辑:程序博客网 时间:2024/06/16 09:41
在学习pyqt5的过程中碰到的问题,以及一些关键知识点的记录,方便自己再学习。
在python2.7中继承QWidget时super的用法
from PyQt5.QtWidgets import QWidgetclass Example(QWidget): def __init__(self): super(QWidget,self).__init__() ''' other things '''
判断发送信号的信号源是哪一个
self.sender()
从QObejct生成的对象可以发送信号
首先要继承QObject,并在里面添上自己需要的信号对象。
from PyQt5.QtCore import pyqtSignal, QObjectclass Example(QObject): xxsignal = pyqtSignal()
然后连上槽(很古怪的名字,目前学得浅我就当作函数来看了)
from PyQt5.QtWidgets import QMainWindowclass Example(QMainWindow): ''' other things ''' self.x = Example() #比如连上close这个槽 self.x.xxsignal.connect(self.close)
最后发射信号
def xxEvent(self): self.x.xxsignal.emit()
实现的效果就是xxEvent触发时关闭应用。
自己写个槽
首先,随便写个传参self的函数,里面就是你要干的事
from PyQt5.QtWidgets import QWidgetclass Example(QMainWindow): ''' other things ''' def xxed(self): #让状态栏显示xxed! self.statusBar().showMessage('xxed!')
然后,连接一个信号
class Example(QMainWindow): ''' other things ''' #xx组件的点击信号连接xxed这个槽 xx.clicked.connect(self.xxed)
实现的效果就是点击xx组件会让状态栏显示xxed!
各种QDialog小结
QInputDialog(输入对话框)
QColorDialog(颜色选择对话框)
QFontDialog(字体选择框)
QFileDialog(文件对话框)
一般使用方法如下:
QxxDiaglog.getxx()
接下来是具体的各种常用的方法:
text, ok = QInputDialog.getText(self, 'Input Dialog Title', 'Input Dialog Text')color = QColorDialog.getColor()font, ok = QFontDialog.getFont()filename = QFileDialog.getOpenFileName(self, 'Open file')
让按钮有两种状态,按下和没有按下
正常情况下的QPushButton
btn = QPushsbutton()btn.clicked.connect(self.xxed)
可以切换状态的QPushButton
btn = QPushsbutton()btn.setCheckable(True)btn.clicked[bool].connect(self.xxed)
槽的写法
def xxed(self,pressed): btn = self.sender() if pressed: pass else: pass ''' other things '''
在pyqt里面经常出现的类似btn.clicked[bool]这种写法的含义
我先是把[bool]删除了,发现程序还是正常运行,难道这个[bool]真的是多余的?
于是我做了如下实验
可以清楚地发现每一次的connect都是不一样的方法,本来想比较下带[bool]和不带[bool]的区别,看来只能暂时放一放了~~
参考
http://zetcode.com/gui/pyqt5/
http://www.cnblogs.com/archisama/
1 0
- PyQt5学习随笔
- pyqt5 学习
- PyQt5学习
- PyQt5学习
- PyQt5学习随笔01--计算一个文件夹里我们码的代码行数&&PyQt的多线程通信
- PyQt5 学习笔记
- PYQT5学习笔记1
- 学习Pyqt5(一)
- pyqt5学习文档
- 学习PyQt5(0)
- PyQt5+py3.5学习补充
- PyQt5学习笔记(1)
- PyQt5
- pyqt5
- 学习随笔
- 学习随笔
- 学习随笔
- 学习随笔
- java form 表单多种提交 (有无文件上传)
- 记录文本框内容的动态变化
- bootstrap_fileinput 上传组件的简单使用
- Android 系列 1.4学习Java语言
- 今天提示MyEclipse Trial Expired,如何手动获取MyEclipse 注册码!很牛!
- PyQt5学习随笔
- 104. Maximum Depth of Binary Tree
- jquery插件开发2之function( $, window, document, undefined ){}的理解
- android 解决底部navigation与手机虚拟按键重叠问题
- Vuejs——(1)入门(单向绑定、双向绑定、列表渲染、响应函数)
- 【Java基础知识】IO流--File类和路径分隔符
- RxJava进阶01
- JBOSS在windows下的环境配置和启动时遇到的错误
- Android 系列 1.5从命令行创建“Hello,World”应用程序