【发布时间】:2020-06-30 03:54:18
【问题描述】:
我正在创建一个 GUI,它将用户输入作为给定范围的文本。到目前为止,我所做的是获得一个 QInputDialog 来获取用户输入。但问题是每当我点击取消时,它都会进入下一个输入。我想重置字段并重新开始。我还想在用户完成后将这些输入添加到列表中。
这是我的代码:
class Example(QWidget):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(800, 600)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.le = QLabel()
self.le.move(30, 62)
self.le.resize(400,22)
self.le.setText("")
self.verticalLayoutWidget = QtWidgets.QWidget(self.centralwidget)
self.verticalLayoutWidget.setGeometry(QtCore.QRect(290, 160, 160, 80))
self.verticalLayoutWidget.setObjectName("verticalLayoutWidget")
self.verticalLayout_2 = QtWidgets.QVBoxLayout(self.verticalLayoutWidget)
self.verticalLayout_2.setContentsMargins(0, 0, 0, 0)
self.verticalLayout_2.setObjectName("verticalLayout_2")
self.pushButton = QtWidgets.QPushButton(self.verticalLayoutWidget)
self.pushButton.setMaximumSize(QtCore.QSize(16777215, 150))
font = QtGui.QFont()
font.setPointSize(14)
font.setBold(True)
font.setWeight(75)
self.pushButton.setFont(font)
self.pushButton.setStyleSheet("background-color: rgb(255, 255, 255);")
self.pushButton.setObjectName("pushButton")
self.pushButton.clicked.connect(self.showDialog)
MainWindow.setCentralWidget(self.centralwidget)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
self.pushButton.setText(_translate("MainWindow", "Start"))
def showDialog(self):
num, ok = QInputDialog.getInt(self, 'Setup', 'How many rooms in the house?:')
for i in range(num+1):
name, ok = QInputDialog.getText(self, 'Setup', 'room{}:'.format(i+1))
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = Example()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())
【问题讨论】:
标签: python python-3.x pyqt pyqt5