PyQt5学习随笔

在学习pyqt5的过程中碰到的问题,以及一些关键知识点的记录,方便自己再学习。


在python2.7中继承QWidget时super的用法

from PyQt5.QtWidgets import QWidget
class Example(QWidget):
    def __init__(self):
        super(QWidget,self).__init__()
    '''
    other things
    '''

判断发送信号的信号源是哪一个

self.sender()

从QObejct生成的对象可以发送信号

首先要继承QObject,并在里面添上自己需要的信号对象。

from PyQt5.QtCore import pyqtSignal, QObject
class Example(QObject):
    xxsignal = pyqtSignal()

然后连上槽(很古怪的名字,目前学得浅我就当作函数来看了)

from PyQt5.QtWidgets import QMainWindow
class 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 QWidget
class 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
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值