首页 > 其他分享 >PyQT5之多窗口交互

PyQT5之多窗口交互

时间:2024-06-08 17:12:04浏览次数:15  
标签:__ DateDialog self 多窗口 PyQT5 dialog date import 交互

方法一:不适用信号与槽

MultiWin.py文件

"""
多窗口交互--不适用信号与槽
"""

import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
from DateDialog import DateDialog


class MultiWindow1(QWidget):
    def __init__(self):
        super(MultiWindow1, self).__init__()
        self.setWindowTitle("多窗口交互(1):不使用信号和槽")

        self.lineEdit = QLineEdit(self)
        self.button1 = QPushButton("弹出对话框1")
        self.button1.clicked.connect(self.onButton1Click)

        self.button2 = QPushButton("弹出对话框2")
        self.button2.clicked.connect(self.onButton2Click)

        gridLayout = QGridLayout()
        gridLayout.addWidget(self.lineEdit)
        gridLayout.addWidget(self.button1)
        gridLayout.addWidget(self.button2)

        self.setLayout(gridLayout)

    def onButton1Click(self):
        dialog = DateDialog(self)
        result = dialog.exec()
        date = dialog.dateTime()
        self.lineEdit.setText(date.date().toString())
        dialog.destroy()

    def onButton2Click(self):
        date, time, result = DateDialog.getDateTime()
        self.lineEdit.setText(date.toString())
        if result == QDialog.Accepted:
            print("点击确认按钮")
        else:
            print("点击取消按钮")


if __name__ == "__main__":
    app = QApplication(sys.argv)

    main = MultiWindow1()
    main.show()

    sys.exit(app.exec_())

DateDialog.py文件

from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *


class DateDialog(QDialog):
    def __init__(self, parent=None):
        super(DateDialog, self).__init__(parent)
        self.setWindowTitle("DateDialog")

        layout = QVBoxLayout(self)
        self.datetime = QDateTimeEdit(self)
        self.datetime.setCalendarPopup(True)
        self.datetime.setDateTime(QDateTime.currentDateTime())

        layout.addWidget(self.datetime)

        button = QDialogButtonBox(QDialogButtonBox.Ok | QDialogButtonBox.Cancel, Qt.Horizontal, self)
        button.accepted.connect(self.accept)
        button.rejected.connect(self.reject)

        layout.addWidget(button)

    def dateTime(self):
        return self.datetime.dateTime()

    @staticmethod
    def getDateTime(parent=None):
        dialog = DateDialog(parent)
        result = dialog.exec()
        date = dialog.dateTime()
        return (date.date(), date.time(), result==QDialogButtonBox.Ok)

标签:__,DateDialog,self,多窗口,PyQT5,dialog,date,import,交互
From: https://www.cnblogs.com/jackchen28/p/18238768

相关文章

  • PyQT5之为槽函数传递参数
    方法一:lambda表达式传递参数fromPyQt5.QtCoreimport*fromPyQt5importQtCorefromPyQt5.QtWidgetsimport*importsysclassLambdaSlotArg(QMainWindow):def__init__(self):super().__init__()self.setWindowTitle("使用Lambda表达式为槽函......
  • PyQT5信号与槽的连接
    方法一:fromPyQt5.QtCoreimport*fromPyQt5.QtWidgetsimport*importsysclassAutoSignalSlot(QWidget):def__init__(self):super().__init__()self.setWindowTitle("信号与槽自动连接")self.resize(300,100)self.okB......
  • PyQT5信号刷新时间
    importtimefromPyQt5.QtCoreimport*fromPyQt5.QtWidgetsimport*importsysclassBackendThread(QThread):update_date=pyqtSignal(str)defrun(self):whileTrue:data=QDateTime.currentDateTime()currentTim......
  • PyQT5之信号关闭窗口
    fromPyQt5.QtCoreimport*fromPyQt5.QtWidgetsimport*importsysclassWinSignal(QWidget):#定义一个信号button_clicked_signal=pyqtSignal()def__init__(self):super().__init__()self.setWindowTitle("为窗口类添加信号")......
  • PyQT5之窗口
    窗口类型:QMainWindow:可以包含菜单栏、工具栏、状态栏、标题栏QWidget:不确定窗口的用途,就使用QWidgetQDialog:是对话窗口的基类,没有菜单栏、工具栏、状态栏fromPyQt5.QtWidgetsimportQMainWindow,QApplicationfromPyQt5importQtCore,QtGuifromPyQt5.QtGuiimportQ......
  • PyQT5之菜单栏和工具栏
    fromPyQt5importQtWidgetsfromPyQt5importQtCore,QtGuiimportsysimportcv2classButtonPanel(QtWidgets.QWidget):def__init__(self,*args,**kwargs):super().__init__(*args,**kwargs)select_btn=QtWidgets.QPushButton("图......
  • UML交互图-协作图
    概述协作图和序列图都表示出了对象间的交互作用,但是它们侧重点不同。序列图清楚地表示了交互作用中的时间顺序,但没有明确表示对象间的关系。协作图则清楚地表示了对象间的关系,但时间顺序必须从顺序号获得。序列图常常用于表示方案,而协作图用于过程的详细设计。一、协作图......
  • UML交互图-序列图
    概述序列图又称为时序图、活动序列图,它是一种详细表示对象之间及对象与参与者实例之间交互的图,它由一组协作的对象(或参与者实例)及它们之间可发送的消息组成,它强调消息之间的时间顺序。序列图主要用于按照交互发生的一系列顺序,显示对象之间的这些交互。序列图的主要用途......
  • YOLOv8-PyQT5可视化界面
    使用PyQT5实现YOLOv8图形化界面准备工作:1、首先在YOLOv8环境中安装pyqt5pipinstallpyqt5pipinstallpyqt5-tools然后再你的anaconda环境中找到designer.exe文件,双击运行,可以将其发送到桌面快捷方式方便后续使用下面是我的文件所在路径地址,根据自己环境的位置进行查找。......
  • 流程内嵌iframe建模页面并实现数据交互
     效果图: 1、准备工作:下载并设置layui  2、 创建对应建模-要拿到建模新建页面URL-要给对应权限 3、 流程页面创建对应按钮触发事件(你可以用其它方式)$("#oTable0").find("tbody").find("tr:eq(1)").find("td:eq(6)").prepend("<buttonid='s......