PyQt的signal 和 solit的补充

简介:   from PyQt5.QtWidgets import (QWidget , QVBoxLayout , QHBoxLayout, QLineEdit, QPushButton) from PyQt5.

 

 

from PyQt5.QtWidgets import (QWidget
            , QVBoxLayout , QHBoxLayout, 
             QLineEdit, QPushButton)

from PyQt5.QtCore import  pyqtSignal
from PyQt5 import QtCore
##############################################

# 参考大丸子的博客
#http://jimmykuu.sinaapp.com/blog/11






class LoginView(QWidget):
    
    ## 登录界面时发送 关闭信号
    quitSignal = pyqtSignal()
    loginSignal = pyqtSignal(list)
    # server端没有响应
    openFailureSignal = pyqtSignal()
    
    

    
    
    def __init__(self, parent=None):
        super(LoginView, self).__init__(parent)
        self.ids_receive = []
        
        self._init_ui()


        
    def _init_ui(self):    

        layout_button = QHBoxLayout()       
        layout_input = QHBoxLayout()       
        
        self.input_name = QLineEdit()
        self.input_pass = QLineEdit()
        
        
        button_login =  QPushButton("登录")
        button_login.setObjectName("ok_button")
        
        button_quit  =  QPushButton("取消")
        button_hello  =  QPushButton("hello")
        self.button_hello = button_hello
        button_hello.setObjectName("hello_button")

        #button_login.clicked.connect(self.do_login)
        #button_quit.clicked.connect(self.loginQuit)
        
        layout_button.addWidget(button_login)
        layout_button.addWidget(button_quit)
        
        layout_input.addWidget(self.input_name)
        layout_input.addWidget(self.input_pass)
        layout_input.addWidget(self.button_hello)
        
  
        layout_main = QVBoxLayout()  
        self.setLayout(layout_main)
        layout_main.addLayout(layout_button)
        layout_main.addLayout(layout_input)
   
        # QMetaObject. connectSlotsByName(QObject)
        #网上百度到的说明:其作用是如其名称一样,用来将QObject 里的子孙QObject的某些信号按照其objectName连接到相应的槽上
        #       ,如 button_hello.setObjectName("hello_button")
        # 官网解释用法: http://doc.qt.io/qt-5/qmetaobject.html#connectSlotsByName
        QtCore.QMetaObject.connectSlotsByName(self)
     
    def loginQuit(self):
        print ("cencel")
    
    #试试注销掉该装饰器
    # 有点奇怪啊,一旦注释掉装饰器,打印会执行两次啊
    #QtCore.pyqtSlot(str, str)可以携带参数的
    @QtCore.pyqtSlot() 
    def on_hello_button_clicked(self):   
        print('on_pbHello_clicked')
       
    @QtCore.pyqtSlot()    
    def on_ok_button_clicked(self):
        print ("OK")
        self.loginSignal.emit([1, 2])
        

        
    def do_login(self):
        #获取用户和密码文本框的内容
        u_name = self.input_name.text()
        u_pass =  self.input_pass.text()
        
       
        print('u_name', u_name, u_pass)
        
        

        
if __name__ == '__main__':

    import sys
    from PyQt5.QtWidgets import QApplication
    app = QApplication(sys.argv)    

    login = LoginView()
    login.show()

    sys.exit(app.exec_())

  

 

相关文章
|
30天前
|
数据采集 开发工具 Python
海康威视工业相机SDK+Python+PyQt开发数据采集系统(支持软件触发、编码器触发)
该系统基于海康威视工业相机SDK,使用Python与PyQt开发,支持Gige与USB相机设备的搜索及双相机同时显示。系统提供软件触发与编码器触发模式,并可在数据采集过程中实时保存图像。此外,用户可以调节曝光时间和增益,并进行信息输入,这些信息将被保存至配置文件以便下次自动加载。参数调节与实时预览等功能进一步增强了系统的实用性。
55 1
|
1月前
|
数据可视化 Linux API
Tkinter与PyQt的对比
【8月更文挑战第3天】本文对比了Python中两大GUI工具包Tkinter与PyQt。Tkinter作为Python标准库的一部分,易于学习且轻量级,适合快速开发简单的跨平台GUI应用。PyQt功能强大且灵活,支持复杂应用的开发,更适合有经验的开发者。通过示例代码展示了如何使用这两种工具包创建基本的GUI应用及图像查看器,帮助读者理解它们的不同之处。选择哪个工具包取决于项目的具体需求、开发者的经验以及对功能和性能的要求。
64 4
|
2月前
|
Python
Python的`signal`模块提供了访问底层操作系统提供的信号机制的方式。信号是操作系统用来通知进程发生了某种情况(如用户按下Ctrl+C)的一种机制。
Python的`signal`模块提供了访问底层操作系统提供的信号机制的方式。信号是操作系统用来通知进程发生了某种情况(如用户按下Ctrl+C)的一种机制。
|
4月前
|
Python
PyQt---------信号与槽函数的关系
PyQt---------信号与槽函数的关系
76 1
|
4月前
|
Python
PyQt中资源文件的使用(详细步骤介绍)
PyQt中资源文件的使用(详细步骤介绍)
160 1
|
4月前
|
图形学 Python
pyqt的学习(三)----鼠标点击和按键处理
pyqt的学习(三)----鼠标点击和按键处理
83 1
|
4月前
|
NoSQL 数据库 Python
PyQt学习(二)-----图形的建立(柱状图,折线图,堆叠柱状图,饼图)
PyQt学习(二)-----图形的建立(柱状图,折线图,堆叠柱状图,饼图)
49 1
|
4月前
|
开发框架 程序员 开发者
Python GUI编程:从入门到精通3.2 GUI编程:学习使用Tkinter、PyQt或wxPython等库创建图形用户界面。
Python GUI编程:从入门到精通3.2 GUI编程:学习使用Tkinter、PyQt或wxPython等库创建图形用户界面。
|
4月前
|
Python
PyQt学习------PyQt自定义信号
PyQt学习------PyQt自定义信号
45 0
|
4月前
|
图形学 Python
PyQt中图表的建立与显示(完整过程演示)
PyQt中图表的建立与显示(完整过程演示)
81 0