久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

<tfoot id='ZWkPQ'></tfoot>
<i id='ZWkPQ'><tr id='ZWkPQ'><dt id='ZWkPQ'><q id='ZWkPQ'><span id='ZWkPQ'><b id='ZWkPQ'><form id='ZWkPQ'><ins id='ZWkPQ'></ins><ul id='ZWkPQ'></ul><sub id='ZWkPQ'></sub></form><legend id='ZWkPQ'></legend><bdo id='ZWkPQ'><pre id='ZWkPQ'><center id='ZWkPQ'></center></pre></bdo></b><th id='ZWkPQ'></th></span></q></dt></tr></i><div class="qwawimqqmiuu" id='ZWkPQ'><tfoot id='ZWkPQ'></tfoot><dl id='ZWkPQ'><fieldset id='ZWkPQ'></fieldset></dl></div>

      <small id='ZWkPQ'></small><noframes id='ZWkPQ'>

        <bdo id='ZWkPQ'></bdo><ul id='ZWkPQ'></ul>
      <legend id='ZWkPQ'><style id='ZWkPQ'><dir id='ZWkPQ'><q id='ZWkPQ'></q></dir></style></legend>

        PyQt5 和 Python 中的用戶輸入驗(yàn)證

        User Input Validation in PyQt5 and Python(PyQt5 和 Python 中的用戶輸入驗(yàn)證)

          <tbody id='1vjQa'></tbody>
        <i id='1vjQa'><tr id='1vjQa'><dt id='1vjQa'><q id='1vjQa'><span id='1vjQa'><b id='1vjQa'><form id='1vjQa'><ins id='1vjQa'></ins><ul id='1vjQa'></ul><sub id='1vjQa'></sub></form><legend id='1vjQa'></legend><bdo id='1vjQa'><pre id='1vjQa'><center id='1vjQa'></center></pre></bdo></b><th id='1vjQa'></th></span></q></dt></tr></i><div class="qwawimqqmiuu" id='1vjQa'><tfoot id='1vjQa'></tfoot><dl id='1vjQa'><fieldset id='1vjQa'></fieldset></dl></div>

      1. <small id='1vjQa'></small><noframes id='1vjQa'>

        <tfoot id='1vjQa'></tfoot>

                <bdo id='1vjQa'></bdo><ul id='1vjQa'></ul>
                • <legend id='1vjQa'><style id='1vjQa'><dir id='1vjQa'><q id='1vjQa'></q></dir></style></legend>

                  本文介紹了PyQt5 和 Python 中的用戶輸入驗(yàn)證的處理方法,對(duì)大家解決問(wèn)題具有一定的參考價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧!

                  問(wèn)題描述

                  這是一個(gè)關(guān)于輸入驗(yàn)證的兩部分問(wèn)題,其中包含一個(gè)特定組件和另一個(gè)更通用的組件.

                  This is a two part question about input validation with one specific and another more general component.

                  具體:

                  在研究該主題時(shí),我發(fā)現(xiàn) THIS on Regular表達(dá)式.我意識(shí)到這篇文章中的代碼使用的是 PyQt4.但是我想讓它與 PyQt5 一起工作,因?yàn)槲乙呀?jīng)用它開始了我的項(xiàng)目.(顯然是盲目的——我只能找到它的 C++ 文檔)

                  While researching the topic, I found THIS on Regular Expressions. I realize that the code in this post is using PyQt4. However I wanted to get this working with PyQt5, since I had already started my project with it. (Obviously blindly - I can only find C++ documentation for it)

                  這是我嘗試過(guò)的:

                  # somewhere above:     
                  self.le_input = QtWidgets.QLineEdit()
                  
                  # at some point validate_input gets called:
                  # more on that in the second part of this question
                  
                  def validate_input(self):
                      reg_ex = QtCore.QRegExp(""[0-9]+.?[0-9]{,2}"")
                      input_validator = QtGui.QRegExpValidator(reg_ex, self.le_input.text())
                      self.le_input.setValidator(input_validator)
                  

                  當(dāng)我運(yùn)行代碼時(shí),出現(xiàn)以下錯(cuò)誤:

                  When I run the code I get the following Error:

                  QRegExpValidator(parent: QObject = None): 參數(shù) 1 具有意外類型 'QRegExp'QRegExpValidator(QRegExp, parent: QObject = None): 參數(shù) 2 具有意外類型 'str'

                  QRegExpValidator(parent: QObject = None): argument 1 has unexpected type 'QRegExp' QRegExpValidator(QRegExp, parent: QObject = None): argument 2 has unexpected type 'str'

                  這些不正是需要的參數(shù)嗎?有誰(shuí)知道如何讓這個(gè)工作?

                  Aren't these exactly the required arguments? Does anyone know how to get this working?

                  將軍:

                  在 Python 中使用 PyQt 實(shí)現(xiàn)實(shí)時(shí)驗(yàn)證的有效方法是什么?

                  What is an effective way to implement live validation with PyQt in Python?

                  目前我會(huì)使用:

                  self.le_input.textChanged.connect(self.validate_input)
                  

                  這確實(shí)有效,但是一旦我嘗試將兩個(gè)相互影響的 QtLineEdits 連接到同一個(gè)插槽,事情就會(huì)停止工作,因?yàn)樗鼈兺瑫r(shí)調(diào)用了textChanged".

                  This does work, but as soon as I try to connect two QtLineEdits, that affect each other, to the same slot, things stop working because "textChanged" gets called by both of them at the same time.

                  用例:兩個(gè)輸入字段:Amount before TAXAmount after TAX - 輸入時(shí)自動(dòng)填充另一個(gè)字段.

                  Use case: Two input fields: Amount before TAX and Amount after TAX - and whichever you enter automatically fills the other one while typing.

                  先驗(yàn)證,再計(jì)算,再輸出到其他字段.

                  First validation, then calculation, then output to the other field.

                  提前非常感謝!非常感謝任何幫助!

                  推薦答案

                  你可以為不同的QLineEdit對(duì)象設(shè)置不同的驗(yàn)證器.

                  You can set different validators for different QLineEdit objects.

                  QRegExpValidator 有兩個(gè)構(gòu)造函數(shù):

                  QRegExpValidator(parent: QObject = None)
                  QRegExpValidator(QRegExp, parent: QObject = None)
                  

                  所以,您應(yīng)該將代碼更改為:

                  so, you should change your code to:

                  reg_ex = QRegExp("[0-9]+.?[0-9]{,2}")
                  input_validator = QRegExpValidator(reg_ex, self.le_input)
                  self.le_input.setValidator(input_validator)
                  

                  一旦為 QLineEdit 設(shè)置了驗(yàn)證器,就不需要使用了

                  Once you set validator for QLineEdit, there is no need to use

                  self.le_input.textChanged.connect(self.validate_input)
                  

                  刪除即可.這應(yīng)該可以正常工作.

                  Just delete it. And that should work fine.

                  如果您想查找有關(guān) PyQt5 的文檔,您可以在控制臺(tái)中簡(jiǎn)單地使用它:

                  If you want to find documentation about PyQt5, you can simple use this in your console:

                  pydoc3 PyQt5.QtGui.QRegExpValidator
                  

                  但是 pydoc 只能顯示很少的信息,所以你也應(yīng)該使用 C++ 版本的文檔.

                  But pydoc can only show you little information, so you should use C++ version documation as well.

                  最后,舉個(gè)例子:

                  from PyQt5.Qt import QApplication
                  from PyQt5.QtCore import QRegExp
                  from PyQt5.QtGui import QRegExpValidator
                  from PyQt5.QtWidgets import QWidget, QLineEdit
                  
                  import sys
                  
                  class MyWidget(QWidget):
                      def __init__(self, parent=None):
                          super(QWidget, self).__init__(parent)
                          self.le_input = QLineEdit(self)
                  
                          reg_ex = QRegExp("[0-9]+.?[0-9]{,2}")
                          input_validator = QRegExpValidator(reg_ex, self.le_input)
                          self.le_input.setValidator(input_validator)
                  
                  if __name__ == '__main__':
                      a = QApplication(sys.argv)
                  
                      w = MyWidget()
                      w.show()
                  
                      a.exec()
                  

                  這篇關(guān)于PyQt5 和 Python 中的用戶輸入驗(yàn)證的文章就介紹到這了,希望我們推薦的答案對(duì)大家有所幫助,也希望大家多多支持html5模板網(wǎng)!

                  【網(wǎng)站聲明】本站部分內(nèi)容來(lái)源于互聯(lián)網(wǎng),旨在幫助大家更快的解決問(wèn)題,如果有圖片或者內(nèi)容侵犯了您的權(quán)益,請(qǐng)聯(lián)系我們刪除處理,感謝您的支持!

                  相關(guān)文檔推薦

                  How to bind a function to an Action from Qt menubar?(如何將函數(shù)綁定到 Qt 菜單欄中的操作?)
                  PyQt progress jumps to 100% after it starts(PyQt 啟動(dòng)后進(jìn)度躍升至 100%)
                  How to set yaxis tick label in a fixed position so that when i scroll left or right the yaxis tick label should be visible?(如何將 yaxis 刻度標(biāo)簽設(shè)置在固定位置,以便當(dāng)我向左或向右滾動(dòng)時(shí),yaxis 刻度標(biāo)簽應(yīng)該可見
                  `QImage` constructor has unknown keyword `data`(`QImage` 構(gòu)造函數(shù)有未知關(guān)鍵字 `data`)
                  Change x-axis ticks to custom strings(將 x 軸刻度更改為自定義字符串)
                  How to show progress bar while saving file to excel in python?(如何在python中將文件保存為excel時(shí)顯示進(jìn)度條?)

                      <tfoot id='PzdQU'></tfoot>

                      <small id='PzdQU'></small><noframes id='PzdQU'>

                      <i id='PzdQU'><tr id='PzdQU'><dt id='PzdQU'><q id='PzdQU'><span id='PzdQU'><b id='PzdQU'><form id='PzdQU'><ins id='PzdQU'></ins><ul id='PzdQU'></ul><sub id='PzdQU'></sub></form><legend id='PzdQU'></legend><bdo id='PzdQU'><pre id='PzdQU'><center id='PzdQU'></center></pre></bdo></b><th id='PzdQU'></th></span></q></dt></tr></i><div class="qwawimqqmiuu" id='PzdQU'><tfoot id='PzdQU'></tfoot><dl id='PzdQU'><fieldset id='PzdQU'></fieldset></dl></div>

                        <tbody id='PzdQU'></tbody>
                      • <bdo id='PzdQU'></bdo><ul id='PzdQU'></ul>

                        1. <legend id='PzdQU'><style id='PzdQU'><dir id='PzdQU'><q id='PzdQU'></q></dir></style></legend>
                          • 主站蜘蛛池模板: 久久ww| 91精品无人区卡一卡二卡三 | 亚洲一区二区三区四区五区午夜 | 欧美一区二区三区大片 | 久久看片 | 99免费在线 | 狠狠干天天干 | 亚洲成人久久久 | 国产精品精品久久久 | 欧美一级二级三级 | 欧美激情一区二区 | 最新国产精品 | 一区二区三区四区视频 | 亚洲精品视频二区 | 欧美专区在线 | 理伦毛片| 国产视频亚洲视频 | av中文字幕在线 | 人成在线视频 | 手机看片1 | 久久久久久91 | 99国产精品久久久久 | 亚洲视频在线观看 | 亚洲福利网 | 久久这里有精品 | 色婷婷国产精品 | 亚洲欧洲在线看 | 国产成人免费 | 在线91| 狠狠热视频 | 最新国产视频 | 夜夜骑av | 成人在线视频免费观看 | 成人一区二区三区 | 九九综合 | 国产成在线观看免费视频 | h小视频 | 99re在线视频 | 欧美mv日韩mv国产网站91进入 | 成人亚洲网站 | 国产美女一区二区 |