Python 에서 PyQt 5 메 인 창 을 누 르 면 다른 창 을 팝 업 하 는 방법

3962 단어 pythonPyQt5창구.
1.먼저 Qt designer 를 사용 하여 두 개의 창 을 디자인 합 니 다.하 나 는 메 인 창 이 고 하 나 는 하위 창 입 니 다.
 

 
이 중 주 창 은 새-Main Window 이 고,하위 창 은 Dialog 창 입 니 다.
  두 창 은 같은 형식 일 수 없습니다.그렇지 않 으 면 무 너 집 니 다.EyeTracking_main.uiEyeTracking_process.ui 으로 저 장 됩 니 다.
2.구동 함 수 를 써 서 두 개의 창 을 호출 합 니 다.
주 창 Eyetrkingmain.py

from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_MainWindow(object):
  def setupUi(self, MainWindow):
    MainWindow.setObjectName("MainWindow")
    MainWindow.resize(954, 530)
    self.centralwidget = QtWidgets.QWidget(MainWindow)
    self.centralwidget.setObjectName("centralwidget")
    self.toolButton = QtWidgets.QToolButton(self.centralwidget)
    self.toolButton.setGeometry(QtCore.QRect(10, 40, 101, 25))   self.toolButton.setObjectName("toolButton")
    ...1234567891011
하위 창 Eyetrkingprocess.py

from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_Dialog(object):
  def setupUi(self, Dialog):
    Dialog.setObjectName("Dialog")
    Dialog.resize(810, 474)
    self.label_5 = QtWidgets.QLabel(Dialog)
    self.label_5.setGeometry(QtCore.QRect(630, 90, 151, 151))
    self.label_5.setObjectName("label_5")
    self.label_2 = QtWidgets.QLabel(Dialog)
    self.label_2.setGeometry(QtCore.QRect(250, 90, 171, 161))
    self.label_2.setObjectName
("label_2")
        ...12345678910111213
구동 함수 이름 을 EyeTrackingui.py

from Eyetracking_main import *
from Eyetracking_process import *
from PyQt5.QtWidgets import QApplication,QMainWindow,QDialog
import sys
class parentWindow(QMainWindow):
  def __init__(self):
    QMainWindow.__init__(self)
    self.main_ui = Ui_MainWindow()
    self.main_ui.setupUi(self)
class childWindow(QDialog):
  def __init__(self):
    QDialog.__init__(self)
    self.child=Ui_Dialog()
    self.child.setupUi(self)

if __name__=='__main__':
  app=QApplication(sys.argv)
  window=parentWindow()
  child=childWindow()
  #  toolButton       
  btn=window.main_ui.toolButton
  btn.clicked.connect(child.show)
  #   
  window.show()
  sys.exit(app.exec_())
다음 에 각 창 에서 작업 해 야 하기 때문에 주 창 과 하위 창 을 각각 parentWindowchildWindow 두 가지 유형 으로 예화 합 니 다.이 두 가지 유형 은 각각 QMainWindow 와 QDialog 의 부모 클래스 를 계승 합 니 다.

class parentWindow(QMainWindow):
  def __init__(self):
    QMainWindow.__init__(self)#QMainWindow    
    self.main_ui = Ui_MainWindow()#       
    self.main_ui.setupUi(self)
class childWindow(QDialog):
  def __init__(self):
    QDialog.__init__(self)
    self.child=Ui_Dialog()#       
    self.child.setupUi(self)
뒤에 각각 두 개의 창 을 window 와 child 에 예화 합 니 다.

window=parentWindow()
child=childWindow()
정의 단 추 를 통 해 두 창 을 연결 합 니 다:

btn=window.main_ui.toolButton
btn.clicked.connect(child.show)
단 추 를 누 르 면 하위 창 이 표 시 됩 니 다.
다음 그림 에서'눈동자 데이터 처리'를 클릭 하면 팝 업 처리 창 이 나타 납 니 다.

총결산
위 에서 말 한 것 은 소 편 이 여러분 에 게 소개 한 Python 에서 PyQt 5 가 메 인 창 을 클릭 하여 다른 창 을 팝 업 하 는 실현 방법 입 니 다.여러분 에 게 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 메 시 지 를 남 겨 주세요.소 편 은 제때에 답 해 드 리 겠 습 니 다.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!
만약 당신 이 본문 이 당신 에 게 도움 이 된다 고 생각한다 면,전 재 를 환영 합 니 다.번 거 로 우 시 겠 지만 출처 를 밝 혀 주 십시오.감사합니다!

좋은 웹페이지 즐겨찾기