编辑:我还尝试了一些其他内容。如果我将垫片移动到垫片下方的布局中,我将其添加到它中并不表示同样的确切行为。它仍然不是最优的,并且不会起作用,因为我的最终目标是在我添加我的小部件的内部有一个带有spacer的scrollArea,但这看起来不对。我认为问题是小部件的大小为零我只是不知道为什么或如何解决它。
我在QtDesigner中制作了两个ui文件。第一个文件是程序开始时的主窗口我加载第二个ui文件并将其放入第一个文件中间的垂直间隔中。每次单击按钮时都会放置其他副本。
这一切都很有效,直到我添加一个垂直垫片将物品推到顶部。我已经厌倦了从Designer和代码中添加它。两者都有相同的结果。
我在谷歌上看了很多,并尝试了很多建议。
我尝试将第二个ui文件父设置为我在第一个包含垂直布局时添加的Qwidget。
我尝试将最小尺寸和尺寸调整设置为各种事物。
以下是我目前的代码,任何想法或建议都将不胜感激!
#!python3
import sys
from PyQt5 import QtWidgets, QtCore, uic
class TimesheetWidget(QtWidgets.QWidget):
def __init__(self, parent=None):
super(TimesheetWidget, self).__init__(parent)
self.parent = parent
self.tableRows = dict()
def setup(self):
self.labelSaved.hide()
self.addTableRow()
def addTableRow(self):
thisRow = len(self.tableRows)
self.tableRows[thisRow] = uic.loadUi("gui/tableRow.ui")
self.tableRows[thisRow].addButton.clicked.connect(self.addTableRow)
self.spacer.addWidget(self.tableRows[thisRow])
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
timesheet = TimesheetWidget()
Mytimesheet = uic.loadUi("gui/timesheet.ui", baseinstance=timesheet)
Mytimesheet.setup()
Mytimesheet.show()
sys.exit(app.exec_())
这里是ui文件的链接(他们要发帖很长): gist link for ui files