我有SingleTweetWidget
来显示推文。
如果我将它放入QScrollArea
,一切正常。
class TweetListWidget(QtGui.QWidget):
def __init__(self, client=None, parent=None):
super(TweetListWidget, self).__init__(parent)
self.setupUi()
def setupUi(self):
self.layout = QtGui.QVBoxLayout(self)
self.setLayout(self.layout)
def setModel(self, model):
self.model = model
self.model.rowsInserted.connect(self._rowsInserted)
def _rowsInserted(self, parent, start, end):
for index in range(start, end + 1):
item = self.model.get_item(index)
widget = SingleTweetWidget(self.client, item)
self.layout.insertWidget(index, widget)
但是,如果我将它放入对话框中,会有一些额外的空间。
def setupUi(self, widget):
super(NewpostWindow, self).setupUi(widget)
tweet = SingleTweetWidget(self.client, self.tweet, self)
self.verticalLayout.insertWidget(0, tweet)
请注意时间(6s ago
)和蓝色分隔线之间的空格。
它来自哪里?我不知道它。
顺便说一句,您可以从https://github.com/WeCase/WeCase/blob/dev-0.06/src/TweetListWidget.py
获取SingleTweetWidget的源代码答案 0 :(得分:0)
QDialog
有一个布局,可以在窗口小部件之间放置一个垂直空间。这是因为QDialog
的默认最小高度高于两个小部件的高度。您可以使用self->setMinimumHeight(int)
和self->setMaximumHeight(int)
以及宽度变体或self->setFixedSize(w,h)
等...
您可以使用每个小部件设置最大/最小宽度/高度。
阅读有关QLayout
,QDialog
和Qt的内容,并查看一些示例。 Qt有很好的文档。参见