【PyQt5 知识点示例代码,阿里内部资料

    self.show()



def showMsg(self):

    sender = self.sender()  # 获取信号是由哪个控件发出的,可以获取到btn1或btn2

    QMessageBox.information(self, '提示信息', f'{sender.text()}被按下。')

if name == ‘main’:

app = QApplication(sys.argv)

ex = MainWindow()

sys.exit(app.exec_()) 



[](https://gitee.com/vip204888/java-p7)重写keyPressEvent - Esc关闭窗口

--------------------------------------------------------------------------------------------



![在这里插入图片描述](https://img-blog.csdnimg.cn/20210401000418742.png)



import sys

from PyQt5.QtCore import Qt

from PyQt5.QtWidgets import QWidget, QApplication

class Widget(QWidget):

def __init__(self):

    super().__init__()

    self.initUI()



def initUI(self):

    self.setGeometry(300, 300, 360, 130)  # (pos_x, pos_y, width, height)

    self.setWindowTitle('按Esc键关闭窗口')

    self.show()



# 重写了键盘事件处理器

def keyPressEvent(self, e):

    if e.key() == Qt.Key_Escape:

        self.close()

if name == ‘main’:

app = QApplication(sys.argv)

w = Widget()

sys.exit(app.exec_()) 



[](https://gitee.com/vip204888/java-p7)内置槽函数 - 滚动条控制LCD

-----------------------------------------------------------------------------------



![在这里插入图片描述](https://img-blog.csdnimg.cn/20210401001018955.png)



import sys

from PyQt5.QtCore import Qt

from PyQt5.QtWidgets import QWidget, QLCDNumber, QSlider, QVBoxLayout, QApplication

class Widget(QWidget):

def __init__(self):

    super().__init__()

    self.initUI()



def initUI(self):

    # 创建一个QLCDNumber控件,QLCDNumber用于显示一个带有仿真显示屏效果的数字

    lcd = QLCDNumber(self)

    # 创建一个QSlider控件,QSlider提供了一个水平或垂直滑动条

    sld = QSlider(Qt.Horizontal, self)



    vbox = QVBoxLayout()

    vbox.addWidget(lcd)

    vbox.addWidget(sld)



    self.setLayout(vbox)

    # 将滑动条的valueChanged信号与LCD的display槽函数连接

    sld.valueChanged.connect(lcd.display)



    self.setGeometry(300, 300, 300, 150)

    self.setWindowTitle('LCD显示')

    self.show()

if name == ‘main’:

app = QApplication(sys.argv)

w = Widget()

sys.exit(app.exec_()) 



[](https://gitee.com/vip204888/java-p7)自定义信号

------------------------------------------------------------------------



![在这里插入图片描述](https://img-blog.csdnimg.cn/20210401000959676.png)



自定义信号方法一:自定义信号类继承`QObject`



import sys

from PyQt5.QtCore import pyqtSignal, QObject

from PyQt5.QtWidgets import QMainWindow, QApplication

class MySignal(QObject): # 自定义信号需要继承QObject

sigClose = pyqtSignal()

class MainWindow(QMainWindow):

def __init__(self):

    super().__init__()

    self.initUI()



def initUI(self):

    self.sig = MySignal():

    self.sig.sigClose.connect(self.close)   # 将sig的sigClose信号与窗口的close()槽函数连接



    self.setGeometry(300, 300, 320, 150)

    self.setWindowTitle('单击鼠标关闭')

    self.show()



# 重写mousePressEvent事件处理器,该处理器在鼠标按下时触发

def mousePressEvent(self, event):

    self.sig.sigClose.emit()    # 将sig的sigClose信号发出,会调用与之连接的close()槽函数

    # self.close()

if name == ‘main’:

app = QApplication(sys.argv)

w = MainWindow ()

sys.exit(app.exec_()) 



自定义信号方法二:直接在`MainWindow`类中定义信号属性,不需要专门定义一个类



import sys

from PyQt5.QtCore import pyqtSignal

from PyQt5.QtWidgets import QMainWindow, QApplication

class MainWindow(QMainWindow):

# 直接在MainWindow类中定义信号属性,不需要专门定义一个类

sigClose = pyqtSignal()



def __init__(self):

    super().__init__()

    self.initUI()



def initUI(self):

    # 将sigClose信号与窗口的close()槽函数连接

    self.sigClose.connect(self.close)



    self.setGeometry(300, 300, 320, 150)

    self.setWindowTitle('单击鼠标关闭')

    self.show()



def mousePressEvent(self, event):

    self.sigClose.emit()

if name == ‘main’:

app = QApplication(sys.argv)

w = MainWindow ()

sys.exit(app.exec_()) 



[](https://gitee.com/vip204888/java-p7)事件对象、重写mouseMoveEvent

----------------------------------------------------------------------------------------



![在这里插入图片描述](https://img-blog.csdnimg.cn/20210401001152477.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzczNDA5NQ==,size_1,color_FFFFFF,t_70)



import sys

from PyQt5.QtWidgets import QWidget, QApplication, QLabel

class Widget(QWidget):

def __init__(self):

    super().__init__()

    self.initUI()



def initUI(self):

    # QLabel控件用于显示文本

    self.label = QLabel("x: 0,  y: 0        ", self)

    self.label.move(10, 10)



    # 鼠标指针移动可能会触发鼠标移动事件,该事件如果开启会被频繁触发,默认是不开启的

    self.setMouseTracking(True)



    self.setGeometry(300, 300, 350, 200)

    self.setWindowTitle('事
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值