1. from PyQt5.QtWidgets import (QWidget
  2. , QVBoxLayout , QHBoxLayout,
  3. QLineEdit, QPushButton)
  4.  
  5. from PyQt5.QtCore import pyqtSignal
  6. from PyQt5 import QtCore
  7. ##############################################
  8.  
  9. # 参考大丸子的博客
  10. #http://jimmykuu.sinaapp.com/blog/11
  11.  
  12. class LoginView(QWidget):
  13.  
  14. ## 登录界面时发送 关闭信号
  15. quitSignal = pyqtSignal()
  16. loginSignal = pyqtSignal(list)
  17. # server端没有响应
  18. openFailureSignal = pyqtSignal()
  19.  
  20. def __init__(self, parent=None):
  21. super(LoginView, self).__init__(parent)
  22. self.ids_receive = []
  23.  
  24. self._init_ui()
  25.  
  26. def _init_ui(self):
  27.  
  28. layout_button = QHBoxLayout()
  29. layout_input = QHBoxLayout()
  30.  
  31. self.input_name = QLineEdit()
  32. self.input_pass = QLineEdit()
  33.  
  34. button_login = QPushButton("登录")
  35. button_login.setObjectName("ok_button")
  36.  
  37. button_quit = QPushButton("取消")
  38. button_hello = QPushButton("hello")
  39. self.button_hello = button_hello
  40. button_hello.setObjectName("hello_button")
  41.  
  42. #button_login.clicked.connect(self.do_login)
  43. #button_quit.clicked.connect(self.loginQuit)
  44.  
  45. layout_button.addWidget(button_login)
  46. layout_button.addWidget(button_quit)
  47.  
  48. layout_input.addWidget(self.input_name)
  49. layout_input.addWidget(self.input_pass)
  50. layout_input.addWidget(self.button_hello)
  51.  
  52. layout_main = QVBoxLayout()
  53. self.setLayout(layout_main)
  54. layout_main.addLayout(layout_button)
  55. layout_main.addLayout(layout_input)
  56.  
  57. # QMetaObject. connectSlotsByName(QObject)
  58. #网上百度到的说明:其作用是如其名称一样,用来将QObject 里的子孙QObject的某些信号按照其objectName连接到相应的槽上
  59. # ,如 button_hello.setObjectName("hello_button")
  60. # 官网解释用法: http://doc.qt.io/qt-5/qmetaobject.html#connectSlotsByName
  61. QtCore.QMetaObject.connectSlotsByName(self)
  62.  
  63. def loginQuit(self):
  64. print ("cencel")
  65.  
  66. #试试注销掉该装饰器
  67. # 有点奇怪啊,一旦注释掉装饰器,打印会执行两次啊
  68. #QtCore.pyqtSlot(str, str)可以携带参数的
  69. @QtCore.pyqtSlot()
  70. def on_hello_button_clicked(self):
  71. print('on_pbHello_clicked')
  72.  
  73. @QtCore.pyqtSlot()
  74. def on_ok_button_clicked(self):
  75. print ("OK")
  76. self.loginSignal.emit([1, 2])
  77.  
  78. def do_login(self):
  79. #获取用户和密码文本框的内容
  80. u_name = self.input_name.text()
  81. u_pass = self.input_pass.text()
  82.  
  83. print('u_name', u_name, u_pass)
  84.  
  85. if __name__ == '__main__':
  86.  
  87. import sys
  88. from PyQt5.QtWidgets import QApplication
  89. app = QApplication(sys.argv)
  90.  
  91. login = LoginView()
  92. login.show()
  93.  
  94. sys.exit(app.exec_())

  

