본문 바로가기

IT 인터넷/python

[QT Desinger] qdarkstyle 과 framless 적용 후 드래그 기능넣기

qdarkstyle, PySide2 > QtCore 임포트하고 메인에서 다음 코드를 넣어주면 된다.

import PySide2 import QtCore

import qdarkstyle

 

if __name__ == "__main__":
    import sys
    app = QtWidgets.QApplication(sys.argv)
    myWindow = MyWindow()
   
    #dark 적용
    import os
    os.environ['QT_API']="pyqt5"
    dark_stylesheet = qdarkstyle.load_stylesheet_pyqt5()
    app.setStyleSheet(dark_stylesheet)
    myWindow.setWindowFlags(QtCore.Qt.FramelessWindowHint | QtCore.Qt.Window)
   
    myWindow.show()
    app.exec_()

 

드래그 기능은 다음 코드를 넣어준다. 메인에서는 생성자호출후, 다음 함수를 실행해주고,

        self.center()
        self.oldPos = self.pos()
        self.show()

 

함수기능은 다음과 같이 정의한다.
    def center(self):
        qr = self.frameGeometry()
        cp = QtWidgets.QDesktopWidget().availableGeometry().center()
        qr.moveCenter(cp)
        self.move(qr.topLeft())

    def mousePressEvent(self, event):
        self.oldPos = event.globalPos()

    def mouseMoveEvent(self, event):
        delta = QtCore.QPoint (event.globalPos() - self.oldPos)
        #print(delta)
        self.move(self.x() + delta.x(), self.y() + delta.y())
        self.oldPos = event.globalPos()

 

추가로 메인창의 화면을 사용자가 수정할 수 없도록 다음 코드를 추가해준다.

 

myWindow.statusBar().setSizeGripEnabled(False);

 

 

그다음 qt designer에서 프로그램 종료버튼과 숨김버튼을 넣어주고 컴파일 후

버튼 클릭시 종료하거나 숨겨지도록 코드를 작성한다.

소스코드에 하드코딩시에는 해당 버튼에 connect()함수를 이용해 다음과 같이 메인클래스 직접 붙이고 함수를 작성하면 된다.

self.connect(self.pushButton, QtCore.SIGNAL("clicked()"), self.exitSW)

 

버튼 클릭시 종료하는 코드는 다음과 같다.

QtCore.QCoreApplication.quit()

 

숨김버튼은 다음코드를 쓰면 동작한다.

self.showMinimized()

 

 

지금까지 작성한 기능을 넣어본 화면이다.

 

 

 

'IT 인터넷 > python' 카테고리의 다른 글

[QT Desinger] 파이썬 연동하는 방법(ui파일 연결)  (0) 2018.12.15