2017-09-27 5 views
0

문제점 : 저는 텍스트에 글꼴 스타일을 추가하는 방법을 찾기 위해 노력하고글꼴 메뉴 PyQt5 텍스트 편집기

나의 PyQt5 텍스트 편집기 프로그램의 사용자에 의해 작성된. 나는 수동으로 일종의 메뉴로 각 글꼴을 코딩하고 싶지 않아요. 사용자가 자신의 글꼴 스타일 (메모장 글꼴 선택 도구)을 선택할 수있는 기본 제공 방법이 있는지 궁금합니다.

Notepad fonts

내 코드는 현재 다음과 같습니다

class App(QMainWindow): 
    def __init__(self): 
     super().__init__() 
     self.title = 'Text Editor' 
     self.left = 10 
     self.top = 10 
     self.width = 1080 
     self.height = 920 

     self.widget = QWidget(self) 
     self.lbl = QLabel(self) 

     self.text = QTextEdit(self.widget) 
     self.widget.setLayout(QVBoxLayout()) 
     self.widget.layout().addWidget(self.text) 
     self.setCentralWidget(self.widget) 
     self.initUI() 



    def initUI(self): 
     self.setWindowTitle(self.title) 
     self.setGeometry(self.left, self.top, self.width, self.height) 

     toolBar = self.menuBar() 
     fileMenu = toolBar.addMenu('File') 
     editMenu = toolBar.addMenu('Edit') 
     toolsMenu = toolBar.addMenu('Tools') 
     helpMenu = toolBar.addMenu('Help') 

     fontButton = QAction('Configure Editor', self) 
     fontButton.setShortcut('Ctrl+E') 
     fontButton.triggered.connect(lambda: self.font_set) 
     toolsMenu.addAction(fontButton) 

     self.show() 

    def font_set(self): 
     print("Display Fonts") 


if __name__ == '__main__': 
app = QApplication(sys.argv) 
ex = App() 
sys.exit(app.exec_()) 

답변

2

Qt는 QFontDialog라는 위젯을 가지고 있으며, 즉,이 경우에 완벽 다음 부분에서 나는 그것의 사용의 예를 보여

def font_set(self): 
    font, ok = QFontDialog.getFont(self.text.font(), self) 
    if ok: 
     #QApplication.setFont(font) 
     self.text.setFont(font) 
     print("Display Fonts", font) 
을,210

참고 : 다음과 같은 성명 변경해야합니다

fontButton.triggered.connect(lambda: self.font_set) 

에 :

fontButton.triggered.connect(self.font_set) 

스크린 샷 :

enter image description here