我有一个python脚本,它将订单号作为输入,输出将是物料成本,税金和总计。也是物品寄出的地址。 在此程序中,我具有以下代码来接受输入
Oname = '1' #something that doesn't validate
while True:
Oname = input("Please enter the Order number: ").upper() #ask for order number
if not re.match(r"\b[A-Z]{2}[-][0-9]{6}\b", Oname): #check if the Order number is in the right format
print ("Error! Please enter Order in format 'RS-XXXXXX'") #if the Order number is not in the right format, keep asking
else:
break
这很好用。但是,我想使用弹出式输入框(带有pyQT4)而不是命令行来实现这一点(我与他人共享此信息,并且他们更喜欢使用弹出框而不是命令行)。 另外,我需要在弹出窗口上单击一个取消按钮,如果用户单击它(用户可能已经改变主意并且不想运行该程序),则python脚本应该停止。
以上两项绝对必要。 愿望清单上的另一个项目是,输入字段旁边应有一个复选框,称为“这是礼物”。如果用户选中此框,则仅应打印“此项目已被运送到xxxxx地址”的消息。计算价格的代码部分无需运行。
答案 0 :(得分:0)
对不起,我有PyQt5。 试试吧:
import sys
#from PyQt4.QtCore import *
#from PyQt4.QtGui import *
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtGui import *
class Demo(QMainWindow):
def __init__(self, parent=None):
super().__init__(parent)
centralWidget = QWidget()
self.setCentralWidget(centralWidget)
self.label = QLabel("Please enter Order in format `RS-XXXXXX`:", alignment=Qt.AlignCenter)
self.chBox = QCheckBox("<-is this a gift item")
self.lineEdit= QLineEdit()
# a cancel button
self.lineEdit.setClearButtonEnabled(True)
self.lineEdit.setToolTip("press RETURN to check")
self.lineEdit.setStyleSheet(""" QLineEdit {border: None;
font-size: 14px;} """)
# lineEdit with validation
self.lineEdit.setInputMask('AA-999999')
self.lineEdit.returnPressed.connect(lambda : self.findText(self.lineEdit.text()))
self.textBrowser = QTextBrowser()
self.button = QPushButton("click me to check")
self.button.clicked.connect(lambda : self.findText(self.lineEdit.text()))
self.grid = QGridLayout(centralWidget)
self.grid.addWidget(self.label, 0, 0, 1, 2)
self.grid.addWidget(self.chBox, 1, 0)
self.grid.addWidget(self.lineEdit, 1, 1)
self.grid.addWidget(self.textBrowser, 2, 0, 1, 2)
self.grid.addWidget(self.button, 3, 0, 1, 2)
def findText(self, text=None):
if self.lineEdit.hasAcceptableInput():
self.textBrowser.append(text)
if self.chBox.isChecked():
self.textBrowser.insertPlainText("; chBox -> True. Is this a gift item.")
if __name__ == '__main__':
app = QApplication(sys.argv)
mw = Demo()
mw.show()
sys.exit(app.exec_())