Fix scrolling and alignment in PageView.

This commit is contained in:
Andrey Golovizin 2014-09-08 20:09:29 +02:00
parent a75630890e
commit a089846a31

View file

@ -15,6 +15,7 @@
from PyQt4.QtCore import ( from PyQt4.QtCore import (
Qt,
signal, signal,
slot, slot,
) )
@ -60,14 +61,19 @@ class PageScene(QGraphicsScene):
self.removeItem(item) self.removeItem(item)
self.page = page self.page = page
self.pageItem = self.addPage(page) self.pageItem = self.addPage(page)
self.pageItem.ensureVisible(0, 0, 1, 1)
self.highlightBaselines() self.highlightBaselines()
shadow = QGraphicsDropShadowEffect() shadow = QGraphicsDropShadowEffect()
shadow.setBlurRadius(20) shadow.setBlurRadius(20)
shadow.setOffset(2, 2) shadow.setOffset(2, 2)
self.pageItem.setGraphicsEffect(shadow) self.pageItem.setGraphicsEffect(shadow)
self.sceneRectChanged.emit(self.sceneRect())
rect = self.pageItem.boundingRect()
rect.setLeft(rect.left() - 10)
rect.setTop(rect.top() - 10)
self.setSceneRect(rect)
self.pageItem.ensureVisible(0, 0, 1, 1)
self.pageItemChanged.emit(self.pageItem) self.pageItemChanged.emit(self.pageItem)
def highlightBaselines(self): def highlightBaselines(self):
@ -103,3 +109,4 @@ class PageView(QGraphicsView):
def __init__(self, *args, **kwargs): def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs) super().__init__(*args, **kwargs)
self.setFrameShape(self.NoFrame) self.setFrameShape(self.NoFrame)
self.setAlignment(Qt.AlignTop | Qt.AlignLeft)