`
pjwqq
  • 浏览: 81307 次
社区版块
存档分类
最新评论

pyqt5学习(1)自定义信号

阅读更多

    pyqt5与老的pyqt4很多地方不一样,慢慢摸索.

    qt使用信号和槽,这个叫法 蛮有意思的,不过原理和其它语言的差不多.

    早上研究了下如何自定义信号并处理

            

    书中(P95),原例是pyqt4,现环境是py3.5+pyqt5,我做了修改

    左侧dial转动值,与右侧spinbox的值保持同步.另外,在dial中自定义过零刻度信号,指针到零刻度时发出信号.

    

import sys
from PyQt5.QtCore import * 
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *

class ZeroSpinBox(QSpinBox):
    zeros = 0
    atzero = pyqtSignal(int) #自定义信号,参数即在zeros,指针过零的次数

    def __init__(self,parent=None):
        super(ZeroSpinBox,self).__init__(parent)
        self.valueChanged.connect(self.zerochk) #值改变,要检查

    def zerochk(self):
        if self.value() == 0:
            self.zeros += 1
            self.atzero.emit(self.zeros) #发射信号了

class Form(QDialog):
    def __init__(self,parent=None):
        super(Form,self).__init__(parent)
        self.dial = QDial()
        self.dial.setNotchesVisible(True)
        self.spinbox = ZeroSpinBox()
        layout = QHBoxLayout()
        layout.addWidget(self.dial)
        layout.addWidget(self.spinbox)
        self.setLayout(layout)
        self.dial.valueChanged.connect(self.spinbox.setValue)
        self.spinbox.valueChanged.connect(self.dial.setValue)
        self.spinbox.atzero.connect(self.printzero) #这里处理自定义信号 

    def printzero(self,zerocount): #接受参数别忘了
        print ("ZeroSpinBox has been at zero %d times"%zerocount)
        

app = QApplication(sys.argv)
form = Form()
form.show()
app.exec_()        

 
  

  

  • 大小: 8.2 KB
0
0
分享到:
评论

相关推荐

    PyQt5入门教程.pdf

    PyQt5是一个基于Python语言的跨平台应用程序和GUI工具包,它是Qt库的Python封装。PyQt5广泛应用于开发各种...同时,本教程也旨在帮助读者快速地理解和运用PyQt5的核心概念,从而为进一步深入学习PyQt5打下坚实的基础。

    pyqt5 学习1-10

    以上内容只是PyQT5学习1-10可能涵盖的部分知识点,实际的学习过程中还可能涉及其他高级主题,如网络编程、多线程、国际化和本地化、自定义控件等。通过深入学习和实践,你可以逐步掌握PyQT5,开发出具有专业水准的...

    PyQt5学习过程中的例子

    PyQt5允许自定义控件样式,通过`setStyleSheet()`方法可以设置CSS样式的QSS语言。例如,`button.setStyleSheet('background-color: red; color: white;')`可以让按钮背景变为红色,文字变为白色。 文件操作也是PyQT...

    PYQT5+sqlite数据库+QTableWidget自定义表格显示

    PYQT5是一个强大的Python GUI库,它为开发者提供了丰富的组件和功能来构建桌面应用程序。在本项目中,PYQT5被用来创建一个桌面小工具,...同时,项目也涵盖了数据库操作和UI设计,是学习PYQT5结合数据库应用的好例子。

    PyQt5 窗口切换与自定义对话框的实例

    ### PyQt5 窗口切换与自定义对话框的实例详解 #### 一、引言 随着GUI开发的日益普及,PyQt5作为一款强大的跨平台GUI库,因其丰富的功能和简洁的API受到...希望本文能对你有所帮助,祝你在PyQt5的学习道路上越走越远!

    PyQt5 编写的指示灯类

    对于想要学习如何使用 PyQt5 绘制简单图形、处理用户交互以及了解自定义小部件的创建和使用的初学者来说,这是一个很好的入门资源。熟悉其他编程语言,并希望快速学习使用 PyQt5 来构建界面的开发者也可以受益于这个...

    PyQt5简明文档(中文版)V2.rar

    5. **信号与槽**:深入解析信号和槽的概念,如何连接和断开信号,以及如何自定义信号和槽。 6. **对话框与文件操作**:涵盖如QFileDialog、QMessageBox等对话框的使用,以及如何进行文件的打开、保存和读写操作。 ...

    Pyqt5学习工程的创建与使用.rar

    这个“Pyqt5学习工程的创建与使用.rar”压缩包包含了一系列资源,旨在帮助初学者掌握PyQt5的基本用法和实践操作。 首先,我们来看看“PyQt5简明文档”。这份文档是学习PyQt5的基础,它可能包含了PyQt5的核心概念、...

    QTreeView 使用自定义Model

    1. **创建自定义Model** - 派生自QAbstractItemModel:这是创建自定义Model的基础。你需要实现必要的虚函数,如`rowCount()`, `columnCount()`, `data()`, `index()`, `parent()`等,以符合Qt的MVC设计模式。 - ...

    PyQt5快速开发与实战部分代码

    1. **基础概念**:了解PyQt5的基本架构,包括窗口部件(QWidgets)、布局管理(QLayouts)、信号和槽(Signals & Slots)等核心概念。窗口部件如按钮(QPushButton)、标签(QLabel)、文本编辑器(QTextEdit)等是...

    pyqt5基础教程

    PyQt5中还包含了信号和槽(signals and slots)机制,这是Qt框架的基石之一,用于对象间通信。一个对象发射信号,另一个对象则接收信号并作出响应。教程会教你如何使用信号和槽来响应用户的操作,如按钮点击或窗口...

    PyQt5简易计算器

    对于初学者来说,这是一个很好的学习PyQt5和Python GUI编程的实例。通过这个项目,你可以深入了解PyQt5的使用,并且可以进一步扩展其功能,如添加科学计算、历史记录等功能,提升计算器的实用性。

    PyQt5入门教程

    ### PyQt5入门教程知识点概述 #### 一、PyQt5简介与安装配置 - **PyQt5概述**:PyQt5是Python编程语言的一个GUI工具包,它为...以上内容涵盖了PyQt5的基础知识和进阶主题,为学习者提供了全面的学习路径和实践指南。

    pyqt5的波形显示界面

    1. **QMainWindow**: 这是PyQt5中的主要窗口类,通常作为应用的基础容器,我们可以在此基础上添加其他控件和布局。 2. **QGraphicsView**和**QGraphicsScene**: 如果需要绘制复杂的图形,可以使用这两个组件。...

    pyqt实现虚拟小键盘

    首先,我们要理解PyQt5中的“信号槽”通信机制。在Qt编程中,信号和槽是对象间通信的关键机制。当一个事件发生时(例如按钮被点击),该事件源会发出一个信号。其他对象可以连接到这个信号,当信号被发射时,已连接...

    PyQt5 tutorial(PyQt5教程高清完全版)(英文)

    教程涵盖了界面编程的基本知识,包括菜单和工具栏、布局管理、事件和信号、对话框、小部件、拖放操作、绘图以及自定义小部件等内容。一个示例项目是Tetris游戏,通过这个项目可以学习如何构建一个完整的应用程序。 ...

    python pyqt5 gui 入门教程 干货

    通过深入学习以上内容,你将能够构建出基本的PyQT5 GUI应用。继续探索更高级的主题,如事件处理、多线程、数据库集成等,将使你成为PyQT5 GUI开发的高手。不断实践和实验,你将能够开发出功能丰富的桌面应用程序。

    pyqt5控件学习代码

    这个"pyqt5控件学习代码"的压缩包很可能是为了帮助初学者或开发者深入理解PyQT5中各种控件的用法和功能。 PyQT5中的主要控件类别包括: 1. **按钮(QPushButton)**:用于触发单击事件,通常用于执行特定操作。...

Global site tag (gtag.js) - Google Analytics