我正在尝试制作一个具有搜索功能的程序,当单击搜索按钮时,它将显示一些按钮,这些按钮将显示不同的搜索结果。我知道这可能不是最有效的方法,但是对于我要解决的问题,这是必需的。一切正常,除了无法在需要时创建新的QPushButton
之外。
我尝试使用QGridLayout.addWidget
,但当然可以将其对齐到网格布局。我不想这样做,因为我想自定义QPushButton
的位置,其大小等,这是我无法通过此方法完成的。我刚刚编写的一些简单代码就可以显示问题:
from PyQt5 import QtCore, QtGui, QtWidgets
import sys
class UI_Dialog(object):
def addButtons(self):
self.btn2 = QtWidgets.QPushButton(Dialog)
self.btn2.setGeometry(QtCore.QRect(115, 220, 101, 131))
self.btn2.setObjectName("btn2")
def setupUi(self, Dialog):
Dialog.setObjectName("Dialog")
Dialog.resize(1300, 800)
self.btn1 = QtWidgets.QPushButton(Dialog)
self.btn1.setGeometry(QtCore.QRect(10, 80, 101, 131))
self.btn1.setObjectName("btn1")
self.btn1.clicked.connect(self.pushed)
self.retranslateUi(Dialog)
QtCore.QMetaObject.connectSlotsByName(Dialog)
def pushed(self):
self.addButtons()
def retranslateUi(self, Dialog):
_translate = QtCore.QCoreApplication.translate
Dialog.setWindowTitle(_translate("Dialog", "Example Program"))
self.btn1.setText(_translate("Dialog", "Push Button"))
app = QtWidgets.QApplication(sys.argv)
Dialog = QtWidgets.QDialog()
ui = UI_Dialog()
ui.setupUi(Dialog)
Dialog.show()
sys.exit(app.exec_())
这里有些事情可能没有意义,例如窗口大小,多功能调用或它是Dialog
窗口而不是QMainWindow
。但是,在实际程序的上下文中,他们只是忽略了这一点,我知道它的效率很低。我只希望将btn2
以正确的尺寸显示在正确的位置。预先感谢!