본문 바로가기
PyQt5

Qt5 예제

by 자동매매 2022. 3. 21.
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QToolTip, QMainWindow, QAction, qApp
from PyQt5.QtCore import QCoreApplication
from PyQt5.QtGui import QIcon, QFont
import time


class MyApp(QMainWindow):
    def __init__(self):
        super().__init__()
        if 선택 == '1':
            self.initUI_창띄우기()
        elif 선택 == '2':
            self.initUI_아이콘삽입()
        elif 선택 == '3':
            self.initUI_창닫기()
        elif 선택 == '4':
            self.initUI_툴팁()
        elif 선택 == '5':
            self.initUI_상태바()
        elif 선택 == '6':
            self.initUI_메뉴바()
            self.initUI_툴바()

    def initUI_창띄우기(self):
        self.setWindowTitle('My First Application')
        self.move(300, 300)
        self.resize(400, 200)
        self.show()

    def initUI_아이콘삽입(self):
        self.setWindowTitle('Icon')
        self.setWindowIcon(QIcon('web.png'))
        self.setGeometry(300, 300, 300, 200)
        self.show()

    def initUI_창닫기(self):
        btn = QPushButton('Quit', self)
        btn.move(50, 50)
        btn.resize(btn.sizeHint())
        btn.clicked.connect(QCoreApplication.instance().quit)

        self.setWindowTitle('Quit Button')
        self.setGeometry(300, 300, 300, 200)
        self.show()

    def initUI_툴팁(self):
        # 도움 : https://doc.qt.io/qt-5/qtooltip.html
        QToolTip.setFont(QFont('SansSerif', 10))  # 폰트를 설정
        self.setToolTip('This is a <b>QWidget</b> widget')  # 표시될 텍스트

        btn = QPushButton('Button', self)
        btn.setToolTip('This is a <b>QPushButton</b> widget')
        btn.move(50, 50)
        btn.resize(btn.sizeHint())

        self.setWindowTitle('Tooltips')
        self.setGeometry(300, 300, 300, 200)
        self.show()

    def initUI_상태바(self):
        # 메인창 : https://doc.qt.io/qt-5/qmainwindow.html
        # 상태바 : https://doc.qt.io/qt-5/qstatusbar.html
        # 메소드 : learMessage() , showMessage() , currentMessage()
        # 시그널 : messageChanged() 

        self.statusBar().showMessage('Ready')
        self.setWindowTitle('Statusbar')
        self.setGeometry(300, 300, 300, 200)
        self.show()

    def initUI_메뉴바(self):
        # https://doc.qt.io/qt-5/qmenubar.html

        exitAction = QAction(QIcon('exit.png'), 'Exit', self)
        exitAction.setShortcut('Ctrl+Q')
        exitAction.setStatusTip('Exit application')
        exitAction.triggered.connect(qApp.quit)

        self.statusBar()

        menubar = self.menuBar()  # 메뉴바 생성
        menubar.setNativeMenuBar(False)
        filemenu = menubar.addMenu('&File')  # 단축키 생성 - Alt + F  (&위치로 결정)
        filemenu.addAction(exitAction)

        self.setWindowTitle('Menubar')
        self.setGeometry(300, 300, 300, 200)
        self.show()

    def initUI_툴바(self):
        # https://doc.qt.io/qt-5/qtoolbar.html
        exitAction = QAction(QIcon('exit.png'), 'Exit', self)
        exitAction.setShortcut('Ctrl+Q')
        exitAction.setStatusTip('Exit application')
        exitAction.triggered.connect(qApp.quit)

        self.statusBar()

        self.toolbar = self.addToolBar('Exit')
        self.toolbar.addAction(exitAction)

        self.setWindowTitle('Toolbar')
        self.setGeometry(300, 300, 300, 200)
        self.show()


if __name__ == "__main__":
    app = QApplication(sys.argv)
    선택 = input('선택 : ')
    myApp = MyApp()
    myApp.show()
    app.exec_()

exit.png
0.00MB
web.png
0.01MB

'PyQt5' 카테고리의 다른 글

사용자 정의 Signal  (0) 2022.04.30
[PyQt5] Widgets  (0) 2022.02.23
[PyQt] PyQt Designer  (0) 2022.02.21

댓글