gpt4 book ai didi

postgresql - PyQt,如何检查数字数组是否具有特定长度

转载 作者:行者123 更新时间:2023-11-29 12:45:26 25 4
gpt4 key购买 nike

我正在将我的 PyQt 代码与我的 PostgreSQL 链接起来,在 PostgreSQL 中我将某​​些列设置为 NUMERIC(11,0) 类型,但现在我想将其限制为正好 11 位数字,因为 NUMERIC( 11,0) 表示最多 11 位。

class kirurg_GUI(QtGui.QWidget, Ui_kirurg_Widget):
def __init__(self):
QtGui.QWidget.__init__(self)
self.setupUi(self)
self.kirurg_Add_button.clicked.connect(self.insert_kirurg)

def insert_kirurg(self):
oib_kir = self.kirurg_oib_kir_lineEdit.text()
if not oib_kir:
QtGui.QMessageBox.critical(self, 'Query error', 'oib_kir must not be empty')

else:
query = QSqlQuery()
status = query.exec("INSERT INTO kirurg (oib_kir, prezime, ime, adresa, broj_telefona)"
"VALUES ('%s', '%s', '%s', '%s', '%s')" % (''.join(self.kirurg_oib_kir_lineEdit.text()),
''.join(self.kirurg_prezime_lineEdit.text()),
''.join(self.kirurg_ime_lineEdit.text()),
''.join(self.kirurg_adresa_lineEdit.text()),
''.join(self.kirurg_broj_telefona_lineEdit.text())))
if status is not True:
errorText = query.lastError().text()
QtGui.QMessageBox.critical(self, 'Query error', errorText)

else:
msgBox = QtGui.QMessageBox()
msgBox.setWindowTitle("Kirurg")
msgBox.setText("Data entered successfully")
msgBox.exec_()
kirurg.close()

这是我在我的数据库中添加值的部分代码。

这一行:

''.join(self.kirurg_oib_kir_lineEdit.text()

的长度应恰好为 11 位数字。我已经涵盖了最大大小和数字类型,但现在我想将其限制为确切的位数。

谢谢!

最佳答案

您可以使用 QLineEdit.setInputMask (self, QString inputMask)只设置号码。阅读here配置它们。

class kirurg_GUI (QtGui.QWidget, Ui_kirurg_Widget):
def __init__ (self):
QtGui.QWidget.__init__(self)
self.setupUi(self)
self.kirurg_Add_button.clicked.connect(self.insert_kirurg)
maxLength = 11 # <- Add length
self.kirurg_oib_kir_lineEdit.setInputMask(('9' * maxLength) + ';_') # <- Set input mask
self.kirurg_oib_kir_lineEdit.setMaxLength(maxLength) # <- Set max length

def insert_kirurg (self):
oib_kir = self.kirurg_oib_kir_lineEdit.text()
if not oib_kir:
QtGui.QMessageBox.critical(self, 'Query error', 'oib_kir must not be empty')
if len(str(oib_kir)) != self.kirurg_oib_kir_lineEdit.maxLength(): # Check digit length
QtGui.QMessageBox.critical(self, 'Query error', 'oib_kir must not be 11 diget') # Not 11 digit ? Error!
else:
query = QSqlQuery()
status = query.exec("INSERT INTO kirurg (oib_kir, prezime, ime, adresa, broj_telefona)"
"VALUES ('%s', '%s', '%s', '%s', '%s')" % (''.join(self.kirurg_oib_kir_lineEdit.text()),
''.join(self.kirurg_prezime_lineEdit.text()),
''.join(self.kirurg_ime_lineEdit.text()),
''.join(self.kirurg_adresa_lineEdit.text()),
''.join(self.kirurg_broj_telefona_lineEdit.text())))
if status is not True:
errorText = query.lastError().text()
QtGui.QMessageBox.critical(self, 'Query error', errorText)
else:
msgBox = QtGui.QMessageBox()
msgBox.setWindowTitle("Kirurg")
msgBox.setText("Data entered successfully")
msgBox.exec_()
kirurg.close()

关于postgresql - PyQt,如何检查数字数组是否具有特定长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25690412/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com