2021.10.12 - [Python/PyQt] - [Python] PyQt5 두 번째 창 열기(새창 열기)/python GUI(5)
이전 포스팅에서는 메인 윈도우에서 두 번째 창을 여는 코드를 작성했다
이번에는 두 번째창의 값을 메인 윈도우로 전달하는 코드를 추가한다
1. secondwindow.py의 Home함수를 수정한다
두 번째 창에 있는 Line Edit에 텍스트를 입력하고 Home버튼을 누르면 메인윈도우로 값을 전달
def Home(self):
self.second_text = self.lineEdit.text() #lineEdit에 있는 값을 가져와서 second_text에 저장
self.close()
second_text를 선언한 뒤 lineEdit값을 저장한다
2. Main Window button_Second함수 수정
def button_Second(self):
self.close()#hide main window
self.second = secondwindow()
self.second.exec() # will wait till you close second window
self.textEdit.setText(self.second.second_text) #Main window의 입력 값 text Edit에 두 번째창 변수 second_text값을 전달
self.show()
메인윈도우에서 값을 가져와서 출력하는 코드를 추가한다
3. MainWindow 전체 코드
import sys
from PyQt5.QtWidgets import *
from PyQt5 import uic
from PyQt5 import QtCore
from secondwindow import secondwindow
from img import imgwindow
form_main = uic.loadUiType("test.ui")[0] #ui 파일 불러오기
#test에 바로 실행시킬 파일명을 입력하면 됨
class MainWindow(QMainWindow,QWidget,form_main):
def __init__(self):
super().__init__()
self.initUI()
self.show()
self.second_text=""
def initUI(self):
self.setupUi(self)
self.pushButton.clicked.connect(self.buttonClicked) # 버튼 클릭시 연결되는 함수
self.pushButton_2.clicked.connect(self.buttonClicked_Output) #
self.SecondWindow.clicked.connect(self.button_Second)
def buttonClicked(self): # pushButton 클릭되었을때 text상자에 출력해주는 소스
# self.textEdit.setText("버튼누름") #한번만
self.textEdit.append("버튼누름") # 여러번
# self.textEdit.insertPlainText("버튼누름") #띄어쓰기X
def buttonClicked_Output(self):
self.text = self.textEdit.toPlainText()
self.output_text.setText(self.text)
def button_Second(self):
self.close()#hide main window
self.second = secondwindow()
self.second.exec()
self.textEdit.setText(self.second.second_text)
self.show()
if __name__ == "__main__":
app = QApplication(sys.argv)
win = MainWindow()
sys.exit(app.exec_())
4. SecondWindow 전체 코드
import sys
from PyQt5.QtWidgets import *
from PyQt5 import uic
from PyQt5 import QtCore
form_secondwindow = uic.loadUiType("secondwindow.ui")[0]
class secondwindow(QDialog,QWidget,form_secondwindow):
def __init__(self):
super(secondwindow,self).__init__()
self.initUI()
self.show()
self.second_text =""
self.setWindowFlag(QtCore.Qt.FramelessWindowHint)
def initUI(self):
self.setupUi(self)
self.home.clicked.connect(self.Home)
self.ok_button.clicked.connect(self.ok)
def Home(self):
self.second_text = self.lineEdit.text()
self.close()
5. 실행화면
반응형
'Python > PyQt' 카테고리의 다른 글
[Python] PyQt5 두 번째 창 열기(새창 열기)/python GUI(5) (4) | 2021.10.12 |
---|---|
[Python] PyQt5 텍스트 상자 값 가져오기/ python GUI(4) (0) | 2021.10.04 |
[Python] PyQt5 버튼 클릭 시 텍스트 출력/ python GUI(3) (0) | 2021.10.01 |
[Python] PyQt5 버튼 클릭 시 이벤트 발생/Python GUI(2) (0) | 2021.09.23 |
[Python] pycharm에 PyQt5 Designer 설치하기/Python GUI(1) (0) | 2021.09.12 |
댓글