Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使QLineEdit QCompleter自动大写_Python_Python 3.4_Pyqt5_Qlineedit_Qcompleter - Fatal编程技术网

Python 如何使QLineEdit QCompleter自动大写

Python 如何使QLineEdit QCompleter自动大写,python,python-3.4,pyqt5,qlineedit,qcompleter,Python,Python 3.4,Pyqt5,Qlineedit,Qcompleter,我有一个文本列表,如果用户在QLineEdit中搜索文本,我将打印文本。在QLineEdit中有一个QCompleter 问题是,正如我们所知,Text和Text是不一样的,但对用户来说是一样的。因此,如果用户开始键入Text或Text,我想在QLineEdit中将其更改为Text实时。因此,每当用户键入字母时,我希望在QCompleter-QLineEdit中使用大写字母。我该怎么做?我有这个自动取款机 from PyQt5.QtWidgets import QApplication,QPus

我有一个文本列表,如果用户在
QLineEdit
中搜索文本,我将打印文本。在
QLineEdit
中有一个
QCompleter

问题是,正如我们所知,
Text
Text
是不一样的,但对用户来说是一样的。因此,如果用户开始键入
Text
Text
,我想在
QLineEdit
中将其更改为
Text
实时。因此,每当用户键入字母时,我希望在
QCompleter
-
QLineEdit
中使用大写字母。我该怎么做?我有这个自动取款机

from PyQt5.QtWidgets import QApplication,QPushButton,QMainWindow,QLabel,QLineEdit,QCompleter
from PyQt5 import QtCore, QtWidgets, QtGui
from PyQt5.QtCore import QPoint
import sys

class cssden(QMainWindow):
    def __init__(self):
        super().__init__()
        self.mwidget = QMainWindow(self)
        self.setWindowFlags(QtCore.Qt.FramelessWindowHint)

        #size
        self.setFixedSize(600,400)

        #LINE EDIT QCOMPLETER
        self.label = QLineEdit(self)
        self.label.setGeometry(100,100,300,30)
        self.label.setStyleSheet("color: red;"
                                "font: bold 15pt 'Arial';")

        self.t = ["Hello","hi","Hey"]
        self.label.setCompleter(QCompleter(self.t, self))

        #BUTTON
        self.buton = QPushButton(self)
        self.buton.setText("Click")
        self.buton.setGeometry(200,140,90,50)

        self.buton.clicked.connect(self.hangiButon)

        #SET LABEL
        self.set_label = QLabel(self)
        self.set_label.setGeometry(100,300,900,100)
        self.set_label.setStyleSheet("color: green;"
                                    "font: bold 18pt 'Times New Roman';")
        self.show()


    def hangiButon(self):
        print(self.label.text(), self.t.index(self.label.text())+1)
        self.set_label.setText("Pressed to --> {}.".format(self.label.text().rstrip()))

    def mousePressEvent(self, event):
        self.oldPos = event.globalPos()

    def mouseMoveEvent(self, event):
        delta = QPoint (event.globalPos() - self.oldPos)
        self.move(self.x() + delta.x(), self.y() + delta.y())
        self.oldPos = event.globalPos()

app = QApplication(sys.argv)
app.setStyleSheet("QMainWindow{background-color: rgb(30,30,30);border: 2px solid rgb(20,20,20)}")

ex = cssden()
sys.exit(app.exec_())

因此,如果我按下
h
,我想看到所有的单词,不仅是
hi
,而且我想立即更改
h
。但是无法找出原因。
QCompleter
小部件有一个
setCaseSensitivity
属性,该属性接受
QtCore.Qt.CaseSensitive
/
QtCore.Qt.caseSensitivious
或简单的1或0()

表示“默认值为Qt::区分大小写。”

将属性更改为不区分大小写的匹配:

self.t = ["Hello","hi","Hey"]
my_completer = QCompleter(self.t, self)
my_completer.setCaseSensitivity(QtCore.Qt.CaseInsensitive)
# my_completer.setCaseSensitivity(0)
self.label.setCompleter(my_completer)
要将用户输入更改为大写,可以添加更改文本的方法:

def to_upper(self, txt):
    self.label.setText(txt.upper())
然后可以连接到事件,例如
self.label.textChanged

self.label.textChanged.connect(self.to_upper)
综合起来:

from PyQt5.QtWidgets import QApplication,QPushButton,QMainWindow,QLabel,QLineEdit,QCompleter
from PyQt5 import QtCore, QtWidgets, QtGui
from PyQt5.QtCore import QPoint
import sys

