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
반응형

+ Recent posts