PyQt: 练习 自定义信号 pyqtSignalPyQt: 练习 自定义信号 pyqtSignalPyQt: 练习 自定义信号 pyqtSignalPyQt: 练习 自定义信号 pyqtSignal
  • 首页
  • 博客
  • 文件
  • 书签
  • 分析
  • 登录
Search
Generic filters

PyQt: 练习 自定义信号 pyqtSignal

Published by admin at 2022年4月28日
Categories
  • Python
Tags
import sys
from PyQt5.Qt import *


class CPushButton(QPushButton):
    rightClicked = pyqtSignal([str], [int], [str, int])

    def mousePressEvent(self, e) -> None:
        if e.button() == Qt.RightButton:
            self.rightClicked[str].emit("Qt.RightButton")
            self.rightClicked[int].emit(Qt.RightButton)
            self.rightClicked[str, int].emit("Qt.RightButton", Qt.RightButton)
        return super(CPushButton, self).mousePressEvent(e)


class Window(QWidget):
    def __init__(self):
        super().__init__()
        self.setup_ui()

    def setup_ui(self):
        self.setWindowTitle("Qt桌面应用程序")
        self.resize(300, 300)

        self.push_button = CPushButton("按钮", self)
        self.push_button.setObjectName("pushButton")

        # self.push_button.clicked.connect(lambda value: print("right clicked", value))

        QMetaObject.connectSlotsByName(self)

    @pyqtSlot(bool)
    def on_pushButton_clicked(self, value):
        print("left clicked", value)

    @pyqtSlot(str, int)
    def on_pushButton_rightClicked(self, value_1, value_2):
        print("right clicked", value_1, value_2)


if __name__ == '__main__':
    app = QApplication(sys.argv)
    window = Window()
    window.show()
    sys.exit(app.exec_())

发表回复 取消回复

您的电子邮箱地址不会被公开。 必填项已用*标注

Categories

  • 猫
  • Python
  • MySQL
  • Django
  • Html/CSS
  • JavaScript
  • Vue
  • RegExp
  • php
  • Practice
  • Virtualization
  • Linux
  • Windows
  • Android
  • NAS
  • Software
  • Hardware
  • Network
  • Router
  • Office
  • WordPress
  • SEO
  • English
  • Games
  • Recipes
  • living
  • Memorandum
  • Essays
  • 未分类

归档

©2015-2022 Alaica Blog support@alaica.com