There are what, three or four different coordinate systems at play here?
Three. View coordinates, scene coordinates and item coordinates.
I'm coming from a reference point of just dealing with basic painting where (0,0) is always the top-left point
Then what you know translates directly to scene coordinates. On top of that is the view and scene can be moved freely in it so scene 0,0 and view 0,0 are not the same. Since you set alignment the scene is moved inside the view so that the top left most item is in the corner. This moves 0,0 of the scene outside of the view in your case.
Oh, and by the way, scene->addRect(50,50,20,20) does not draw rectangle at 50,50 like you said, it is drawing it at 0,0, every time
It adds item to scene and in scene coordinates it has position 0,0. If you print out item->pos() it will show 0,0 as items are always placed in the scene. What you see is the result of alignment that causes the scene to be shifted in view coordinates.
Pictures would really help here
Here you go. Note that those pictures show a view without alignment set, to show that scene and view 0,0 are not the same. The numbers are in scene coordinates.
If you do scene->addRect(50,50,20,20) the result is this:
[image: y4mbjxpF-egRb1JLzv_84-tnukFyHTeTijhszmf2wV48rmMUi8Z_JMLbkVv-xxeifSUxXD5fKgXcMBX-UQNOqim12uYMVcmHHhQKfY8RUVkv76MgWyW6g65u-_VcwGoaLkZcvnOiK-39i3ZGDrq4iArTQj2_aaCL4WVvHeNQ1U8ySvPock3GNaAyGTNh2Kj_GlaWWD89ZTzkX1h0fedltIv6g]
The dotted lines are the 0 axes of the scene. The red point is the item origin point and it's in 0,0 of the scene. All item transformations are done using that point. You set it via item->setPos(), item->setTransform() and the likes. The red rectangle is the relative bounding box of the item. In case of a QGraphicsRectItem it grows to encompass the actual black rectangle visible on the screen. That red rectangle is going to resize as you change the geometry of your rectangle via item->setRect(). The black box is the rectangle drawn by the item. It is set to have an origin at 50,50 in item's coordinates, so relative to the red point (item origin).
Now, if you do
auto rectItem = new QGraphicsRectItem(0,0,20,20);
rectItem->setPos(50,50);
scene->addItem(rectItem);
the result is:
[image: y4m2L2GpprocoPqa4raSH3y2BhM8wDFu7xn9GzkwL_f-o4y2Jeihwj1xAC_ZpedtA3aLjeQcIe2q6xxK0IBZGDSlctH0LWIpywv1PZZnCcn_5poj3ZLvwrcxToKme8gSD9RNWRVIinXZ7hyQX_diFKscPASjgd8gqzeVwPlVubm8IFl9Xlgvs0DNvhuVH8_d00XinjsuSuTQnzBwk4SXR2xZw]
This creates an item, again in 0,0 in scene coordinates then moves it to 50,50. The item itself draws a black rectangle at 0,0 in item coordinates.