久久久久久久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 中的用戶輸入驗證

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

          <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 中的用戶輸入驗證的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

                  問題描述

                  這是一個關于輸入驗證的兩部分問題,其中包含一個特定組件和另一個更通用的組件.

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

                  具體:

                  在研究該主題時,我發現 THIS on Regular表達式.我意識到這篇文章中的代碼使用的是 PyQt4.但是我想讓它與 PyQt5 一起工作,因為我已經用它開始了我的項目.(顯然是盲目的——我只能找到它的 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)

                  這是我嘗試過的:

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

                  當我運行代碼時,出現以下錯誤:

                  When I run the code I get the following Error:

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

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

                  這些不正是需要的參數嗎?有誰知道如何讓這個工作?

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

                  將軍:

                  在 Python 中使用 PyQt 實現實時驗證的有效方法是什么?

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

                  目前我會使用:

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

                  這確實有效,但是一旦我嘗試將兩個相互影響的 QtLineEdits 連接到同一個插槽,事情就會停止工作,因為它們同時調用了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.

                  用例:兩個輸入字段:Amount before TAXAmount after TAX - 輸入時自動填充另一個字段.

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

                  先驗證,再計算,再輸出到其他字段.

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

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

                  推薦答案

                  你可以為不同的QLineEdit對象設置不同的驗證器.

                  You can set different validators for different QLineEdit objects.

                  QRegExpValidator 有兩個構造函數:

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

                  所以,您應該將代碼更改為:

                  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 設置了驗證器,就不需要使用了

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

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

                  刪除即可.這應該可以正常工作.

                  Just delete it. And that should work fine.

                  如果您想查找有關 PyQt5 的文檔,您可以在控制臺中簡單地使用它:

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

                  pydoc3 PyQt5.QtGui.QRegExpValidator
                  

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

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

                  最后,舉個例子:

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

                  這篇關于PyQt5 和 Python 中的用戶輸入驗證的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

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

                  相關文檔推薦

                  How to bind a function to an Action from Qt menubar?(如何將函數綁定到 Qt 菜單欄中的操作?)
                  PyQt progress jumps to 100% after it starts(PyQt 啟動后進度躍升至 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 刻度標簽設置在固定位置,以便當我向左或向右滾動時,yaxis 刻度標簽應該可見
                  `QImage` constructor has unknown keyword `data`(`QImage` 構造函數有未知關鍵字 `data`)
                  Change x-axis ticks to custom strings(將 x 軸刻度更改為自定義字符串)
                  How to show progress bar while saving file to excel in python?(如何在python中將文件保存為excel時顯示進度條?)

                      <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>
                          • 主站蜘蛛池模板: 午夜视频导航 | 国产成人一区二区三区久久久 | 日日操天天射 | 国内精品视频在线观看 | 国产精品久久久久久久久 | 欧美xxxx在线| 影视先锋av资源噜噜 | 国产精品亚洲片在线播放 | 亚洲成人一区 | 福利在线看 | 亚洲黄色成人网 | 天天拍天天插 | 精品国产一区二区三区久久久蜜月 | 国产精品一区二区不卡 | 99精品国产一区二区青青牛奶 | 国内精品久久久久久影视8 最新黄色在线观看 | 国产69精品久久久久777 | 日本三级在线 | 亚洲久视频 | 亚洲高清av在线 | 在线免费黄色小视频 | 日韩福利 | 99精品99| 一区二区三区四区av | 日韩av免费在线观看 | 亚洲一区有码 | 欧美日韩亚洲系列 | 一区二区三区四区在线视频 | www.夜夜草| 日韩视频一区在线观看 | 亚洲美女视频 | 日韩欧美一区二区三区免费观看 | 久久久久久国产 | av激情在线 | 91色网站 | 国产99久久| 国产精品一区二 | 国产成人精品久久二区二区 | 国产三区视频在线观看 | 国产精品海角社区在线观看 | 久久精品国产一区二区电影 |