Найти - Пользователи
Полная версия: [PyQt4] QGraphicsScene
Начало » GUI » [PyQt4] QGraphicsScene
1
igor.kaist
Начал переползать на 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_())
можно конечно в лоб задать scene.setSceneRect, но как и где брать размеры, ума не приложу.
Андрей Светлов
Это можно сделать, переопределив несколько событий. Но возникает вопрос: а может, нужна совсем не сцена?
igor.kaist
Андрей Светлов
Но возникает вопрос: а может, нужна совсем не сцена?
А что еще можно использовать? Требований совсем не много. Накидать пару картинок в нужных местах и полупрозрачность (картинки будут частично перекрываться).
Андрей Светлов
Ну взять QWidget и переопределить рисовалку и/или resize.
igor.kaist
Получилось проще… Лучшим учебником по PyQt для меня оказался Qt Designer :)
view.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
view.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
view.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignTop)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB