在 PyQt5 中,如何将普通的 QLineEdit(文本框)转换为完美的大写/大写 QLineEdit 框?

2022-01-12 00:00:00 python pyqt pyqt5

问题描述

如何在入门级将我的 QLineEdit 转换为大写或全部大写?

How to convert My QLineEdit into a Capitalize or all upper Case at Entry Level ?

(如果我在我的文本框(QLineEdit)中输入字符串,它会根据用户定义的方法自动将输入字符串转换或格式化.(大写或大写))

( If I enter string into my text box (QLineEdit), automatically its converts or format the input string to, as per user defined method. ( Capitalize or Upper Case ))

import sys
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *


class textbox_example(QWidget):
    def __init__(self):
        super().__init__()
        self.setWindowTitle(" QLine Edit Example")
        self.setGeometry(50, 50, 1500, 600)

        self.tbx_search = QLineEdit(self)
        self.tbx_search.setGeometry(50, 50, 300, 30)
        self.tbx_search.setPlaceholderText("Enter,Name of the Company")
        self.tbx_search.setFont(QFont("caliber", 10, QFont.Capitalize))

def main():
    myapp = QApplication(sys.argv)
    mywindow = textbox_example()
    mywindow.show()
    sys.exit(myapp.exec_())


if __name__ == "__main__":
    main()

如果我输入公司名称为google inc",则其转换如下Google Inc".

If I enter a name of the company as "google inc" then its converts as follows " Google Inc" .


解决方案

以下代码对我来说很好.我也是 PyQt5 和 Python 的新手.所以如果你能让这个更pythonic,请告诉我

The following code works to me fine. I am also new to PyQt5 and Python. so if you can make this more pythonic please let me know

import sys
from PyQt5.QtWidgets import *

class textbox_example(QWidget):
    def __init__(self):
        super().__init__()
        self.setWindowTitle(" QLine Edit Example")
        self.setGeometry(50, 50, 1500, 600)

        self.tbx_search = QLineEdit(self)
        self.tbx_search.setGeometry(50, 50, 300, 30)
        self.tbx_search.setPlaceholderText("Enter,Name of the Company")
        self.tbx_search.textChanged.connect(self.auto_capital)

    def auto_capital(self, txt):
        cap_text = txt.title()  
        upp_text = txt.upper()  # All Upper Case
        self.tbx_search.setText(cap_text)

def main():
    myapp = QApplication(sys.argv)
    mywindow = textbox_example()
    mywindow.show()
    sys.exit(myapp.exec_())

if __name__ == "__main__":
    main()

相关文章