2016-09-07 5 views
1

나는 간단한 PyQt는 대화 창에서 글꼴 크기를 변경하는 방법을 알아 낸 간단한 메시지 상자PyQt에서 QInputDialog의 글꼴 크기를 변경하는 방법은 무엇입니까?

의 경우. 이 예의 경우 :

# Create a custom font 
    # --------------------- 
    font = QFont() 
    font.setFamily("Arial") 
    font.setPointSize(10) 

    # Show simple message box 
    # ------------------------ 
    msg = QMessageBox() 
    msg.setIcon(QMessageBox.Question) 
    msg.setText("Are you sure you want to delete this file?") 
    msg.setWindowTitle("Sure?") 
    msg.setStandardButtons(QMessageBox.Ok | QMessageBox.Cancel) 
    msg.setFont(font) 
    retval = msg.exec_() 
    if retval == QMessageBox.Ok: 
     print('OK') 
    elif retval == QMessageBox.Cancel: 
     print('CANCEL') 

글꼴 크기를 변경하는 열쇠는 실제로 메시지 상자에 '처리'되어 있다는 것입니다. 변수 msgmsg.exec_()으로 표시하기 전에 필요에 맞게 메시지 상자를 조정할 수 있습니다.

입력 대화에 대한 문제를 간단한 대화 입력의 경우는 손잡이가없는 점이다. 이 예의 경우 :

# Show simple input dialog 
    # ------------------------- 
    filename, ok = QInputDialog.getText(None, 'Input Dialog', 'Enter the file name:') 
    if(ok): 
     print('Name of file = ' + filename) 
    else: 
     print('Cancelled') 

입력 대화 상자 개체는 즉석에서 만들어집니다. 나는 그것을 (예 : 다른 글꼴을 적용하는) 나의 필요에 맞게 조정할 방법이 없다.

표시하기 전에이 QInputDialog 개체에 대한 핸들을 가져 오는 방법이 있습니까?

편집

:

filename, ok = QInputDialog.getText(None, 'Input Dialog', '<html style="font-size:12pt;">Enter the file name:</html>') 

결과는 다음과 같다 :

enter image description here

당신으로 내가 코멘트에 adviced했다

는 HTML 코드로 시도하는 텍스트 입력 필드는 여전히 작은 (변경되지 않은) 글꼴 크기를 가지고 있음을 알 수 있습니다.

+1

당신은 텍스트로 HTML을 사용하고,'스타일 = 설정할 수도 있습니다 "글꼴 크기 : 10px를;"' – denvaar

+0

좋은 생각 그! 나는 그것을 시도 할 것이다. 그럼에도 불구하고, (글꼴 크기와 관련이없는) 다른 개조가'QInputDialog' 객체에 대한 핸들을 필요로 할 수 있기 때문에 질문을 계속 열어 둘 것입니다. –

+0

안녕하세요 @denvaar. 귀하의 접근 방식이 작동하지만 표시되는 정보 텍스트에만 적용됩니다. 입력 텍스트 필드에는 여전히 기본 글꼴이 있습니다. –

답변

2

@denvaar 및 @ekhumoro의 의견 덕분에 해결책을 얻었습니다. 여기있다 :

# Create a custom font 
    # --------------------- 
    font = QFont() 
    font.setFamily("Arial") 
    font.setPointSize(10) 

    # Create and show the input dialog 
    # --------------------------------- 
    inputDialog = QInputDialog(None) 
    inputDialog.setInputMode(QInputDialog.TextInput) 
    inputDialog.setWindowTitle('Input') 
    inputDialog.setLabelText('Enter the name for this new file:') 
    inputDialog.setFont(font) 
    ok = inputDialog.exec_() 
    filename = inputDialog.textValue() 
    if(ok): 
     print('Name of file = ' + filename) 
    else: 
     print('Cancelled') 
관련 문제