python函数的写法

如下图,这些函数是这么写的,没有函数体,第一次见,这是什么写法?
这是pyqt5的源码

img

这不是源码,这类似java里的jar包一样的,能看到函数声明,但是看不到函数定义

  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7809101
  • 这篇博客也不错, 你可以看下PyQt5 环境搭建+配置+怎样运行生成的.py程序
  • 除此之外, 这篇博客: Python 截图 快捷键截图,一个基于PyQt5的截图,简易截图,自由截图 --pyqt5 入门中的 以下是全部代码 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • import sys
    import keyboard
    from PyQt5.QtWidgets import QApplication, QWidget
    from PyQt5.QtCore import Qt, qAbs, QRect
    from PyQt5.QtGui import QPen, QPainter, QColor, QGuiApplication
    
    class CaptureScreen(QWidget):
        # 初始化变量
        beginPosition = None
        endPosition = None
        fullScreenImage = None
        captureImage = None
        isMousePressLeft = None
        painter = QPainter()
    
        def __init__(self):
            super(QWidget, self).__init__()
            self.initWindow()   # 初始化窗口
            self.captureFullScreen()    # 获取全屏
    
        def initWindow(self):
            self.setMouseTracking(True)     # 鼠标追踪
            self.setCursor(Qt.CrossCursor)  # 设置光标
            self.setWindowFlag(Qt.FramelessWindowHint)  # 窗口无边框
            self.setWindowState(Qt.WindowFullScreen)    # 窗口全屏
    
        def captureFullScreen(self):
            self.fullScreenImage = QGuiApplication.primaryScreen().grabWindow(QApplication.desktop().winId())
    
        def mousePressEvent(self, event):
            if event.button() == Qt.LeftButton:
                self.beginPosition = event.pos()
                self.isMousePressLeft = True
            if event.button() == Qt.RightButton:
                # 如果选取了图片,则按一次右键开始重新截图
                if self.captureImage is not None:
                    self.captureImage = None
                    self.paintBackgroundImage()
                    self.update()
                else:
                    self.close()
    
        def mouseMoveEvent(self, event):
            if self.isMousePressLeft is True:
                self.endPosition = event.pos()
                self.update()
    
        def mouseReleaseEvent(self, event):
            self.endPosition = event.pos()
            self.isMousePressLeft = False
    
        def mouseDoubleClickEvent(self, event):
            if self.captureImage is not None:
                self.saveImage()
                self.close()
    
        def keyPressEvent(self, event):
            if event.key() == Qt.Key_Escape:
                self.close()
            if event.key() == Qt.Key_Enter or event.key() == Qt.Key_Return:
                if self.captureImage is not None:
                    self.saveImage()
                    self.close()
    
        def paintBackgroundImage(self):
            shadowColor = QColor(0, 0, 0, 100)  # 黑色半透明
            self.painter.drawPixmap(0, 0, self.fullScreenImage)
            self.painter.fillRect(self.fullScreenImage.rect(), shadowColor)     # 填充矩形阴影
    
        def paintEvent(self, event):
            self.painter.begin(self)    # 开始重绘
            self.paintBackgroundImage()
            penColor = QColor(30, 144, 245)     # 画笔颜色
            self.painter.setPen(QPen(penColor, 1, Qt.SolidLine, Qt.RoundCap))    # 设置画笔,蓝色,1px大小,实线,圆形笔帽
            if self.isMousePressLeft is True:
                pickRect = self.getRectangle(self.beginPosition, self.endPosition)   # 获得要截图的矩形框
                self.captureImage = self.fullScreenImage.copy(pickRect)         # 捕获截图矩形框内的图片
                self.painter.drawPixmap(pickRect.topLeft(), self.captureImage)  # 填充截图的图片
                self.painter.drawRect(pickRect)     # 画矩形边框
            self.painter.end()  # 结束重绘
    
        def getRectangle(self, beginPoint, endPoint):
            pickRectWidth = int(qAbs(beginPoint.x() - endPoint.x()))
            pickRectHeight = int(qAbs(beginPoint.y() - endPoint.y()))
            pickRectTop = beginPoint.x() if beginPoint.x() < endPoint.x() else endPoint.x()
            pickRectLeft = beginPoint.y() if beginPoint.y() < endPoint.y() else endPoint.y()
            pickRect = QRect(pickRectTop, pickRectLeft, pickRectWidth, pickRectHeight)
            # 避免高度宽度为0时候报错
            if pickRectWidth == 0:
                pickRect.setWidth(2)
            if pickRectHeight == 0:
                pickRect.setHeight(2)
    
            return pickRect
    
        def saveImage(self):
            self.captureImage.save('picture.png', quality=95)   # 保存图片到当前文件夹中
    
    if __name__ == "__main__":
        keyboard.wait(hotkey='f4')  # 按F4开始截图
        app = QApplication(sys.argv)
        windows = CaptureScreen()
        windows.show()
        sys.exit(app.exec_())
    



这个应该只是提纲一类的东西,源代码不可能这么写