PyQt的signal 和 solit的补充的更多相关文章

  1. 转载:pyqt的signal和solit

    转自:http://blog.csdn.net/hlqyq/article/details/6713828 import sysfrom PyQt5.QtCore import pyqtSignal, ...

  2. JAVA中的枚举小结

    枚举 将一组有限集合创建为一种新的类型,集合里面的值可以作为程序组件使用: 枚举基本特性 以下代码是枚举的简单使用: 使用values方法返回enum实例的数组 使用ordinal方法返回每个enum ...

  3. PyQt信号connect连接槽方法时报:native Qt signal is not callable错误

    专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 老猿学5G博文目录 在将一个信号连接到槽方法时,程序异常退出,捕获异常 ...

  4. 第四章 、PyQt中的信号(signal)和槽(slot)机制以及Designer中的使用

    老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.引言 前面章节其实已经在使用信号和槽了,但是作为Qt中最重要的机制也是Qt区别与其他开发平台的重 ...

  5. 第15.16节 PyQt(Python+Qt)入门学习:PyQt中的信号(signal)和槽(slot)机制以及Designer中的使用

    老猿Python博文目录 老猿Python博客地址 一.引言 前面一些章节其实已经在使用信号和槽了,但是作为Qt中最重要的机制也是Qt区别与其他开发平台的重要核心特性,还是非常有必要单独介绍. 二.信 ...

  6. Linux 条件变量函数signal和wait补充

    pthread_cond_wait必须放在pthread_mutex_lock和pthread_mutex_unlock之间,因为他要根据共享变量的状态来觉得是否要等待,而为了不永远等待下去所以必须要 ...

  7. pyqt的多Button的点击事件的槽函数的区分发送signal的按钮。

    关键函数:QPushButton的setObjectName()/objectName() 个人注解:按功能或者区域,将按钮的点击事件绑定的不同的槽函数上. from PyQt5.QtWidgets ...

  8. 信号 signal sigaction补充

    目前linux中的signal()是通过sigation()函数实现的. 由signal()安装的实时信号支持排队,同样不会丢失. 先看signal 和 sigaction 的区别: 关键是 stru ...

  9. PyQt学习随笔:QTableWidget的信号signal简介

    老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 QTableWidget非继承自父类的信号如下: cellActivated(int row, in ...

随机推荐

  1. 【转】Unity3D中脚本的执行顺序和编译顺序

    支持原文,原文请戳: Unity3D中脚本的执行顺序和编译顺序 在Unity中可以同时创建很多脚本,并且可以分别绑定到不同的游戏对象上,它们各自都在自己的生命周期中运行.与脚本有关的也就是编译和执行啦 ...

  2. 【Linux技术】磁盘的物理组织,深入理解文件系统

    磁盘即是硬盘,由许多块盘片(盘面)组成,每个盘片的上下两面都涂有磁粉,磁化后可以存储信息数据.每个盘片的上下两面都安装有磁头,磁头被安装在梳状的可以做直线运动的小车上以便寻道,每个盘面被格式化成有若干 ...

  3. WPF 异步执行

    private void Operate_OnClick(object sender, RoutedEventArgs e) { AsyncFindBox(); RadWindow.Alert(&qu ...

  4. 基于jQuery鼠标悬停上下滑动导航条

    基于jQuery鼠标悬停上下滑动导航条.这是一款蓝色好看的鼠标响应式网站导航菜单特效.效果图如下: 在线预览   源码下载 实现的代码. html代码: <div id="menu2& ...

  5. AutoLayout——何为intrinsic content size

    上一篇说到了约束就是等式和不等式.仅仅知道其原理还是没法拉出符合需求的线.所以这一篇主要看来什么是intrinsic content size,以及它有什么用. 在Xcode中,差点儿全部控件或视图, ...

  6. 【Web安全】越权操作——横向越权与纵向越权

    参考:http://blog.csdn.net/github_39104978/article/details/78265433 看了上面的文章,对越权操作的概念还是比较模糊,不明确实际场景. 横向越 ...

  7. Introduction to MyBatis Generator Mybatis代码生成介绍

    Mybatis官方提供了代码生成工具,这里是官方网站: http://mybatis.github.io/generator/index.html 可以自动生成 Java POJOs, Mapper. ...

  8. [转] 机器学习是什么——周志华

    机器学习现在是一大热门,研究的人特多,越来越多的新人涌进来. 不少人其实并没有真正想过,这是不是自己喜欢搞的东西,只不过看见别人都在搞,觉着跟大伙儿走总不会吃亏吧. 问题是,真有个"大伙儿& ...

  9. keras系列︱人脸表情分类与识别:opencv人脸检测+Keras情绪分类(四)

    引自:http://blog.csdn.net/sinat_26917383/article/details/72885715 人脸识别热门,表情识别更加.但是表情识别很难,因为人脸的微表情很多,本节 ...

  10. Android训练课程(Android Training) - 构建你的第一个应用

    本文翻译自:https://developer.android.com/training/basics/firstapp/index.html 构建你的第一个应用(app) 欢迎来到安卓开发! 这个课 ...