在主窗口有几个按钮,通过按按钮,可以弹出来子窗口,完成效果如下图。
Ui_jiemian3.py
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file '/home/li/桌面/python/qt/jiemiansan/jiemian3.ui'
#
# Created by: PyQt5 UI code generator 5.12
#
# WARNING! All changes made in this file will be lost!
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(800, 600)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.changgui = QtWidgets.QPushButton(self.centralwidget)
self.changgui.setGeometry(QtCore.QRect(560, 90, 141, 25))
self.changgui.setObjectName("changgui")
self.zhineng = QtWidgets.QPushButton(self.centralwidget)
self.zhineng.setGeometry(QtCore.QRect(560, 200, 141, 25))
self.zhineng.setObjectName("zhineng")
self.jiekou = QtWidgets.QPushButton(self.centralwidget)
self.jiekou.setGeometry(QtCore.QRect(560, 300, 141, 25))
self.jiekou.setObjectName("jiekou")
self.yingyongzhanwang = QtWidgets.QPushButton(self.centralwidget)
self.yingyongzhanwang.setGeometry(QtCore.QRect(560, 400, 141, 25))
self.yingyongzhanwang.setObjectName("yingyongzhanwang")
self.label = QtWidgets.QLabel(self.centralwidget)
self.label.setGeometry(QtCore.QRect(90, 210, 381, 91))
font = QtGui.QFont()
font.setPointSize(30)
self.label.setFont(font)
self.label.setObjectName("label")
self.tuichu = QtWidgets.QPushButton(self.centralwidget)
self.tuichu.setGeometry(QtCore.QRect(670, 490, 89, 25))
self.tuichu.setObjectName("tuichu")
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 28))
self.menubar.setObjectName("menubar")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
self.changgui.setText(_translate("MainWindow", "常规控制技术"))
self.zhineng.setText(_translate("MainWindow", "智能控制技术"))
self.jiekou.setText(_translate("MainWindow", "接口技术"))
self.yingyongzhanwang.setText(_translate("MainWindow", "应用展望"))
self.label.setText(_translate("MainWindow", "计算机接口控制技术"))
self.tuichu.setText(_translate("MainWindow", "退出"))
Ui_zijiemian.py
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file '/home/li/桌面/python/qt/jiemiansan/zijiemian.ui'
#
# Created by: PyQt5 UI code generator 5.12
#
# WARNING! All changes made in this file will be lost!
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_Dialog(object):
def setupUi(self, Dialog):
Dialog.setObjectName("Dialog")
Dialog.resize(617, 395)
self.label = QtWidgets.QLabel(Dialog)
self.label.setGeometry(QtCore.QRect(230, 10, 211, 41))
font = QtGui.QFont()
font.setPointSize(20)
self.label.setFont(font)
self.label.setObjectName("label")
self.retranslateUi(Dialog)
QtCore.QMetaObject.connectSlotsByName(Dialog)
def retranslateUi(self, Dialog):
_translate = QtCore.QCoreApplication.translate
Dialog.setWindowTitle(_translate("Dialog", "Dialog"))
self.label.setText(_translate("Dialog", "常规控制技术"))
创建调用文件.py
# -*- coding: utf-8 -*-
import sys
import cv2
from PyQt5.QtWidgets import QMainWindow
from PyQt5 import QtCore, QtGui, QtWidgets
from Ui_jiemian3 import Ui_MainWindow
from Ui_zijiemian import Ui_Dialog
import os
class Ui_Dialog(QtWidgets.QDialog, Ui_Dialog):
def __init__(self):
super(Ui_Dialog, self).__init__()
self.setupUi(self)
class MainWindow(QMainWindow, Ui_MainWindow):
def __init__(self, parent=None):
super(MainWindow, self).__init__()
self.setupUi(self)
# 设置【打开子窗口】按钮
self.changgui.clicked.connect(self.showDialog)
def showDialog(self):
# 创建子窗口实例
dialog = Ui_Dialog()
# 显示子窗口
dialog.show()
# 实现子窗口中的【确定】按钮功能
# 关联【确定】按钮
dialog.exec_()
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
mainWindow = MainWindow()
mainWindow.show()
sys.exit(app.exec_())
首先调入俩个文件的类,然后再创建一个主窗口实例和子窗口实例,
在主窗口的类中定义打开子窗口的函数showDialog
。
本文地址:https://blog.csdn.net/weixin_45839124/article/details/107225100
如对本文有疑问, 点击进行留言回复!!
老猿学5G:融合计费场景的离线计费会话的Nchf_OfflineOnlyCharging_Release释放操作
老猿学5G扫盲贴:中国移动5G融合计费漫游计费架构和路由方案
老猿学5G扫盲贴:与用户和终端相关的名词UE、SUPI、GPSI、PEI
三星以核心技术优势持续更新折叠手机,华为缺乏自主技术无力应对
基于OpenCV+Python的均值滤波,高斯滤波,中值滤波,双边滤波
网友评论