【问题标题】:PyQt5: How can change QInputDialog OkButtonText?PyQt5:如何更改 QInputDialog OkButtonText?
【发布时间】:2020-10-07 09:55:36
【问题描述】:

首先,我是一名韩国学生。所以我英语不好,请见谅。

我正在使用 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")

这是它产生的错误:

TypeError: setOkButtonText(self, str): 未绑定方法的第一个参数必须具有类型“QInputDialog”

【问题讨论】:

    标签: python pyqt pyqt5


    【解决方案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_())
    

    【讨论】:

    • 谢谢。我可以将 QInputDialog 的类型更改为 getInt 吗?我试过dialog.getInt()。但它是创建新窗口,不适用于setOkButtonTextsetCancelButtonText
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-21
    • 2017-01-05
    • 2018-04-04
    • 2023-04-09
    • 2015-06-12
    • 1970-01-01
    相关资源
    最近更新 更多