PyQt的signal 和 solit的补充
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_())
PyQt的signal 和 solit的补充的更多相关文章
- 转载:pyqt的signal和solit
转自:http://blog.csdn.net/hlqyq/article/details/6713828 import sysfrom PyQt5.QtCore import pyqtSignal, ...
- JAVA中的枚举小结
枚举 将一组有限集合创建为一种新的类型,集合里面的值可以作为程序组件使用: 枚举基本特性 以下代码是枚举的简单使用: 使用values方法返回enum实例的数组 使用ordinal方法返回每个enum ...
- PyQt信号connect连接槽方法时报:native Qt signal is not callable错误
专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 老猿学5G博文目录 在将一个信号连接到槽方法时,程序异常退出,捕获异常 ...
- 第四章 、PyQt中的信号(signal)和槽(slot)机制以及Designer中的使用
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.引言 前面章节其实已经在使用信号和槽了,但是作为Qt中最重要的机制也是Qt区别与其他开发平台的重 ...
- 第15.16节 PyQt(Python+Qt)入门学习:PyQt中的信号(signal)和槽(slot)机制以及Designer中的使用
老猿Python博文目录 老猿Python博客地址 一.引言 前面一些章节其实已经在使用信号和槽了,但是作为Qt中最重要的机制也是Qt区别与其他开发平台的重要核心特性,还是非常有必要单独介绍. 二.信 ...
- Linux 条件变量函数signal和wait补充
pthread_cond_wait必须放在pthread_mutex_lock和pthread_mutex_unlock之间,因为他要根据共享变量的状态来觉得是否要等待,而为了不永远等待下去所以必须要 ...
- pyqt的多Button的点击事件的槽函数的区分发送signal的按钮。
关键函数:QPushButton的setObjectName()/objectName() 个人注解:按功能或者区域,将按钮的点击事件绑定的不同的槽函数上. from PyQt5.QtWidgets ...
- 信号 signal sigaction补充
目前linux中的signal()是通过sigation()函数实现的. 由signal()安装的实时信号支持排队,同样不会丢失. 先看signal 和 sigaction 的区别: 关键是 stru ...
- PyQt学习随笔:QTableWidget的信号signal简介
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 QTableWidget非继承自父类的信号如下: cellActivated(int row, in ...
随机推荐
- 远程mysql导入本地文件
远程mysql导入本地文件 登陆数据库 mysql --local-infile -h<IP> -u<USR> -p 选择数据库 USE xxx 导入文件 LOAD DATA ...
- windows下使用mingw编译出ffplay(简化版)
之前编译FFmpeg直接使用dll.lib,默认的mingw也不会编译出ffplay.exe. 近期由于工作需要,需要验证下修改之后的FFmpeg版本是否正常,需要使用ffplay.exe. 比较暴力 ...
- Android padding 和margin
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout ...
- Android开发(八)——Android组件
参考: [1] Android开发教程:理解Intent和Intent Filter.http://liuzhichao.com/p/506.html
- C#学习笔记(16)——C#中重写(override)和覆盖(new)的区别
说明(2017-7-17 23:04:45): 原文: C#中重写(override)和覆盖(new)的区别 重写 用关键字 virtual 修饰的方法,叫虚方法.可以在子类中用override 声明 ...
- C#学习笔记(8)——委托应用(显示,写入时间)
说明(2017-5-30 09:08:10): 1. 定义一个委托,public delegate void MyDel();无参数,无返回值. 2. 委托作为DoSth的参数,DoSth里面调用委托 ...
- Server.MapPath 出现未将对象引用设置到对象的实例
此文仅在于使遇到相似问题的朋友能少走弯路 asp.net中我用一个页面的cs文件调用一个自定义类,这个自定义类再调用 System.Web.HttpContext.Current.Server.Map ...
- 神奇的bug,退出时自动更新时间
遇到一个神奇的bug,用户退出时,上次登录时间会变成退出时的时间. 于是开始跟踪,发现Laravel在退出时,会做一次脏检查,这时会更新rember_token,这时就会有update操作如下. 而粗 ...
- (Hive)史上最难解析的json字符串解析出来了!!
首先说下解析的数据如下: {"username":"king","actionInfo":{"id":1,"a ...
- java进程的守护进程脚本
当jar程序执行异常中断时,希望系统能够自动启动.通过以下shell脚本监控程序一直运行. #/bin/bash while true; do count=`ps -ef | grep test.ja ...