class cssden(QMainWindow):
    def __init__(self):
        super().__init__()
        self.mwidget = QMainWindow(self)
        self.setWindowFlags(QtCore.Qt.FramelessWindowHint)

        #size
        self.setFixedSize(600,400)

        #LINE EDIT QCOMPLETER
        self.label = QLineEdit(self)
        self.label.setGeometry(100,100,300,30)
        self.label.setStyleSheet("color: red;"
                                "font: bold 15pt 'Arial';")

        self.label.textChanged.connect(self.to_upper)

        self.t = ["Hello","hi","Hey"]
        my_completer = QCompleter(self.t, self)
        #my_completer.setCaseSensitivity(QtCore.Qt.CaseInsensitive)
        my_completer.setCaseSensitivity(0)
        self.label.setCompleter(my_completer)

        #BUTTON
        self.buton = QPushButton(self)
        self.buton.setText("Click")
        self.buton.setGeometry(200,140,90,50)

        self.buton.clicked.connect(self.hangiButon)

        #SET LABEL
        self.set_label = QLabel(self)
        self.set_label.setGeometry(100,300,900,100)
        self.set_label.setStyleSheet("color: green;"
                                    "font: bold 18pt 'Times New Roman';")
        self.show()

    def to_upper(self, txt):
        self.label.setText(txt.upper())

    def hangiButon(self):
        print(self.label.text(), self.t.index(self.label.text())+1)
        self.set_label.setText("Pressed to --> {}.".format(self.label.text().rstrip()))

    def mousePressEvent(self, event):
        self.oldPos = event.globalPos()

    def mouseMoveEvent(self, event):
        delta = QPoint (event.globalPos() - self.oldPos)
        self.move(self.x() + delta.x(), self.y() + delta.y())
        self.oldPos = event.globalPos()

app = QApplication(sys.argv)
app.setStyleSheet("QMainWindow{background-color: rgb(30,30,30);border: 2px solid rgb(20,20,20)}")

ex = cssden()
sys.exit(app.exec_())

QCompleter
小部件有一个
setCaseSensitivity
属性,该属性接受
QtCore.Qt.CaseSensitive
/
QtCore.Qt.caseSensitivious
或简单的1或0()

表示“默认值为Qt::区分大小写。”

将属性更改为不区分大小写的匹配:

self.t = ["Hello","hi","Hey"]
my_completer = QCompleter(self.t, self)
my_completer.setCaseSensitivity(QtCore.Qt.CaseInsensitive)
# my_completer.setCaseSensitivity(0)
self.label.setCompleter(my_completer)
要将用户输入更改为大写,可以添加更改文本的方法:

def to_upper(self, txt):
    self.label.setText(txt.upper())
然后可以连接到事件,例如
self.label.textChanged

self.label.textChanged.connect(self.to_upper)
综合起来:

from PyQt5.QtWidgets import QApplication,QPushButton,QMainWindow,QLabel,QLineEdit,QCompleter
from PyQt5 import QtCore, QtWidgets, QtGui
from PyQt5.QtCore import QPoint
import sys

class cssden(QMainWindow):
    def __init__(self):
        super().__init__()
        self.mwidget = QMainWindow(self)
        self.setWindowFlags(QtCore.Qt.FramelessWindowHint)

        #size
        self.setFixedSize(600,400)

        #LINE EDIT QCOMPLETER
        self.label = QLineEdit(self)
        self.label.setGeometry(100,100,300,30)
        self.label.setStyleSheet("color: red;"
                                "font: bold 15pt 'Arial';")

        self.label.textChanged.connect(self.to_upper)

        self.t = ["Hello","hi","Hey"]
        my_completer = QCompleter(self.t, self)
        #my_completer.setCaseSensitivity(QtCore.Qt.CaseInsensitive)
        my_completer.setCaseSensitivity(0)
        self.label.setCompleter(my_completer)

        #BUTTON
        self.buton = QPushButton(self)
        self.buton.setText("Click")
        self.buton.setGeometry(200,140,90,50)

        self.buton.clicked.connect(self.hangiButon)

        #SET LABEL
        self.set_label = QLabel(self)
        self.set_label.setGeometry(100,300,900,100)
        self.set_label.setStyleSheet("color: green;"
                                    "font: bold 18pt 'Times New Roman';")
        self.show()

    def to_upper(self, txt):
        self.label.setText(txt.upper())

    def hangiButon(self):
        print(self.label.text(), self.t.index(self.label.text())+1)
        self.set_label.setText("Pressed to --> {}.".format(self.label.text().rstrip()))

    def mousePressEvent(self, event):
        self.oldPos = event.globalPos()

    def mouseMoveEvent(self, event):
        delta = QPoint (event.globalPos() - self.oldPos)
        self.move(self.x() + delta.x(), self.y() + delta.y())
        self.oldPos = event.globalPos()

app = QApplication(sys.argv)
app.setStyleSheet("QMainWindow{background-color: rgb(30,30,30);border: 2px solid rgb(20,20,20)}")

ex = cssden()
sys.exit(app.exec_())