728x90
반응형
이번 툴바를 만들 때는 파이썬의 가변인자를 응용한 것이라 이해를 돕기 위해 파이썬의 가변인자 예제를 먼저 보여준 후 툴바를 만들것이다.
나는 파이참에서 실행하였다.
def my_sum(*integers):
result=0
for x in integers:
result+=x
return result
def concatenate(**kwargs):
result=""
print("딕셔너리",kwargs)
for arg in kwargs.values():
result += arg
return result
print(my_sum(1,2,3,4)) #가변인자
print(concatenate(a="Real", b="파이썬", c="은", d="훌륭하다", e="!"))
이제 툴바를 만들어 보자
import sys
from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import QApplication, QMainWindow, QAction, QLabel, QToolBar, QStatusBar
class MainWindow(QMainWindow):
def __init__(self, *args, **kwargs):
super(MainWindow, self).__init__(*args, **kwargs)
self.setWindowTitle("나의 놀라운 앱")
label = QLabel("This is 놀랍다")
label.setAlignment(Qt.AlignCenter)
self.setCentralWidget(label)
toolbar = QToolBar("나의 메인 툴바")
self.addToolBar(toolbar)
button_action = QAction("당신의 버튼",self)
button_action.setStatusTip("이것은 당신의 버튼이에요")
button_action.triggered.connect(self.onMyToolBarButtonClick)
toolbar.addAction(button_action)
self.setStatusBar(QStatusBar(self))
def onMyToolBarButtonClick(self,s):
print("눌렸다 : ",s)
if __name__ == "__main__":
qApp = QApplication(sys.argv)
main = MainWindow()
main.show()
sys.exit(qApp.exec_())
self는 mainWindow안에 멤버변수나 메서드를 뜻한다.
label 객체는 self가 없는데 넣어도 잘 된다!
self의 유무의 차이는 self가 없으면 지역변수가 되므로 다른 곳에서 쓸 수 없다. 자바의 this 느낌
멤버변수면 this와 비슷한 self를 줘야한다!
이 툴바를 실행하면
당신의 버튼에 커서를 위치시키면 statebar 가 뜬다.
버튼을 누르면 console창에 뜬다.
728x90
반응형
'FRONT-END > PyQT' 카테고리의 다른 글
[PyQT] 문자열을 이용하여 계산기 만들기 (0) | 2021.06.03 |
---|---|
[PyQT] 계산기 만들기 / Qt Designer를 기반으로 (0) | 2021.06.03 |
[PyQT] 버튼을 눌러 함수 호출하여 QMessageBox 띄우기 (0) | 2021.06.03 |
[PyQT] Pycharm(파이참)에서 pyqt5 사용하기 (0) | 2021.06.03 |
[PyQT] QPalette 클래스 를 이용한 예제 (0) | 2021.06.03 |