pyqt5窗口之间传递信号_PyQt5-多窗口数据传输

#窗口之间数据传递(通过属性方式)

from PyQt5.QtWidgets import QDialogButtonBox, QDateTimeEdit,QDialog,QComboBox,QTableView,QAbstractItemView,QHeaderView,QTableWidget, QTableWidgetItem, QMessageBox,QListWidget,QListWidgetItem, QStatusBar, QMenuBar,QMenu,QAction,QLineEdit,QStyle,QFormLayout, QVBoxLayout,QWidget,QApplication ,QHBoxLayout, QPushButton,QMainWindow,QGridLayout,QLabel

from PyQt5.QtGui import QIcon,QPixmap,QStandardItem,QStandardItemModel,QCursor,QFont,QBrush,QColor,QPainter,QMouseEvent,QImage,QTransform

from PyQt5.QtCore import QStringListModel,QAbstractListModel,QModelIndex,QSize,Qt,QObject,pyqtSignal,QTimer,QEvent,QDateTime,QDate

import sys

class Win(QWidget):

def __init__(self,parent=None):

super(Win, self).__init__(parent)

self.resize(400,400)

self.btn=QPushButton("按钮",self)

self.btn.move(50,50)

self.btn.setMinimumWidth(120)

self.btn.clicked.connect(self.openDialog)

#显示子窗口传来的日期字符串或者其他数据

self.label=QLabel('这里显示信息',self)

self.label.setMinimumWidth(420)

#打开Dialog

def openDialog(self):

dialog=Dialog(self)

#连接【子窗口内置消息和主窗口的槽函数】

dialog.datetime.dateChanged.connect(self.slot_inner)

#连接【子窗口自定义消息和主窗口槽函数】

dialog.dialogSignel.connect(self.slot_emit)

dialog.show()

def slot_inner(self,date):

print("主窗口:method_1")

self.label.setText("①"+str(date)+">>内置消息获取日期为")

def slot_emit(self,flag,str):

print("主窗口:method_2")

print(flag)

if flag=="0":#点击ok

self.label.setText("②"+str(str)+">>自定义消息")

else:#点击cancel

self.label.setText(str)

#弹出框对象

class Dialog(QDialog):

#自定义消息

dialogSignel=pyqtSignal(int,str)

def __init__(self,parent=None):

super(Dialog, self).__init__(parent)

layout=QVBoxLayout(self)

self.label=QLabel(self)

self.datetime=QDateTimeEdit(self)

self.datetime.setCalendarPopup(True)

self.datetime.setDateTime(QDateTime.currentDateTime())

self.label.setText("请选择日期")

layout.addWidget(self.label)

layout.addWidget(self.datetime)

buttons=QDialogButtonBox(QDialogButtonBox.Ok|QDialogButtonBox.Cancel,Qt.Horizontal,self)

buttons.accepted.connect(self.accept)#点击ok

buttons.rejected.connect(self.reject)#点击cancel

layout.addWidget(buttons)

def accept(self):#点击ok是发送内置信号

print("accept")

self.dialogSignel.emit(0,self.datetime.text())

self.destroy()

def reject(self):#点击cancel时,发送自定义信号

print('reject')

self.dialogSignel.emit(1,"清空")

self.destroy()

if __name__=='__main__':

app=QApplication(sys.argv)

win = Win()

win.show()

sys.exit(app.exec_())

PyQt5之窗口类型

[TOC] 注:原创不易,转载请务必注明原作者和出处,感谢支持! 一 写在开头 1.1 本文内容 本文的主要内容:PyQt中的窗口部件:QMainWindow,QWidget,QDialog. 上述三 ...

pyqt5 设置窗口按钮等可用与不可用

setEnabled(True) 设置窗口或者按钮可用,Flase不可用

PyQt5【入门-窗口】

一.窗口 #设置窗口标题 setWindowTitle("标题") #设置窗口坐标和大小 setGeometry(0,0,800,600) """ 项 ...

ybc云计算思维

YBC的云计算思维 计算机基础 一 计算机由5大单元组成 输入单元(鼠标 键盘) 存储单元(硬盘 内存) 逻辑单元(CPU) 控制单元(主板) 输出单元(显示器 音响 打印机) CPU CPU主要 ...

pyqt5之简单窗口的创建

在学完tkinter后,发现tkinter在布局方面特别的不方便(Tkinter资料:http://effbot.org/tkinterbook/tkinter-index.htm),因此学习pyqt ...

内置窗口 pyqt5

1.使用Qt Designer设计三个窗口 注意:在主窗口中需要添加一个girdLayout 2.创建**.py from PyQt5.QtWidgets import QMainWindow, QA ...

pyqt5 树节点点击实现多窗口切换

# coding=utf-8 import sys from PyQt5.QtWidgets import * from PyQt5.QtCore import * from PyQt5.QtGui ...

Python pyQt4/pyQt5 学习笔记1(空白窗口,按钮,控件事件,控件提示,窗体显示到屏幕中间,messagebox)

PyQt4是用来编写有图形界面程序(GUI applications)的一个工具包.PyQt4作为一个Python模块来使用,它有440个类和超过6000种函数和方法.同时它也是一个可以在几乎所有主流 ...

【PyQt5 学习记录】006:重写窗口事件及QMessageBox

#!/usr/bin/env python import sys from PyQt5.QtWidgets import (QApplication, QMainWindow, QMessageBox ...

随机推荐

VS2015 编译 Qwt6.1.3

VS2015 + Qt5.7 编译 Qwt6.1.3 1. 将 qwtconfig.pri 中的 C:\Qwt 改为  D:/ProgramFiles/C_Library/Qwt/Qwt , 我的Qw ...

Gradle tip #2: understanding syntax

In the Part 1 we talked about tasks and different stages of the build lifecycle. But after I publish ...

CA*Layer(CATransformLayer--CAGradientLayer)

CATransformLayer CATransformLayer不同于普通的CALayer,因为它不能显示它自己的内容.只有当存在了一个能作用域子图层的变换它才真正存在.CATransformLay ...

Tomcat源码学习一

这段时间工作不太忙,所以抽时间学习了TOMCAT, TOMCAT实际就是负责保持TCP连接传递到部署的项目中.浏览器实质就是TCP发送器.将用户的请求封装成TCP发送请求.当然格式是双方协定的.使用的 ...

Spider_Man_4 の BeautifulSoup

一 介绍 Beautiful Soup 是一个可以从HTML或XML文件中提取数据的Python库.它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方式.Beautiful Soup会帮你 ...

java 11 ZGC(可伸缩,低延迟的gc)

ZGC, A Scalable Low-Latency Garbage Collector(Experimental) 可伸缩,低延迟的gc ZGC, 这应该是JDK11最为瞩目的特性, 没有之一. ...

Windows下VSCode编译调试c/c++

参考链接:  https://blog.csdn.net/c_duoduo/article/details/51615381 支持makefile编译: https://www.cnblogs.com ...

AS 常用快捷键

上篇中我们讲了Android Studio如何添加插件,这篇我们讲讲AS的快捷键,这里我说明的快捷键都是最最实用的,希望刚刚加入AS的朋友尽快的熟悉一下这几个快捷键,这样可以帮助你提高coding的效 ...

Linux下无法清空回收站

清空回收站发生错误,直接使用命令 sudo rm -rf ~/.local/share/Trash/files/* 搞定

你可能感兴趣的:(pyqt5窗口之间传递信号)