def __init__(self, model, jid, parent=None): super(ChatWindow, self).__init__(parent) # set size self.setMinimumSize(QtCore.QSize(580, 600)) self.anchorLayout = QtWidgets.QGraphicsAnchorLayout() self.anchorLayout.setSpacing(0) self.anchorLayout.setMinimumSize( QtCore.QSizeF(self.contentsRect().width(), self.contentsRect().height())) titlebar = createProxyWidget(Titlebar(self), QtCore.QSizeF(self.rect().width(), -1)) mask = createProxyWidget(getObjectWidget("mask", QtWidgets.QLabel), minimum=QtCore.QSizeF(self.rect().width(), 136), maximum=QtCore.QSizeF(self.rect().width(), 136)) self.chatview = ChatView(model) _chatview = createProxyWidget(self.chatview, QtCore.QSizeF(self.rect().width(), -1)) self.anchorLayout.addAnchor(mask, QtCore.Qt.AnchorTop, self.anchorLayout, QtCore.Qt.AnchorTop) self.anchorLayout.addAnchor(titlebar, QtCore.Qt.AnchorTop, self.anchorLayout, QtCore.Qt.AnchorTop) self.anchorLayout.addAnchor(_chatview, QtCore.Qt.AnchorTop, mask, QtCore.Qt.AnchorBottom) self.anchorLayout.addAnchor(_chatview, QtCore.Qt.AnchorBottom, self.anchorLayout, QtCore.Qt.AnchorBottom) mainWidget = QtWidgets.QGraphicsWidget() mainWidget.setLayout(self.anchorLayout) # mainWidget.setPos(-5, -5) mainWidget.setPos(0, -5) self.addItem(mainWidget) self.model = model self.jid = jid
prefSize = QtCore.QSizeF(210, 100) maxSize = QtCore.QSizeF(300, 100) a = createItem(minSize, prefSize, maxSize, "A") b = createItem(minSize, prefSize, maxSize, "B") c = createItem(minSize, prefSize, maxSize, "C") d = createItem(minSize, prefSize, maxSize, "D") e = createItem(minSize, prefSize, maxSize, "E") f = createItem( QtCore.QSizeF(30, 50), QtCore.QSizeF(150, 50), maxSize, "F (overflow)" ) g = createItem( QtCore.QSizeF(30, 50), QtCore.QSizeF(30, 100), maxSize, "G (overflow)" ) l = QtWidgets.QGraphicsAnchorLayout() l.setSpacing(0) w = QtWidgets.QGraphicsWidget(None, QtCore.Qt.Window) w.setPos(20, 20) w.setLayout(l) # vertical l.addAnchor(a, QtCore.Qt.AnchorTop, l, QtCore.Qt.AnchorTop) l.addAnchor(b, QtCore.Qt.AnchorTop, l, QtCore.Qt.AnchorTop) l.addAnchor(c, QtCore.Qt.AnchorTop, a, QtCore.Qt.AnchorBottom) l.addAnchor(c, QtCore.Qt.AnchorTop, b, QtCore.Qt.AnchorBottom) l.addAnchor(c, QtCore.Qt.AnchorBottom, d, QtCore.Qt.AnchorTop) l.addAnchor(c, QtCore.Qt.AnchorBottom, e, QtCore.Qt.AnchorTop)