2016-10-14 2 views
1

Qt 디자이너를 사용하여 프레임과 제목 표시 줄을 디자인하는 방법이 있습니까?PyQt5를 사용하여 커스텀 타이틀 바와 윈도우 프레임을 어떻게 구현하나요?

그렇다면 기존 코드를 어떻게 사용할 수 있습니까? 소스 PyQt5 프로젝트를 성공적으로 FramelessWindowHint을 사용하여 열이 연결되어,

import sys 

from PyQt5 import QtCore, uic 
from PyQt5.QtWidgets import QApplication, QDialog 


class Actions(QDialog): 
    def __init__(self, parent=None): 
     QDialog.__init__(self, parent) 

     self.ui = uic.loadUi("console_gui.ui") 
     self.ui.setWindowFlags(QtCore.Qt.FramelessWindowHint) 
     self.ui.show() 

if __name__ == "__main__": 
    app = QApplication(sys.argv) 
    window = Actions() 
    sys.exit(app.exec_()) 

그렇지 않은 경우 : 여기

는 기존의 코드?

PyQt5에는 이것에 대한 설명서가 전혀 없습니다. 그들은 C++ 버전에 링크 만합니다.

+0

PS : 나는 링크 된 질문에 PyQt5 버전을 추가했다. – ekhumoro

답변

0

QPushButtons 및 QHBoxLayout을 사용할 수 있습니다.

class Actions(QDialog): 
    def __init__(self, parent=None): 
     QDialog.__init__(self, parent) 

     self.setWindowFlags(QtCore.Qt.FramelessWindowHint) 


     self.resize(500, 600) 

     # 
     self.otherFrame = QFrame(self) 

     # There are two Buttons and using them custom title bar. 
     # We could give them string or pictures. 
     self.oneButton = QPushButton('one') 
     self.twoButton = QPushButton('two') 

     # We must be give them some functions. 
     self.oneButton.clicked.connect(self.oneClicked) 
     self.twoButton.clicked.connect(self.twoClicked) 

     # And some layouts. 
     # This is a layout of horizontal. 
     # 
     self.layouts = QHBoxLayout() 
     # This is a layout of vertical. 
     self.layouts2 = QVBoxLayout() 

     self.layouts.addWidget(self.oneButton) 
     self.layouts.addWidget(self.twoButton) 
     self.layouts.addStretch(1) 

     self.layouts2.addLayout(self.layouts) 
     self.layouts2.addWidget(self.otherFrame) 


     self.setLayout(self.layouts2) 

     self.show() 

    def oneClicked(self): 
     print(1) 

    def twoClicked(self): 
     print(2) 



    def mousePressEvent(self, event): 

     if event.buttons() == Qt.LeftButton: 
      self.m_drag = True 
      self.m_DragPosition = event.globalPos()-self.pos() 
      event.accept() 

    def mouseMoveEvent(self, event): 
     try: 
      if event.buttons() and Qt.LeftButton: 
       self.move(event.globalPos()-self.m_DragPosition) 
       event.accept() 
     except AttributeError: 
      pass 

    def mouseReleaseEvent(self, event): 
     self.m_drag = False 

이와같이.

enter image description here

+0

마우스 드래그 이벤트 등을 해결하는 것 같지 않지만 대단히 감사합니다. :) – daegontaven

+0

@Daegon Taven 내가 편집했습니다. – Cyrbuzz

관련 문제