ProtossManse
ProtossManse

Reputation: 37

PyQt5: How can change QInputDialog OkButtonText?

First, I am a Korean Student. So I'm not good at English, Please excuse me.

I'm Using PyQt5. But I don't know About "How to use setOkButtonText()"

How to use setOkButtonText() or setCancelButtonText()?

and Where I inserting those codes?

Below is part of my code:

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")

And this is the error it produces:

TypeError: setOkButtonText(self, str): first argument of unbound method must have type 'QInputDialog'

Upvotes: 2

Views: 665

Answers (1)

S. Nick
S. Nick

Reputation: 13651

Try it:

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_())

enter image description here

Upvotes: 1

Related Questions