【发布时间】:2016-09-02 10:04:10
【问题描述】:
编辑:我尝试了更多的东西。如果我将垫片移动到我要添加的垫片下方的布局,则不会表现出相同的确切行为。它仍然不是最佳的,并且不会起作用,因为我的最终目标是有一个带有间隔的滚动区域,我将我的小部件添加到其中,但这看起来不正确。我认为问题在于小部件的尺寸为零,我只是不知道为什么或如何解决它。
我有两个用 QtDesigner 制作的 ui 文件。第一个文件是我在程序开始时的主窗口,我加载第二个 ui 文件并将其放入第一个中间的垂直分隔符中。每次单击按钮时都会放置额外的副本。
这一切都很好,直到我添加一个垂直垫片将项目推到顶部。我已经厌倦了从 Designer 和代码中添加它。两者的结果相同。
我在google上看了很多,也尝试了很多建议。
我尝试将第二个 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
【问题讨论】: