我写了一个程序,它的界面会打印一个随机数,但是当我运行它时,我得到一个我无法解决的错误。通过Qt Designer
制作界面。
import sys
from PyQt5 import QtCore, QtGui, QtWidgets
from randomgui import *
import random
class MyWin(QtWidgets.QMainWindow):
def __init__(self, parent=None):
QtWidgets.QWidget.__init__(self, parent)
self.ui = Ui_MainWindow()
self.ui.setupUi(self)
self.ui.b_randomed.clicked.connect(self.random_value())
def random_value(self):
v_min = self.ui.t_min.toPlainText() # Get min value
v_max = self.ui.t_max.toPlainText() # Get max value
randomintresult = random.randint(v_min, v_max) # random int
self.ui.label.setText(randomintresult) # Text output
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
myapp = MyWin()
myapp.show()
sys.exit(app.exec_())
随机gui.py
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(160, 130)
MainWindow.setMinimumSize(QtCore.QSize(160, 130))
MainWindow.setMaximumSize(QtCore.QSize(160, 130))
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.b_randomed = QtWidgets.QPushButton(self.centralwidget)
self.b_randomed.setGeometry(QtCore.QRect(0, 92, 161, 41))
self.b_randomed.setObjectName("b_randomed")
self.t_min = QtWidgets.QTextEdit(self.centralwidget)
self.t_min.setGeometry(QtCore.QRect(0, 64, 81, 31))
self.t_min.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
self.t_min.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
self.t_min.setObjectName("t_min")
self.t_max = QtWidgets.QTextEdit(self.centralwidget)
self.t_max.setGeometry(QtCore.QRect(80, 64, 80, 31))
self.t_max.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
self.t_max.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
self.t_max.setObjectName("t_max")
self.label = QtWidgets.QLabel(self.centralwidget)
self.label.setGeometry(QtCore.QRect(-9, -4, 171, 71))
font = QtGui.QFont()
font.setFamily("Microsoft YaHei UI")
font.setPointSize(20)
self.label.setFont(font)
self.label.setStyleSheet("background-color: rgb(122, 122, 122);")
self.label.setIndent(10)
self.label.setObjectName("label")
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.b_randomed.setText(_translate("MainWindow", "Randomed"))
self.t_min.setPlaceholderText(_translate("MainWindow", "Min"))
self.t_max.setPlaceholderText(_translate("MainWindow", "Max"))
self.label.setText(_translate("MainWindow", "0"))
错误:
TypeError:只能将str(不是“int”)连接到str
我已经为你标记了错误。你需要修复它。如果有什么不清楚 - 问。
也就是说,您需要以某种方式将数字的类型更改为字符串。这个错误发生在界面中读取变化数据时的某个地方,或者更确切地说,你有一堆类型不兼容的错误
带注释的修订版