ive bekam zwei separate Programme, die beide ich habe von Stackoverflow, und beide Werke auf ihre eigenen hier ist der erste:Python tkinter Zeichenprogramm
import tkinter as tk
import os
w, h = 500, 200
# Add a couple widgets. We're going to put pygame in `embed`.
root = tk.Tk()
embed = tk.Frame(root, width=w, height=h)
embed.pack()
text = tk.Button(root, text='Blah.')
text.pack()
# Tell pygame's SDL window which window ID to use
os.environ['SDL_WINDOWID'] = str(embed.winfo_id())
# The wxPython wiki says you might need the following line on Windows
# (http://wiki.wxpython.org/IntegratingPyGame).
#os.environ['SDL_VIDEODRIVER'] = 'windib'
# Show the window so it's assigned an ID.
root.update()
# Usual pygame initialization
import pygame as pg
pg.display.init()
screen = pg.display.set_mode((w,h))
pos = 0
while 1:
# Do some pygame stuff
screen.fill(pg.Color(0,0,0))
pos = (pos + 1) % screen.get_width()
pg.draw.circle(screen, pg.Color(255,255,255), (pos,100), 30)
# Update the pygame display
pg.display.flip()
# Update the Tk display
root.update()
Dieses Programm sollte ein pygame Fenster in einen tkinter Rahmen einbetten, es wirkt wie ein Zauber ist, hier das zweite Programm:
import pygame, random
screen = pygame.display.set_mode((800,600))
draw_on = False
last_pos = (0, 0)
color = (0, 0, 0)
white = (255,255,255)
radius = 10
screen.fill(white)
def roundline(srf, color, start, end, radius=1):
dx = end[0]-start[0]
dy = end[1]-start[1]
distance = max(abs(dx), abs(dy))
for i in range(distance):
x = int(start[0]+float(i)/distance*dx)
y = int(start[1]+float(i)/distance*dy)
pygame.draw.circle(srf, color, (x, y), radius)
try:
while True:
e = pygame.event.wait()
if e.type == pygame.QUIT:
raise StopIteration
if e.type == pygame.MOUSEBUTTONDOWN:
pygame.draw.circle(screen, color, e.pos, radius)
draw_on = True
if e.type == pygame.MOUSEBUTTONUP:
draw_on = False
if e.type == pygame.MOUSEMOTION:
if draw_on:
pygame.draw.circle(screen, color, e.pos, radius)
roundline(screen, color, e.pos, last_pos, radius)
last_pos = e.pos
pygame.display.flip()
except StopIteration:
pass
pygame.quit()
der zweite ein pygame Bildschirm auf wich Anzeige sollten Sie alles, was Sie gerne ziehen.
Ich bin kein sehr expierenced pygame Programmierer aber ich habe expierence tkinter verwenden, was ich tun möchte, ist ein Programm auf Wich machen Sie zeichnen können, aber es muss auch tkinter Tasten haben, Eintrag des usw.
beide Programme funktioniert perfekt gut allein, aber wenn ich den pygame Teil im ersten Programm ersetzen will, funktioniert alles gut außer, ich kann nichts zeichnen, die Schaltfläche nicht angeklickt werden, und ich kann nicht über x, das tut macht überhaupt keinen Sinn, also denke ich, dass es vielleicht etwas falsches gibt, ich kann das Problem nicht so finden, dass ich jeden Rat schätze.
danke
Sag nur, du solltest wirklich keine Ausnahmen aufstellen und try-catch verwenden, um aus Loops auszubrechen. – Alex
ok, ich nehme es heraus, ich habe es aber nicht dort hingelegt, es war was ich vom Programm bekommen habe, ich habe es gerade heruntergeladen es :-) –