QGraphicsSceneclass provides a surface for managing a large number of 2D graphical items. 更多 …
def
activePanel
()
def
activeWindow
()
def
addEllipse
(rect[, pen=QPen()[, brush=QBrush()]])
def
addEllipse
(x, y, w, h[, pen=QPen()[, brush=QBrush()]])
def
addItem
(item)
def
addLine
(line[, pen=QPen()])
def
addLine
(x1, y1, x2, y2[, pen=QPen()])
def
addPath
(path[, pen=QPen()[, brush=QBrush()]])
def
addPixmap
(pixmap)
def
addPolygon
(polygon[, pen=QPen()[, brush=QBrush()]])
def
addRect
(rect[, pen=QPen()[, brush=QBrush()]])
def
addRect
(x, y, w, h[, pen=QPen()[, brush=QBrush()]])
def
addSimpleText
(text[, font=QFont()])
def
addText
(text[, font=QFont()])
def
addWidget
(widget[, wFlags=Qt.WindowFlags()])
def
backgroundBrush
()
def
bspTreeDepth
()
def
clearFocus
()
def
collidingItems
(item[, mode=Qt.IntersectsItemShape])
def
createItemGroup
(items)
def
destroyItemGroup
(group)
def
focusItem
()
def
focusOnTouch
()
def
font
()
def
foregroundBrush
()
def
hasFocus
()
def
height
()
def
invalidate
(x, y, w, h[, layers=QGraphicsScene.AllLayers])
def
isActive
()
def
isSortCacheEnabled
()
def
itemAt
(pos, deviceTransform)
def
itemAt
(x, y, deviceTransform)
def
itemIndexMethod
()
def
items
([order=Qt.DescendingOrder])
def
items
(path[, mode=Qt.IntersectsItemShape[, order=Qt.DescendingOrder[, deviceTransform=QTransform()]]])
def
items
(polygon[, mode=Qt.IntersectsItemShape[, order=Qt.DescendingOrder[, deviceTransform=QTransform()]]])
def
items
(pos[, mode=Qt.IntersectsItemShape[, order=Qt.DescendingOrder[, deviceTransform=QTransform()]]])
def
items
(rect[, mode=Qt.IntersectsItemShape[, order=Qt.DescendingOrder[, deviceTransform=QTransform()]]])
def
items
(x, y, w, h, mode, order[, deviceTransform=QTransform()])
def
itemsBoundingRect
()
def
minimumRenderSize
()
def
mouseGrabberItem
()
def
palette
()
def
removeItem
(item)
def
render
(painter[, target=QRectF()[, source=QRectF()[, aspectRatioMode=Qt.KeepAspectRatio]]])
def
sceneRect
()
def
selectedItems
()
def
selectionArea
()
def
sendEvent
(item, event)
def
setActivePanel
(item)
def
setActiveWindow
(widget)
def
setBackgroundBrush
(brush)
def
setBspTreeDepth
(depth)
def
setFocus
([focusReason=Qt.OtherFocusReason])
def
setFocusItem
(item[, focusReason=Qt.OtherFocusReason])
def
setFocusOnTouch
(enabled)
def
setFont
(font)
def
setForegroundBrush
(brush)
def
setItemIndexMethod
(method)
def
setMinimumRenderSize
(minSize)
def
setPalette
(palette)
def
setSceneRect
(rect)
def
setSceneRect
(x, y, w, h)
def
setSelectionArea
(path, deviceTransform)
def
setSelectionArea
(path, selectionOperation[, mode=Qt.IntersectsItemShape[, deviceTransform=QTransform()]])
def
setSelectionArea
(path[, mode=Qt.IntersectsItemShape[, deviceTransform=QTransform()]])
def
setSortCacheEnabled
(enabled)
def
setStickyFocus
(enabled)
def
setStyle
(style)
def
stickyFocus
()
def
style
()
def
update
(x, y, w, h)
def
views
()
def
width
()
def
contextMenuEvent
(event)
def
dragEnterEvent
(event)
def
dragLeaveEvent
(event)
def
dragMoveEvent
(event)
def
drawBackground
(painter, rect)
def
drawForeground
(painter, rect)
def
dropEvent
(event)
def
focusInEvent
(event)
def
focusOutEvent
(event)
def
helpEvent
(event)
def
inputMethodEvent
(event)
def
inputMethodQuery
(query)
def
keyPressEvent
(event)
def
keyReleaseEvent
(event)
def
mouseDoubleClickEvent
(event)
def
mouseMoveEvent
(event)
def
mousePressEvent
(event)
def
mouseReleaseEvent
(event)
def
wheelEvent
(event)
def
advance
()
def
clear
()
def
clearSelection
()
def
focusNextPrevChild
(next)
def
invalidate
([rect=QRectF()[, layers=QGraphicsScene.AllLayers]])
def
update
([rect=QRectF()])
def
changed
(region)
def
focusItemChanged
(newFocus, oldFocus, reason)
def
sceneRectChanged
(rect)
def
selectionChanged
()
类充当 QGraphicsItems 的容器。它被使用同
QGraphicsViewfor visualizing graphical items, such as lines, rectangles, text, or even custom items, on a 2D surface.QGraphicsScene属于 图形视图框架 .
QGraphicsScenealso provides functionality that lets you efficiently determine both the location of items, and for determining what items are visible within an arbitrary area on the scene. With theQGraphicsViewwidget, you can either visualize the whole scene, or zoom in and view only parts of the scene.范例:
scene = QGraphicsScene() scene.addText("Hello, world!") view = QGraphicsView(&scene) view.show()注意:
QGraphicsScenehas no visual appearance of its own; it only manages the items. You need to create aQGraphicsViewwidget to visualize the scene.To add items to a scene, you start off by constructing a
QGraphicsSceneobject. Then, you have two options: either add your existingQGraphicsItemobjects by callingaddItem(), or you can call one of the convenience functionsaddEllipse(),addLine(),addPath(),addPixmap(),addPolygon(),addRect(),或addText(), which all return a pointer to the newly added item. The dimensions of the items added with these functions are relative to the item’s coordinate system, and the items position is initialized to (0, 0) in the scene.You can then visualize the scene using
QGraphicsView. When the scene changes, (e.g., when an item moves or is transformed)QGraphicsScene发射changed()signal. To remove an item, callremoveItem().
QGraphicsSceneuses an indexing algorithm to manage the location of items efficiently. By default, a BSP (Binary Space Partitioning) tree is used; an algorithm suitable for large scenes where most items remain static (i.e., do not move around). You can choose to disable this index by callingsetItemIndexMethod(). For more information about the available indexing algorithms, see theitemIndexMethod特性。The scene’s bounding rect is set by calling
setSceneRect(). Items can be placed at any position on the scene, and the size of the scene is by default unlimited. The scene rect is used only for internal bookkeeping, maintaining the scene’s item index. If the scene rect is unset,QGraphicsScenewill use the bounding area of all items, as returned byitemsBoundingRect(), as the scene rect. However,itemsBoundingRect()is a relatively time consuming function, as it operates by collecting positional information for every item on the scene. Because of this, you should always set the scene rect when operating on large scenes.One of
QGraphicsScene‘s greatest strengths is its ability to efficiently determine the location of items. Even with millions of items on the scene, theitems()functions can determine the location of an item within a few milliseconds. There are several overloads toitems(): one that finds items at a certain position, one that finds items inside or intersecting with a polygon or a rectangle, and more. The list of returned items is sorted by stacking order, with the topmost item being the first item in the list. For convenience, there is also anitemAt()function that returns the topmost item at a given position.
QGraphicsScenemaintains selection information for the scene. To select items, callsetSelectionArea(), and to clear the current selection, callclearSelection()。调用selectedItems()to get the list of all selected items.
Another responsibility that
QGraphicsScenehas, is to propagate events fromQGraphicsView. To send an event to a scene, you construct an event that inheritsQEvent, and then send it using, for example,sendEvent().event()is responsible for dispatching the event to the individual items. Some common events are handled by convenience event handlers. For example, key press events are handled bykeyPressEvent(), and mouse press events are handled bymousePressEvent().Key events are delivered to the focus item . To set the focus item, you can either call
setFocusItem(), passing an item that accepts focus, or the item itself can callsetFocus()。调用focusItem()to get the current focus item. For compatibility with widgets, the scene also maintains its own focus information. By default, the scene does not have focus, and all key events are discarded. IfsetFocus()is called, or if an item on the scene gains focus, the scene automatically gains focus. If the scene has focus,hasFocus()will return true, and key events will be forwarded to the focus item, if any. If the scene loses focus, (i.e., someone callsclearFocus()) while an item has focus, the scene will maintain its item focus information, and once the scene regains focus, it will make sure the last focus item regains focus.For mouse-over effects,
QGraphicsScenedispatches hover events . If an item accepts hover events (seeacceptHoverEvents()), it will receive aGraphicsSceneHoverEnterevent when the mouse enters its area. As the mouse continues moving inside the item’s area,QGraphicsScenewill send itGraphicsSceneHoverMoveevents. When the mouse leaves the item’s area, the item will receive aGraphicsSceneHoverLeave事件。All mouse events are delivered to the current mouse grabber item. An item becomes the scene’s mouse grabber if it accepts mouse events (see
acceptedMouseButtons()) and it receives a mouse press. It stays the mouse grabber until it receives a mouse release when no other mouse buttons are pressed. You can callmouseGrabberItem()to determine what item is currently grabbing the mouse.
QGraphicsScene
(
[
parent=None
]
)
¶
QGraphicsScene(sceneRect[, parent=None])
QGraphicsScene(x, y, width, height[, parent=None])
- param parent
QObject- param x
qreal- param y
qreal- param width
qreal- param sceneRect
QRectF- param height
qreal
构造
QGraphicsScene
对象。
parent
参数会被传递给
QObject
‘s constructor.
构造
QGraphicsScene
object, using
sceneRect
for its scene rectangle. The
parent
参数会被传递给
QObject
‘s constructor.
另请参阅
构造
QGraphicsScene
object, using the rectangle specified by (
x
,
y
), and the given
width
and
height
for its scene rectangle. The
parent
参数会被传递给
QObject
‘s constructor.
另请参阅
PySide2.QtWidgets.QGraphicsScene.
ItemIndexMethod
¶
This enum describes the indexing algorithms
QGraphicsScene
provides for managing positional information about items on the scene.
|
常量 |
描述 |
|---|---|
|
QGraphicsScene.BspTreeIndex |
A Binary Space Partitioning tree is applied. All
|
|
QGraphicsScene.NoIndex |
No index is applied. Item location is of linear complexity, as all items on the scene are searched. Adding, moving and removing items, however, is done in constant time. This approach is ideal for dynamic scenes, where many items are added, moved or removed continuously. |
PySide2.QtWidgets.QGraphicsScene.
SceneLayer
¶
This enum describes the rendering layers in a
QGraphicsScene
。当
QGraphicsScene
draws the scene contents, it renders each of these layers separately, in order.
Each layer represents a flag that can be OR’ed together when calling functions such as
invalidate()
or
invalidateScene()
.
|
常量 |
描述 |
|---|---|
|
QGraphicsScene.ItemLayer |
The item layer.
|
|
QGraphicsScene.BackgroundLayer |
The background layer.
|
|
QGraphicsScene.ForegroundLayer |
The foreground layer.
|
|
QGraphicsScene.AllLayers |
All layers; this value represents a combination of all three layers. |
PySide2.QtWidgets.QGraphicsScene.
activePanel
(
)
¶
Returns the current active panel, or
None
if no panel is currently active.
另请参阅
PySide2.QtWidgets.QGraphicsScene.
activeWindow
(
)
¶
Returns the current active window, or
None
if no window is currently active.
另请参阅
PySide2.QtWidgets.QGraphicsScene.
addEllipse
(
rect
[
,
pen=QPen()
[
,
brush=QBrush()
]
]
)
¶
rect
–
QRectF
pen
–
QPen
brush
–
QBrush
Creates and adds an ellipse item to the scene, and returns the item pointer. The geometry of the ellipse is defined by
rect
, and its pen and brush are initialized to
pen
and
brush
.
Note that the item’s geometry is provided in item coordinates, and its position is initialized to (0, 0).
If the item is visible (i.e.,
isVisible()
返回
true
),
QGraphicsScene
将发射
changed()
once control goes back to the event loop.
PySide2.QtWidgets.QGraphicsScene.
addEllipse
(
x
,
y
,
w
,
h
[
,
pen=QPen()
[
,
brush=QBrush()
]
]
)
¶
x
–
qreal
y
–
qreal
w
–
qreal
h
–
qreal
pen
–
QPen
brush
–
QBrush
This convenience function is equivalent to calling
addEllipse
(
QRectF
(
x
,
y
,
w
,
h
),
pen
,
brush
).
PySide2.QtWidgets.QGraphicsScene.
addItem
(
item
)
¶
item
–
QGraphicsItem
Adds or moves the
item
and all its childen to this scene. This scene takes ownership of the
item
.
If the item is visible (i.e.,
isVisible()
returns true),
QGraphicsScene
将发射
changed()
once control goes back to the event loop.
If the item is already in a different scene, it will first be removed from its old scene, and then added to this scene as a top-level.
QGraphicsScene
will send ItemSceneChange notifications to
item
while it is added to the scene. If item does not currently belong to a scene, only one notification is sent. If it does belong to scene already (i.e., it is moved to this scene),
QGraphicsScene
will send an addition notification as the item is removed from its previous scene.
If the item is a panel, the scene is active, and there is no active panel in the scene, then the item will be activated.
PySide2.QtWidgets.QGraphicsScene.
addLine
(
line
[
,
pen=QPen()
]
)
¶
line
–
QLineF
pen
–
QPen
Creates and adds a line item to the scene, and returns the item pointer. The geometry of the line is defined by
line
, and its pen is initialized to
pen
.
Note that the item’s geometry is provided in item coordinates, and its position is initialized to (0, 0).
If the item is visible (i.e.,
isVisible()
返回
true
),
QGraphicsScene
将发射
changed()
once control goes back to the event loop.
PySide2.QtWidgets.QGraphicsScene.
addLine
(
x1
,
y1
,
x2
,
y2
[
,
pen=QPen()
]
)
¶
x1
–
qreal
y1
–
qreal
x2
–
qreal
y2
–
qreal
pen
–
QPen
This convenience function is equivalent to calling
addLine
(
QLineF
(
x1
,
y1
,
x2
,
y2
),
pen
).
PySide2.QtWidgets.QGraphicsScene.
addPath
(
path
[
,
pen=QPen()
[
,
brush=QBrush()
]
]
)
¶
path
–
QPainterPath
pen
–
QPen
brush
–
QBrush
Creates and adds a path item to the scene, and returns the item pointer. The geometry of the path is defined by
path
, and its pen and brush are initialized to
pen
and
brush
.
Note that the item’s geometry is provided in item coordinates, and its position is initialized to (0, 0).
If the item is visible (i.e.,
isVisible()
返回
true
),
QGraphicsScene
将发射
changed()
once control goes back to the event loop.
PySide2.QtWidgets.QGraphicsScene.
addPixmap
(
pixmap
)
¶
pixmap
–
QPixmap
Creates and adds a pixmap item to the scene, and returns the item pointer. The pixmap is defined by
pixmap
.
Note that the item’s geometry is provided in item coordinates, and its position is initialized to (0, 0).
If the item is visible (i.e.,
isVisible()
返回
true
),
QGraphicsScene
将发射
changed()
once control goes back to the event loop.
PySide2.QtWidgets.QGraphicsScene.
addPolygon
(
polygon
[
,
pen=QPen()
[
,
brush=QBrush()
]
]
)
¶
polygon
–
QPolygonF
pen
–
QPen
brush
–
QBrush
Creates and adds a polygon item to the scene, and returns the item pointer. The polygon is defined by
polygon
, and its pen and brush are initialized to
pen
and
brush
.
Note that the item’s geometry is provided in item coordinates, and its position is initialized to (0, 0).
If the item is visible (i.e.,
isVisible()
返回
true
),
QGraphicsScene
将发射
changed()
once control goes back to the event loop.
PySide2.QtWidgets.QGraphicsScene.
addRect
(
rect
[
,
pen=QPen()
[
,
brush=QBrush()
]
]
)
¶
rect
–
QRectF
pen
–
QPen
brush
–
QBrush
Creates and adds a rectangle item to the scene, and returns the item pointer. The geometry of the rectangle is defined by
rect
, and its pen and brush are initialized to
pen
and
brush
.
Note that the item’s geometry is provided in item coordinates, and its position is initialized to (0, 0). For example, if a
QRect
(50, 50, 100, 100) is added, its top-left corner will be at (50, 50) relative to the origin in the item’s coordinate system.
If the item is visible (i.e.,
isVisible()
返回
true
),
QGraphicsScene
将发射
changed()
once control goes back to the event loop.
PySide2.QtWidgets.QGraphicsScene.
addRect
(
x
,
y
,
w
,
h
[
,
pen=QPen()
[
,
brush=QBrush()
]
]
)
¶
x
–
qreal
y
–
qreal
w
–
qreal
h
–
qreal
pen
–
QPen
brush
–
QBrush
This convenience function is equivalent to calling
addRect
(
QRectF
(
x
,
y
,
w
,
h
),
pen
,
brush
).
PySide2.QtWidgets.QGraphicsScene.
addSimpleText
(
text
[
,
font=QFont()
]
)
¶
text – unicode
font
–
QFont
Creates and adds a
QGraphicsSimpleTextItem
to the scene, and returns the item pointer. The text string is initialized to
text
, and its font is initialized to
font
.
The item’s position is initialized to (0, 0).
If the item is visible (i.e.,
isVisible()
返回
true
),
QGraphicsScene
将发射
changed()
once control goes back to the event loop.
PySide2.QtWidgets.QGraphicsScene.
addText
(
text
[
,
font=QFont()
]
)
¶
text – unicode
font
–
QFont
Creates and adds a text item to the scene, and returns the item pointer. The text string is initialized to
text
, and its font is initialized to
font
.
The item’s position is initialized to (0, 0).
If the item is visible (i.e.,
isVisible()
返回
true
),
QGraphicsScene
将发射
changed()
once control goes back to the event loop.
PySide2.QtWidgets.QGraphicsScene.
addWidget
(
widget
[
,
wFlags=Qt.WindowFlags()
]
)
¶
widget
–
QWidget
wFlags
–
WindowFlags
创建新
QGraphicsProxyWidget
for
widget
, adds it to the scene, and returns a pointer to the proxy.
wFlags
set the default window flags for the embedding proxy widget.
The item’s position is initialized to (0, 0).
If the item is visible (i.e.,
isVisible()
返回
true
),
QGraphicsScene
将发射
changed()
once control goes back to the event loop.
Note that widgets with the
WA_PaintOnScreen
widget attribute set and widgets that wrap an external application or controller are not supported. Examples are
QOpenGLWidget
and QAxWidget.
PySide2.QtWidgets.QGraphicsScene.
advance
(
)
¶
This slot
advances
the scene by one step, by calling
advance()
for all items on the scene. This is done in two phases: in the first phase, all items are notified that the scene is about to change, and in the second phase all items are notified that they can move. In the first phase,
advance()
is called passing a value of 0 as an argument, and 1 is passed in the second phase.
Note that you can also use the 动画框架 for animations.
PySide2.QtWidgets.QGraphicsScene.
backgroundBrush
(
)
¶
QBrush
另请参阅
PySide2.QtWidgets.QGraphicsScene.
bspTreeDepth
(
)
¶
int
另请参阅
PySide2.QtWidgets.QGraphicsScene.
changed
(
region
)
¶
region –
PySide2.QtWidgets.QGraphicsScene.
clear
(
)
¶
Removes and deletes all items from the scene, but otherwise leaves the state of the scene unchanged.
另请参阅
PySide2.QtWidgets.QGraphicsScene.
clearFocus
(
)
¶
Clears focus from the scene. If any item has focus when this function is called, it will lose focus, and regain focus again once the scene regains focus.
A scene that does not have focus ignores key events.
PySide2.QtWidgets.QGraphicsScene.
clearSelection
(
)
¶
Clears the current selection.
PySide2.QtWidgets.QGraphicsScene.
collidingItems
(
item
[
,
mode=Qt.IntersectsItemShape
]
)
¶
item
–
QGraphicsItem
mode
–
ItemSelectionMode
Returns a list of all items that collide with
item
. Collisions are determined by calling
collidesWithItem()
; the collision detection is determined by
mode
. By default, all items whose shape intersects
item
or is contained inside
item
‘s shape are returned.
The items are returned in descending stacking order (i.e., the first item in the list is the uppermost item, and the last item is the lowermost item).
另请参阅
PySide2.QtWidgets.QGraphicsScene.
contextMenuEvent
(
event
)
¶
event
–
QGraphicsSceneContextMenuEvent
此事件处理程序,对于事件
contextMenuEvent
, can be reimplemented in a subclass to receive context menu events. The default implementation forwards the event to the topmost visible item that accepts context menu events at the position of the event. If no items accept context menu events at this position, the event is ignored.
Note: See
items()
for a definition of which items are considered visible by this function.
另请参阅
PySide2.QtWidgets.QGraphicsScene.
createItemGroup
(
items
)
¶
items –
Groups all items in
items
into a new
QGraphicsItemGroup
, and returns a pointer to the group. The group is created with the common ancestor of
items
as its parent, and with position (0, 0). The items are all reparented to the group, and their positions and transformations are mapped to the group. If
items
is empty, this function will return an empty top-level
QGraphicsItemGroup
.
QGraphicsScene
has ownership of the group item; you do not need to delete it. To dismantle (ungroup) a group, call
destroyItemGroup()
.
PySide2.QtWidgets.QGraphicsScene.
destroyItemGroup
(
group
)
¶
group
–
QGraphicsItemGroup
Reparents all items in
group
to
group
‘s parent item, then removes
group
from the scene, and finally deletes it. The items’ positions and transformations are mapped from the group to the group’s parent.
PySide2.QtWidgets.QGraphicsScene.
dragEnterEvent
(
event
)
¶
event
–
QGraphicsSceneDragDropEvent
此事件处理程序,对于事件
event
, can be reimplemented in a subclass to receive drag enter events for the scene.
The default implementation accepts the event and prepares the scene to accept drag move events.
PySide2.QtWidgets.QGraphicsScene.
dragLeaveEvent
(
event
)
¶
event
–
QGraphicsSceneDragDropEvent
此事件处理程序,对于事件
event
, can be reimplemented in a subclass to receive drag leave events for the scene.
PySide2.QtWidgets.QGraphicsScene.
dragMoveEvent
(
event
)
¶
event
–
QGraphicsSceneDragDropEvent
此事件处理程序,对于事件
event
, can be reimplemented in a subclass to receive drag move events for the scene.
Note: See
items()
for a definition of which items are considered visible by this function.
PySide2.QtWidgets.QGraphicsScene.
drawBackground
(
painter
,
rect
)
¶
painter
–
QPainter
rect
–
QRectF
Draws the background of the scene using
painter
, before any items and the foreground are drawn. Reimplement this function to provide a custom background for the scene.
All painting is done in
scene
coordinates. The
rect
parameter is the exposed rectangle.
If all you want is to define a color, texture, or gradient for the background, you can call
setBackgroundBrush()
代替。
另请参阅
drawForeground()
drawItems()
PySide2.QtWidgets.QGraphicsScene.
drawForeground
(
painter
,
rect
)
¶
painter
–
QPainter
rect
–
QRectF
Draws the foreground of the scene using
painter
, after the background and all items have been drawn. Reimplement this function to provide a custom foreground for the scene.
All painting is done in
scene
coordinates. The
rect
parameter is the exposed rectangle.
If all you want is to define a color, texture or gradient for the foreground, you can call
setForegroundBrush()
代替。
另请参阅
drawBackground()
drawItems()
PySide2.QtWidgets.QGraphicsScene.
dropEvent
(
event
)
¶
event
–
QGraphicsSceneDragDropEvent
此事件处理程序,对于事件
event
, can be reimplemented in a subclass to receive drop events for the scene.
PySide2.QtWidgets.QGraphicsScene.
focusInEvent
(
event
)
¶
event
–
QFocusEvent
此事件处理程序,对于事件
focusEvent
, can be reimplemented in a subclass to receive focus in events.
The default implementation sets focus on the scene, and then on the last focus item.
另请参阅
PySide2.QtWidgets.QGraphicsScene.
focusItem
(
)
¶
When the scene is active, this functions returns the scene’s current focus item, or
None
if no item currently has focus. When the scene is inactive, this functions returns the item that will gain input focus when the scene becomes active.
The focus item receives keyboard input when the scene receives a key event.
PySide2.QtWidgets.QGraphicsScene.
focusItemChanged
(
newFocus
,
oldFocus
,
reason
)
¶
newFocus
–
QGraphicsItem
oldFocus
–
QGraphicsItem
reason
–
FocusReason
PySide2.QtWidgets.QGraphicsScene.
focusNextPrevChild
(
next
)
¶
next
–
bool
bool
查找新的 Widget 以给予键盘聚焦,如适合 Tab 和 Shift+Tab,并返回
true
if it can find a new widget, or false if it cannot. If
next
is true, this function searches forward; if
next
为 False,向后搜索。
You can reimplement this function in a subclass of
QGraphicsScene
to provide fine-grained control over how tab focus passes inside your scene. The default implementation is based on the tab focus chain defined by
setTabOrder()
.
PySide2.QtWidgets.QGraphicsScene.
focusOnTouch
(
)
¶
bool
另请参阅
PySide2.QtWidgets.QGraphicsScene.
focusOutEvent
(
event
)
¶
event
–
QFocusEvent
此事件处理程序,对于事件
focusEvent
, can be reimplemented in a subclass to receive focus out events.
The default implementation removes focus from any focus item, then removes focus from the scene.
另请参阅
PySide2.QtWidgets.QGraphicsScene.
foregroundBrush
(
)
¶
QBrush
另请参阅
PySide2.QtWidgets.QGraphicsScene.
hasFocus
(
)
¶
bool
返回
true
if the scene has focus; otherwise returns
false
. If the scene has focus, it will will forward key events from
QKeyEvent
to any item that has focus.
另请参阅
PySide2.QtWidgets.QGraphicsScene.
height
(
)
¶
qreal
This convenience function is equivalent to calling
sceneRect().height()
.
另请参阅
PySide2.QtWidgets.QGraphicsScene.
helpEvent
(
event
)
¶
event
–
QGraphicsSceneHelpEvent
此事件处理程序,对于事件
helpEvent
, can be reimplemented in a subclass to receive help events. The events are of type
ToolTip
, which are created when a tooltip is requested.
The default implementation shows the tooltip of the topmost visible item, i.e., the item with the highest z-value, at the mouse cursor position. If no item has a tooltip set, this function does nothing.
Note: See
items()
for a definition of which items are considered visible by this function.
PySide2.QtWidgets.QGraphicsScene.
inputMethodEvent
(
event
)
¶
event
–
QInputMethodEvent
此事件处理程序,对于事件
event
, can be reimplemented in a subclass to receive input method events for the scene.
The default implementation forwards the event to the
focusItem()
. If no item currently has focus or the current focus item does not accept input methods, this function does nothing.
另请参阅
PySide2.QtWidgets.QGraphicsScene.
inputMethodQuery
(
query
)
¶
query
–
InputMethodQuery
object
This method is used by input methods to query a set of properties of the scene to be able to support complex input method operations as support for surrounding text and reconversions.
query
parameter specifies which property is queried.
另请参阅
PySide2.QtWidgets.QGraphicsScene.
invalidate
(
[
rect=QRectF()
[
,
layers=QGraphicsScene.AllLayers
]
]
)
¶
rect
–
QRectF
layers
–
SceneLayers
Invalidates and schedules a redraw of the
layers
in
rect
on the scene. Any cached content in
layers
is unconditionally invalidated and redrawn.
You can use this function overload to notify
QGraphicsScene
of changes to the background or the foreground of the scene. This function is commonly used for scenes with tile-based backgrounds to notify changes when
QGraphicsView
has enabled
CacheBackground
.
范例:
class TileScene (QGraphicsScene):
# ...
def rectForTile(x, y):
# Return the rectangle for the tile at position (x, y).
return QRectF(x * self.tileWidth, y * self.tileHeight, self.tileWidth, self.tileHeight)
def setTile(x, y, pixmap):
# Sets or replaces the tile at position (x, y) with pixmap.
if x >= 0 && x < self.numTilesH && y >= 0 && y < self.numTilesV:
self.tiles[y][x] = pixmap
invalidate(rectForTile(x, y), BackgroundLayer)
def drawBackground(painter, exposed):
# Draws all tiles that intersect the exposed area.
for y in range(0, self.numTilesV:
for x in range(0, self.numTilesH:
rect = rectForTile(x, y)
if exposed.intersects(rect):
painter.drawPixmap(rect.topLeft(), tiles[y][x])
注意:
QGraphicsView
currently supports background caching only (see
CacheBackground
). This function is equivalent to calling
update()
if any layer but
BackgroundLayer
被传递。
另请参阅
PySide2.QtWidgets.QGraphicsScene.
invalidate
(
x
,
y
,
w
,
h
[
,
layers=QGraphicsScene.AllLayers
]
)
¶
x
–
qreal
y
–
qreal
w
–
qreal
h
–
qreal
layers
–
SceneLayers
这是重载函数。
This convenience function is equivalent to calling invalidate(
QRectF
(
x
,
y
,
w
,
h
),
layers
);
PySide2.QtWidgets.QGraphicsScene.
isActive
(
)
¶
bool
返回
true
if the scene is active (e.g., it’s viewed by at least one
QGraphicsView
that is active); otherwise returns
false
.
PySide2.QtWidgets.QGraphicsScene.
isSortCacheEnabled
(
)
¶
bool
注意
此函数被弃用。
PySide2.QtWidgets.QGraphicsScene.
itemAt
(
x
,
y
,
deviceTransform
)
¶
x
–
qreal
y
–
qreal
deviceTransform
–
QTransform
这是重载函数。
Returns the topmost visible item at the position specified by (
x
,
y
),或
None
if there are no items at this position.
deviceTransform
is the transformation that applies to the view, and needs to be provided if the scene contains items that ignore transformations.
This convenience function is equivalent to calling
itemAt(QPointF(x,
y),
deviceTransform)
.
Note: See
items()
for a definition of which items are considered visible by this function.
PySide2.QtWidgets.QGraphicsScene.
itemAt
(
pos
,
deviceTransform
)
¶
pos
–
QPointF
deviceTransform
–
QTransform
PySide2.QtWidgets.QGraphicsScene.
itemIndexMethod
(
)
¶
另请参阅
PySide2.QtWidgets.QGraphicsScene.
items
(
x
,
y
,
w
,
h
,
mode
,
order
[
,
deviceTransform=QTransform()
]
)
¶
x
–
qreal
y
–
qreal
w
–
qreal
h
–
qreal
mode
–
ItemSelectionMode
order
–
SortOrder
deviceTransform
–
QTransform
这是重载函数。
Returns all visible items that, depending on
mode
, are either inside or intersect with the rectangle defined by
x
,
y
,
w
and
h
, in a list sorted using
order
. In this case, “visible” defines items for which: isVisible() returns
true
, effectiveOpacity() returns a value greater than 0.0 (which is fully transparent) and the parent item does not clip it.
deviceTransform
is the transformation that applies to the view, and needs to be provided if the scene contains items that ignore transformations.
PySide2.QtWidgets.QGraphicsScene.
items
(
rect
[
,
mode=Qt.IntersectsItemShape
[
,
order=Qt.DescendingOrder
[
,
deviceTransform=QTransform()
]
]
]
)
¶
rect
–
QRectF
mode
–
ItemSelectionMode
order
–
SortOrder
deviceTransform
–
QTransform
PySide2.QtWidgets.QGraphicsScene.
items
(
polygon
[
,
mode=Qt.IntersectsItemShape
[
,
order=Qt.DescendingOrder
[
,
deviceTransform=QTransform()
]
]
]
)
¶
polygon
–
QPolygonF
mode
–
ItemSelectionMode
order
–
SortOrder
deviceTransform
–
QTransform
PySide2.QtWidgets.QGraphicsScene.
items
(
pos
[
,
mode=Qt.IntersectsItemShape
[
,
order=Qt.DescendingOrder
[
,
deviceTransform=QTransform()
]
]
]
)
¶
pos
–
QPointF
mode
–
ItemSelectionMode
order
–
SortOrder
deviceTransform
–
QTransform
PySide2.QtWidgets.QGraphicsScene.
items
(
path
[
,
mode=Qt.IntersectsItemShape
[
,
order=Qt.DescendingOrder
[
,
deviceTransform=QTransform()
]
]
]
)
¶
path
–
QPainterPath
mode
–
ItemSelectionMode
order
–
SortOrder
deviceTransform
–
QTransform
PySide2.QtWidgets.QGraphicsScene.
items
(
[
order=Qt.DescendingOrder
]
)
¶
order
–
SortOrder
Returns an ordered list of all items on the scene.
order
decides the stacking order.
另请参阅
PySide2.QtWidgets.QGraphicsScene.
itemsBoundingRect
(
)
¶
QRectF
Calculates and returns the bounding rect of all items on the scene. This function works by iterating over all items, and because of this, it can be slow for large scenes.
另请参阅
PySide2.QtWidgets.QGraphicsScene.
keyPressEvent
(
event
)
¶
event
–
QKeyEvent
此事件处理程序,对于事件
keyEvent
, can be reimplemented in a subclass to receive keypress events. The default implementation forwards the event to current focus item.
PySide2.QtWidgets.QGraphicsScene.
keyReleaseEvent
(
event
)
¶
event
–
QKeyEvent
此事件处理程序,对于事件
keyEvent
, can be reimplemented in a subclass to receive key release events. The default implementation forwards the event to current focus item.
PySide2.QtWidgets.QGraphicsScene.
minimumRenderSize
(
)
¶
qreal
PySide2.QtWidgets.QGraphicsScene.
mouseDoubleClickEvent
(
event
)
¶
event
–
QGraphicsSceneMouseEvent
此事件处理程序,对于事件
mouseEvent
, can be reimplemented in a subclass to receive mouse doubleclick events for the scene.
If someone doubleclicks on the scene, the scene will first receive a mouse press event, followed by a release event (i.e., a click), then a doubleclick event, and finally a release event. If the doubleclick event is delivered to a different item than the one that received the first press and release, it will be delivered as a press event. However, tripleclick events are not delivered as doubleclick events in this case.
The default implementation is similar to
mousePressEvent()
.
Note: See
items()
for a definition of which items are considered visible by this function.
PySide2.QtWidgets.QGraphicsScene.
mouseGrabberItem
(
)
¶
Returns the current mouse grabber item, or
None
if no item is currently grabbing the mouse. The mouse grabber item is the item that receives all mouse events sent to the scene.
An item becomes a mouse grabber when it receives and accepts a mouse press event, and it stays the mouse grabber until either of the following events occur:
If the item receives a mouse release event when there are no other buttons pressed, it loses the mouse grab.
If the item becomes invisible (i.e., someone calls
item->setVisible(false)
), or if it becomes disabled (i.e., someone calls
item->setEnabled(false)
), it loses the mouse grab.
If the item is removed from the scene, it loses the mouse grab.
If the item loses its mouse grab, the scene will ignore all mouse events until a new item grabs the mouse (i.e., until a new item receives a mouse press event).
PySide2.QtWidgets.QGraphicsScene.
mouseMoveEvent
(
event
)
¶
event
–
QGraphicsSceneMouseEvent
此事件处理程序,对于事件
mouseEvent
, can be reimplemented in a subclass to receive mouse move events for the scene.
The default implementation depends on the mouse grabber state. If there is a mouse grabber item, the event is sent to the mouse grabber. If there are any items that accept hover events at the current position, the event is translated into a hover event and accepted; otherwise it’s ignored.
PySide2.QtWidgets.QGraphicsScene.
mousePressEvent
(
event
)
¶
event
–
QGraphicsSceneMouseEvent
此事件处理程序,对于事件
mouseEvent
, can be reimplemented in a subclass to receive mouse press events for the scene.
The default implementation depends on the state of the scene. If there is a mouse grabber item, then the event is sent to the mouse grabber. Otherwise, it is forwarded to the topmost visible item that accepts mouse events at the scene position from the event, and that item promptly becomes the mouse grabber item.
If there is no item at the given position on the scene, the selection area is reset, any focus item loses its input focus, and the event is then ignored.
Note: See
items()
for a definition of which items are considered visible by this function.
PySide2.QtWidgets.QGraphicsScene.
mouseReleaseEvent
(
event
)
¶
event
–
QGraphicsSceneMouseEvent
此事件处理程序,对于事件
mouseEvent
, can be reimplemented in a subclass to receive mouse release events for the scene.
The default implementation depends on the mouse grabber state. If there is no mouse grabber, the event is ignored. Otherwise, if there is a mouse grabber item, the event is sent to the mouse grabber. If this mouse release represents the last pressed button on the mouse, the mouse grabber item then loses the mouse grab.
PySide2.QtWidgets.QGraphicsScene.
palette
(
)
¶
QPalette
另请参阅
PySide2.QtWidgets.QGraphicsScene.
removeItem
(
item
)
¶
item
–
QGraphicsItem
Removes the item
item
and all its children from the scene. The ownership of
item
is passed on to the caller (i.e.,
QGraphicsScene
will no longer delete
item
when destroyed).
另请参阅
PySide2.QtWidgets.QGraphicsScene.
render
(
painter
[
,
target=QRectF()
[
,
source=QRectF()
[
,
aspectRatioMode=Qt.KeepAspectRatio
]
]
]
)
¶
painter
–
QPainter
target
–
QRectF
source
–
QRectF
aspectRatioMode
–
AspectRatioMode
渲染
source
rect from scene into
target
,使用
painter
. This function is useful for capturing the contents of the scene onto a paint device, such as a
QImage
(e.g., to take a screenshot), or for printing with
QPrinter
。例如:
scene = QGraphicsScene
scene.addItem(...
...
printer = QPrinter(QPrinter.HighResolution)
printer.setPaperSize(QPrinter.A4)
painter = QPainter(printer)
scene.render(&painter)
若
source
is a null rect, this function will use
sceneRect()
to determine what to render. If
target
is a null rect, the dimensions of
painter
‘s paint device will be used.
The source rect contents will be transformed according to
aspectRatioMode
to fit into the target rect. By default, the aspect ratio is kept, and
source
is scaled to fit in
target
.
另请参阅
PySide2.QtWidgets.QGraphicsScene.
sceneRect
(
)
¶
QRectF
另请参阅
PySide2.QtWidgets.QGraphicsScene.
sceneRectChanged
(
rect
)
¶
rect
–
QRectF
PySide2.QtWidgets.QGraphicsScene.
selectedItems
(
)
¶
Returns a list of all currently selected items. The items are returned in no particular order.
另请参阅
PySide2.QtWidgets.QGraphicsScene.
selectionArea
(
)
¶
QPainterPath
Returns the selection area that was previously set with
setSelectionArea()
, or an empty
QPainterPath
if no selection area has been set.
另请参阅
PySide2.QtWidgets.QGraphicsScene.
selectionChanged
(
)
¶
PySide2.QtWidgets.QGraphicsScene.
sendEvent
(
item
,
event
)
¶
item
–
QGraphicsItem
event
–
QEvent
bool
发送事件
event
to item
item
through possible event filters.
The event is sent only if the item is enabled.
返回
false
if the event was filtered or if the item is disabled. Otherwise returns the value that was returned from the event handler.
PySide2.QtWidgets.QGraphicsScene.
setActivePanel
(
item
)
¶
item
–
QGraphicsItem
Activates
item
, which must be an item in this scene. You can also pass 0 for
item
, in which case
QGraphicsScene
will deactivate any currently active panel.
If the scene is currently inactive,
item
remains inactive until the scene becomes active (or, ir
item
is
None
, no item will be activated).
PySide2.QtWidgets.QGraphicsScene.
setActiveWindow
(
widget
)
¶
widget
–
QGraphicsWidget
Activates
widget
, which must be a widget in this scene. You can also pass 0 for
widget
, in which case
QGraphicsScene
will deactivate any currently active window.
PySide2.QtWidgets.QGraphicsScene.
setBackgroundBrush
(
brush
)
¶
brush
–
QBrush
另请参阅
PySide2.QtWidgets.QGraphicsScene.
setBspTreeDepth
(
depth
)
¶
depth
–
int
另请参阅
PySide2.QtWidgets.QGraphicsScene.
setFocus
(
[
focusReason=Qt.OtherFocusReason
]
)
¶
focusReason
–
FocusReason
Sets focus on the scene by sending a
QFocusEvent
to the scene, passing
focusReason
as the reason. If the scene regains focus after having previously lost it while an item had focus, the last focus item will receive focus with
focusReason
as the reason.
If the scene already has focus, this function does nothing.
PySide2.QtWidgets.QGraphicsScene.
setFocusItem
(
item
[
,
focusReason=Qt.OtherFocusReason
]
)
¶
item
–
QGraphicsItem
focusReason
–
FocusReason
Sets the scene’s focus item to
item
, with the focus reason
focusReason
, after removing focus from any previous item that may have had focus.
若
item
is
None
, or if it either does not accept focus (i.e., it does not have the
ItemIsFocusable
flag enabled), or is not visible or not enabled, this function only removes focus from any previous focusitem.
If item is not
None
, and the scene does not currently have focus (i.e.,
hasFocus()
返回
false
), this function will call
setFocus()
automatically.
PySide2.QtWidgets.QGraphicsScene.
setFocusOnTouch
(
enabled
)
¶
enabled
–
bool
另请参阅
PySide2.QtWidgets.QGraphicsScene.
setForegroundBrush
(
brush
)
¶
brush
–
QBrush
另请参阅
PySide2.QtWidgets.QGraphicsScene.
setItemIndexMethod
(
方法
)
¶
方法
–
ItemIndexMethod
另请参阅
PySide2.QtWidgets.QGraphicsScene.
setMinimumRenderSize
(
minSize
)
¶
minSize
–
qreal
另请参阅
PySide2.QtWidgets.QGraphicsScene.
setSceneRect
(
rect
)
¶
rect
–
QRectF
另请参阅
PySide2.QtWidgets.QGraphicsScene.
setSceneRect
(
x
,
y
,
w
,
h
)
¶
x
–
qreal
y
–
qreal
w
–
qreal
h
–
qreal
PySide2.QtWidgets.QGraphicsScene.
setSelectionArea
(
path
[
,
mode=Qt.IntersectsItemShape
[
,
deviceTransform=QTransform()
]
]
)
¶
path
–
QPainterPath
mode
–
ItemSelectionMode
deviceTransform
–
QTransform
这是重载函数。
Sets the selection area to
path
使用
mode
to determine if items are included in the selection area.
deviceTransform
is the transformation that applies to the view, and needs to be provided if the scene contains items that ignore transformations.
PySide2.QtWidgets.QGraphicsScene.
setSelectionArea
(
path
,
selectionOperation
[
,
mode=Qt.IntersectsItemShape
[
,
deviceTransform=QTransform()
]
]
)
¶
path
–
QPainterPath
selectionOperation
–
ItemSelectionOperation
mode
–
ItemSelectionMode
deviceTransform
–
QTransform
这是重载函数。
Sets the selection area to
path
使用
mode
to determine if items are included in the selection area.
deviceTransform
is the transformation that applies to the view, and needs to be provided if the scene contains items that ignore transformations.
selectionOperation
determines what to do with the currently selected items.
PySide2.QtWidgets.QGraphicsScene.
setSelectionArea
(
path
,
deviceTransform
)
¶
path
–
QPainterPath
deviceTransform
–
QTransform
Sets the selection area to
path
. All items within this area are immediately selected, and all items outside are unselected. You can get the list of all selected items by calling
selectedItems()
.
deviceTransform
is the transformation that applies to the view, and needs to be provided if the scene contains items that ignore transformations.
For an item to be selected, it must be marked as
selectable
(
ItemIsSelectable
).
PySide2.QtWidgets.QGraphicsScene.
setSortCacheEnabled
(
enabled
)
¶
enabled
–
bool
注意
此函数被弃用。
另请参阅
PySide2.QtWidgets.QGraphicsScene.
setStickyFocus
(
enabled
)
¶
enabled
–
bool
另请参阅
PySide2.QtWidgets.QGraphicsScene.
setStyle
(
style
)
¶
style
–
QStyle
Sets or replaces the style of the scene to
style
, and reparents the style to this scene. Any previously assigned style is deleted. The scene’s style defaults to
style()
, and serves as the default for all
QGraphicsWidget
items in the scene.
Changing the style, either directly by calling this function, or indirectly by calling
setStyle()
, will automatically update the style for all widgets in the scene that do not have a style explicitly assigned to them.
若
style
is
None
,
QGraphicsScene
will revert to
style()
.
另请参阅
PySide2.QtWidgets.QGraphicsScene.
stickyFocus
(
)
¶
bool
另请参阅
PySide2.QtWidgets.QGraphicsScene.
style
(
)
¶
Returns the scene’s style, or the same as
style()
if the scene has not been explicitly assigned a style.
另请参阅
PySide2.QtWidgets.QGraphicsScene.
update
(
[
rect=QRectF()
]
)
¶
rect
–
QRectF
Schedules a redraw of the area
rect
on the scene.
另请参阅
PySide2.QtWidgets.QGraphicsScene.
update
(
x
,
y
,
w
,
h
)
¶
x
–
qreal
y
–
qreal
w
–
qreal
h
–
qreal
这是重载函数。
This function is equivalent to calling update(
QRectF
(
x
,
y
,
w
,
h
));
PySide2.QtWidgets.QGraphicsScene.
views
(
)
¶
Returns a list of all the views that display this scene.
另请参阅
PySide2.QtWidgets.QGraphicsScene.
wheelEvent
(
event
)
¶
event
–
QGraphicsSceneWheelEvent
此事件处理程序,对于事件
wheelEvent
, can be reimplemented in a subclass to receive mouse wheel events for the scene.
By default, the event is delivered to the topmost visible item under the cursor. If ignored, the event propagates to the item beneath, and again until the event is accepted, or it reaches the scene. If no items accept the event, it is ignored.
Note: See
items()
for a definition of which items are considered visible by this function.
另请参阅
PySide2.QtWidgets.QGraphicsScene.
width
(
)
¶
qreal
This convenience function is equivalent to calling
sceneRect()
..
另请参阅