python添加另一个相同的textit和按钮



我想让它,当我按加号,另一个相同的形式。第二种形式出现了,但第一种形式消失了我需要帮助,当我保留第一个,并添加下面的其他

from zlib import DEF_BUF_SIZE
from PyQt5 import QtCore, QtGui, QtWidgets

class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(459, 288)

self.y=15
self.x=20
self.i=0
self.rep(self.y, self.x)

self.retranslateUi(MainWindow)
#QtCore.QMetaObject.connectSlotsByName(MainWindow)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))

def rep(self,x,y):
icon = QtGui.QIcon()
icon.addPixmap(QtGui.QPixmap("../../../Downloads/Hopstarter-Button-Button-Add.ico"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
MainWindow.setWindowIcon(icon)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget" + str(self.i))
self.lineEdit = QtWidgets.QLineEdit(self.centralwidget)
self.lineEdit.setGeometry(QtCore.QRect(30, x, 200, 30))
font = QtGui.QFont()
font.setPointSize(14)
font.setWeight(75)
self.lineEdit.setFont(font)
self.lineEdit.setObjectName("lineEdit")
self.pushButton = QtWidgets.QPushButton(self.centralwidget)
self.pushButton.setGeometry(QtCore.QRect(250, y, 75, 23))
self.pushButton.setText("")
self.pushButton.setIcon(icon)
self.pushButton.setIconSize(QtCore.Size(21, 21))
self.pushButton.setDefault(True)
self.pushButton.setObjectName("pushButton")        
self.pushButton.clicked.connect(self.onOne)

MainWindow.setCentralWidget(self.centralwidget) 
pass

def onOne(self):
self.y +=30
self.x +=30
self.i += 1

self.rep(self.y, self.x)
pass
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())

我尝试了第一个建议,但它不起作用。我听取了另一个建议。他修改了一些自己的东西,它工作

从PyQt5导入QtCore, QtGui, QtWidgets从PyQt5。QtWidgets导入(QWidget, QPushButton,QHBoxLayout, QVBoxLayout, QApplication)

类Ui_MainWindow (QWidget):

def __init__(self):
super().__init__()

self.vbox = QVBoxLayout()
self.setupUi()

def setupUi(self):  
self.hbox = QHBoxLayout()

self.lineEdit = self.lab()
self.hbox.addWidget(self.lineEdit) 

self.hbox.addStretch()

self.pushButton = self.butt()
self.hbox.addWidget(self.pushButton)

self.vbox.addLayout(self.hbox)

self.setLayout(self.vbox)
self.pushButton.clicked.connect(self.klik)

def klik(self):
s = self.lineEdit.text()
if (len(s.strip())!=0):
self.pushButton.setEnabled(False)
self.setupUi()
pass    
def f(self):
font = QtGui.QFont()
font.setPointSize(14)
font.setBold(True)
font.setWeight(75)
return font

def i(self):
icon = QtGui.QIcon()
icon.addPixmap(QtGui.QPixmap("../../../Users/Downloads/Hopstarter-Button-Button-Add.ico"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
return icon

def butt(self):
pushButton = QtWidgets.QPushButton()
ff = self.f()
pushButton.setFont(ff)
pushButton.setLayoutDirection(QtCore.Qt.LeftToRight)
pushButton.setText("")

ii = self.i() 
pushButton.setIcon(ii)
pushButton.setIconSize(QtCore.QSize(21, 21))
pushButton.setAutoDefault(True)
pushButton.setDefault(True)
pushButton.setFlat(True)
pushButton.setObjectName("pushButton")
return pushButton

def lab(self):
lineEdit = QtWidgets.QLineEdit()
ff = self.f()
lineEdit.setFont(ff)

lineEdit.setObjectName("lineEdit")        
return lineEdit

如果名称主要= =,":导入系统app = QtWidgets.QApplication(sys.argv)ui = Ui_MainWindow()ui.show ()sys.exit (app.exec_ ())

最新更新