PyQt5: как можно изменить QInputDialog OkButtonText?

#python #pyqt #pyqt5

#python #pyqt #pyqt5

Вопрос:

Во-первых, я корейский студент. Итак, я не силен в английском, пожалуйста, извините меня.

Я использую PyQt5. Но я не знаю о «Как использовать setOkButtonText() «

Как использовать setOkButtonText() или setCancelButtonText() ?

и куда я вставляю эти коды?

Ниже приведена часть моего кода:

 import sys

import PyQt5
from PyQt5.QtGui import *
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
from PyQt5 import uic

class MainDialog(QDialog):
    def __init__(self):
        QDialog.__init__(self, None)
        uic.loadUi(WdmUI, self)
        self.depositButton.clicked.connect(self.depositClicked)
        self.withdrawButton.clicked.connect(self.withdrawClicked)
    def withdrawClicked(self):
        while True:
            money1, ok1 = QInputDialog.getInt
                (self, "Withdraw", "<font face="Malgun Gothic">Input withdraw amount:</font>", 1000, 0, 10000001)
            QInputDialog.setOkButtonText(self, "OKOK")
  

И это ошибка, которую он выдает:

Ошибка типа: setOkButtonText(self, str): первый аргумент несвязанного метода должен иметь тип ‘QInputDialog’

Ответ №1:

Попробуйте:

 import sys
from PyQt5.QtWidgets import (QWidget, QPushButton, QLineEdit, QHBoxLayout,
                             QInputDialog, QApplication, QDialog)


class Example(QWidget):        
    def __init__(self):
        super().__init__()
        self.setWindowTitle('Input dialog')
        
        btn = QPushButton('Dialog')
        btn.clicked.connect(self.showDialog)

        self.le = QLineEdit(self)
        
        layout = QHBoxLayout(self)
        layout.addWidget(btn)
        layout.addWidget(self.le)

    def showDialog(self):
        dialog = QInputDialog(self)
        dialog.setWindowTitle("QInputDialog")
        dialog.setLabelText("Enter Value")
        dialog.setOkButtonText("OKOK")                         #    
        dialog.setCancelButtonText("NOT OK")                   #    
        if dialog.exec_() == QDialog.Accepted:
            text = dialog.textValue()
            self.le.setText(text)
        else:
            print("canceled")


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

введите описание изображения здесь

Комментарии:

1. Спасибо. Могу ли я изменить тип QInputDialog на getInt? Я пытался dialog.getInt() . Но это создать новое окно и не применимо setOkButtonText или setCancelButtonText .