1

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)

QScrollArea の SingleTweetWidget

しかし、それをダイアログに入れると、余分なスペースができます。

def setupUi(self, widget):
    super(NewpostWindow, self).setupUi(widget)
    tweet = SingleTweetWidget(self.client, self.tweet, self)
    self.verticalLayout.insertWidget(0, tweet)

QDialog の SingleTweetWidget

6s ago時間 ( ) と青い区切り線の間のスペースに注意してください。

それはどこから来たのですか?私はそれを知りません。

ちなみに、SingleTweetWidget のソースコードはhttps://github.com/WeCase/WeCase/blob/dev-0.06/src/TweetListWidget.pyから入手できます。

4

1 に答える 1

0

QDialogウィジェット間に垂直スペースを置くレイアウトがあります。これは、デフォルトの最小の高さQDialogが 2 つのウィジェットの高さよりも高いためです。self->setMinimumHeight(int)およびself->setMaximumHeight(int)幅バリアント またはなどを使用できますself->setFixedSize(w,h)...

すべてのウィジェットで最大/最小の幅/高さを設定できます。

QLayoutQDialogおよび Qtについて読んで、いくつかの例を参照してください。Qtには非常に優れたドキュメントがあります。見る

http://qt-project.org/doc/

http://qt-project.org/doc/qt-4.8/examples-layouts.html

http://qt-project.org/doc/qt-4.8/qwidget.html#setFixedSize

于 2013-06-01T18:17:49.380 に答える