[Python_trading] 파이썬_GUI

#gui_1.py

import sys
from PyQt5.QtWidgets import *

app = QApplication(sys.argv)
label = QLabel('Hello, PyQt')
label.show()

print('Before event loop')
app.exec_()
print('After event loop')


#gui_2.py

import sys
from PyQt5.QtWidgets import *

def clicked_slot():
    print('clicked')

app = QApplication(sys.argv)

btn = QPushButton('hello')
btn.clicked.connect(clicked_slot)
btn.show()
app.exec_()



#gui_3.py

import sys
from PyQt5.QtWidgets import *

class MyWindow(QMainWindow):
    def __init__(self):
        super().__init__()
        self.setupUI()
    def setupUI(self): #자기 자신의 UI를 변경하는 메서드
        self.setWindowTitle('Review')
        btn1 = QPushButton('Click me',self)
        btn1.move(20,20)
        btn1.clicked.connect(self.btn1_clicked)

    def btn1_clicked(self):
        QMessageBox.about(self,'message','clicked btn1')


if __name__=='__main__':
    app = QApplication(sys.argv)
    mywindow=MyWindow()
    mywindow.show()
    app.exec_()



#gui_4.py

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

class MyWindow(QMainWindow):
    def __init__(self):
        super().__init__()
        self.setupUI()

    def setupUI(self):
        btn1 = QPushButton('Close',self)
        btn1.move(20,20)
        btn1.clicked.connect(QCoreApplication.instance().quit) #QCoreApplication.instance() 를 이용하면 app변수가 바인딩하고 있는 동일한 객체를 얻어오는 것이 가능
        #app이 바인딩 하고 있는 객체는 QApplicatioini 클래스의 인스턴스로 이는 quit이라는 메서드를 포함한다. quit 메서드가 호출되어 윈도우가 종료된다. 

if __name__ == '__main__':
    app = QApplication(sys.argv)
    mywindow = MyWindow()
    mywindow.show()
    app.exec_()


파이썬을 이용하여 창 닫기 프로그램 생성
#gui_5.py

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

app = None

class MyWindow(QMainWindow):
    def __init__(self):
        super().__init__()
        self.setupUI()
    def setupUI(self):
        btn1=QPushButton('닫기',self)
        btn1.move(0,0) #btn1 의 위치
        btn1.clicked.connect(app.quit) #clicked 이벤트가 발생할 때 app.quit 메서드가 호출된다. QCoreApplication.instance() 대신 사용됨.

if __name__ =='__main__':
    app = QApplication(sys.argv)
    mywindow = MyWindow()
    mywindow.show()
    app.exec_()


댓글