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-多窗口数据传输的更多相关文章
- PyQt5之窗口类型
[TOC] 注:原创不易,转载请务必注明原作者和出处,感谢支持! 一 写在开头 1.1 本文内容 本文的主要内容:PyQt中的窗口部件:QMainWindow,QWidget,QDialog. 上述三 ...
- pyqt5实现窗口跳转并关闭上一个窗口
关键在于要定义一个关闭窗体的函数colsewin() 然后将按键与该函数连接(connect)在一起即可 import sys from PyQt5.QtWidgets import QMainWin ...
- 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种函数和方法.同时它也是一个可以在几乎所有主流 ...
随机推荐
- vue作用域 this
设计到异步 function 回调的.this指向 需要用内部代替this 如果是箭头符号写法 就不需要 this永远是当前vue实例
- 引:Jmeter添加变量的四种方法
一.在样本中添加同请求一起发送的参数.根据服务器设置的数据类型,来添加不同类型的参数 二.用户定义的变量 1.创建:添加->配置元件->用户定义的变量 2.作用:当前的线程组内所有Samp ...
- HP-UX平台Oracle启动实例遭遇:ORA-27154,ORA-27300,ORA-27301,ORA-27302
环境:HP-UX 11.31 + Oracle 11.2.0.4 现象:在hpux安装Oracle,按业务需求配置参数后,无法启动实例. 报错如下: ORA-27154:post/wait creat ...
- 使用Pytorch进行图像分类,AI challenger 农作物病害分类竞赛源码解读
1.首先对给的数据进行划分,类型为每个类单独放在一个文件夹中 import json import shutil import os from glob import glob from tqdm i ...
- C++ 解析json串
首先, C++ 解析json串,需要用到第三方库(json_vc71_libmtd.lib).然后,VS2010,创建项目json_read,配置项目属性.最后,拷贝下面的代码就可以看到效果了. #i ...
- caffe的运行create_data.sh前对VOC2007图片格式的更改
运用caffe进行深度学习之前需要对图片进行预处理,将图片的大小,格式等进行修改 将300*300的图片改为256*256格式 则将以下参数改为: min_dim=256 max_dim=256 wi ...
- armv8 memory translation table descriptor
上一节大致给出了descriptor的结构,这篇细致分析各个field: 1) Table Descriptor:stage2中不包含任何的attribute的field,每个level中的descr ...
- Yii2缓存依赖
- Sitecore CMS中配置项目图标
在Sitecore中,图标通常用于通过各种不同的模板类型快速区分项目.文章可能使用红色图标,而列表页面可能使用蓝色.项目上设置的图标可以在内容树中看到,也可以在选择项目时在内容编辑器的顶部看到. 从功 ...
- jack welch:“你们知道了,但是我们做到了”
一.我们发现,只要我们敢于相信自己,敢于朝着那些看似不可能的目标不懈努力,最终会如愿以偿,个人的领袖形象也将因此而确立. 二.一个领导者必须要有魄力.对我来说,这就是一个人能否领导一项业务的分水岭. ...