Skip to content

Commit 1e01e74

Browse files
committed
tkinter-wminfo
1 parent 4c08af5 commit 1e01e74

File tree

5 files changed

+74
-5
lines changed

5 files changed

+74
-5
lines changed

pygame/mask-collision/ball.png

16.9 KB
Loading

pygame/mask-collision/pygame-mask-collision-image.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,17 +24,18 @@
2424

2525
class Image(pygame.sprite.Sprite):
2626

27-
def __init__(self, screen_rect, angle=15, color=(255,0,0), rotate=5):
27+
def __init__(self, screen_rect, image, angle=15, color=(255,0,0), rotate=5, resize=(100, 200)):
2828
super().__init__()
2929

3030
self.angle = angle
3131
self.rotate = rotate
3232

33-
self.original_image = pygame.image.load('player.png').convert()
33+
self.original_image = pygame.image.load(image).convert()
3434
self.colorkey = self.original_image.get_at((0,0))
3535
#self.colorkey = (255, 212, 55)
3636

37-
self.original_image = pygame.transform.scale(self.original_image, (100, 200))
37+
if resize:
38+
self.original_image = pygame.transform.scale(self.original_image, resize)
3839

3940
self.change_angle = pygame.time.get_ticks()
4041

@@ -80,8 +81,8 @@ def draw(self, screen):
8081

8182
# --- objects ---
8283

83-
img1 = Image(screen_rect, 45, (0,255,0), 0)
84-
img2 = Image(screen_rect, 0, (0,255,255), 0)
84+
img1 = Image(screen_rect, 'player.png', 45, (0,255,0), 5)
85+
img2 = Image(screen_rect, 'ball.png', 0, (0,255,255), 0, (50,50))
8586

8687
# --- mainloop ---
8788

tkinter/wminfo/README.md

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
2+
### position-on-screen-and-in-parent.py
3+
Code shows `canvas` position on screen and in parent `Frame` (not in `root`).
4+
5+
![#1](images/screenshot.png?raw=true)
6+
7+
8+
Example result
9+
10+
```
11+
--- before mainloop start ---
12+
13+
root.geometry: 1x1+0+0
14+
canvas.geometry: 1x1+0+0
15+
canvas.width : 1
16+
canvas.height: 1
17+
canvas.x: 0
18+
canvas.y: 0
19+
canvas.rootx: 0
20+
canvas.rooty: 0
21+
22+
--- after mainloop start ---
23+
24+
root.geometry: 380x303+770+462
25+
canvas.geometry: 380x267+0+18
26+
canvas.width : 380
27+
canvas.height: 267
28+
canvas.x: 0
29+
canvas.y: 18
30+
canvas.rootx: 770
31+
canvas.rooty: 498
32+
```
33+
34+
35+
`Canvas` position on screen is `(770, 498)`, in `Frame` is `(0, 18)` but in `root` is `(0, 32)`
36+
(root position on screen is `(770, 462)` so `(770, 498)` minus `(770, 462)` gives `(0, 32)`)

tkinter/wminfo/images/screenshot.png

8 KB
Loading
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
#!/usr/bin/env python3
2+
3+
import tkinter as tk
4+
5+
def callback():
6+
print(' root.geometry:', root.winfo_geometry())
7+
print('canvas.geometry:', canvas.winfo_geometry())
8+
print('canvas.width :', canvas.winfo_width())
9+
print('canvas.height:', canvas.winfo_height())
10+
print('canvas.x:', canvas.winfo_x())
11+
print('canvas.y:', canvas.winfo_y())
12+
print('canvas.rootx:', canvas.winfo_rootx())
13+
print('canvas.rooty:', canvas.winfo_rooty())
14+
15+
root = tk.Tk()
16+
17+
tk.Label(root, text='SOME WIDGETS IN ROOT').pack()
18+
19+
frame = tk.Frame(root)
20+
frame.pack()
21+
tk.Label(frame, text='SOME WIDGETS IN FRAME').pack()
22+
23+
canvas = tk.Canvas(frame, bg='green')
24+
canvas.pack()
25+
26+
print('\n--- before mainloop start ---\n')
27+
callback()
28+
29+
print('\n--- after mainloop start ---\n')
30+
root.after(100, callback)
31+
32+
root.mainloop()

0 commit comments

Comments
 (0)