Форум сайта python.su
Начал переползать на PyQt. После tkinter все стало казаться более запутанным :(
Такая проблемка. Есть QGraphicsScene. Допустим, приложение открывается, распахивается на весь экран, все окно занимает сцена. На этой сцене нужно помещать картинки, размеры которых могут превышать размеры сцены. Как сделать так, чтоб размер сцены оставался фиксированным и был равным размеру QGraphicsView, не было полос прокрутки , а отчет координат шел всегда с верхнего левого угла?
#coding:utf-8
# сорри за стиль, не могу пока отвыкнуть от tkinter :)
import sys
from PyQt4 import QtGui
from PyQt4 import QtCore
app = QtGui.QApplication(sys.argv)
root = QtGui.QMainWindow()
root.show()
root.showMaximized()
frame=QtGui.QFrame(root)
scene = QtGui.QGraphicsScene()
view = QtGui.QGraphicsView(scene)
root.setCentralWidget(view)
# здесь ставим фото, заведомо большее размера экрана
i=QtGui.QGraphicsPixmapItem(QtGui.QPixmap(u'2.jpg'))
i.setPos(500,500)
scene.addItem(i)
sys.exit(app.exec_())
Отредактировано (Дек. 27, 2010 12:48:22)
Офлайн
Это можно сделать, переопределив несколько событий. Но возникает вопрос: а может, нужна совсем не сцена?
Офлайн
Андрей СветловА что еще можно использовать? Требований совсем не много. Накидать пару картинок в нужных местах и полупрозрачность (картинки будут частично перекрываться).
Но возникает вопрос: а может, нужна совсем не сцена?
Офлайн
Ну взять QWidget и переопределить рисовалку и/или resize.
Офлайн
Получилось проще… Лучшим учебником по PyQt для меня оказался Qt Designer :)
view.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
view.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
view.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignTop)
Офлайн