久久久久久久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>
                          • 主站蜘蛛池模板: 国产在线观看精品 | 91性高潮久久久久久久久 | 色综合色综合 | 日本亚洲精品 | 91综合在线 | 少妇av在线 | 欧美国产日韩一区 | 国产成人小视频 | 欧美激情在线观看 | 少妇一级淫片aaaaaa | 中文字幕在线播放视频 | 五月婷婷在线播放 | 欧美又粗又长 | 色综合天天综合网国产成人网 | 日韩小视频在线观看 | 99热99| 日韩精品免费 | 黄色片视频网站 | 欧美在线一区二区 | 一区二区三区不卡视频 | 一级片免费观看 | 成人网战 | 艳妇臀荡乳欲伦交换h漫 | 风间由美一区二区三区 | 日韩欧美国产一区二区三区 | 手机看片日韩 | 久久伊人国产 | 国产欧美视频在线观看 | 国产精品久久久999 成人在线国产 | 一区二区三区av | 国产农村妇女aaaaa视频 | 三级视频在线观看 | 福利视频一区二区 | 日韩精品三级 | 日日干夜夜草 | 国产网站免费 | 国产农村女人一级毛片 | 欧美顶级黄色大片免费 | 国产91av在线| 日韩国产精品一区二区 | 欧美国产日韩在线 |