Я пытаюсь сделать простую программу для рисования на python, используя pygame.
Я хочу, чтобы пользователь выбрал цвет, используя tkColorChooser.askcolor.
Диалог всплывает, когда пользователь нажимает b. Он отлично работает, когда пользователь выбирает цвет. Но если пользователь нажимает кнопку Отмена в окне askcolor, программа продолжает работать, но окно askcolor не закрывается.
Он остается открытым поверх другого окна с нажатой кнопкой Отмена.
Что я делаю не так?
Я публикую упрощенный код, где возникает проблема.
Я использую его под Linux Ubuntu 11.10, Python 2.7.2+, python-pygame 1.9.1release-0ubuntu4
Спасибо !!
#! /usr/bin/env python
import pygame
from Tkinter import *
import tkColorChooser
def main():
# Colors
black = (0,0,0)
yellow = (252, 229, 3)
bgcolor = black
picturecolor = yellow
running = 1
# Initiate the screen
screen = pygame.display.set_mode((0, 0), pygame.RESIZABLE)
screen.fill(bgcolor)
pygame.draw.circle(screen, picturecolor, (200,200), 10, 0)
pygame.display.flip()
# Initiates the Tk
root = Tk()
root.withdraw()
while running:
event = pygame.event.poll()
if event.type == pygame.KEYUP:
if event.key == pygame.K_b:
ctuple,cstr = tkColorChooser.askcolor(initialcolor=bgcolor, title = 'Choose picture color')
if ctuple != None:
picturecolor = ctuple
screen.fill(bgcolor)
pygame.draw.circle(screen, picturecolor, (200,200), 10, 0)
pygame.display.flip()
if event.key == pygame.K_x:
running = 0
if event.type == pygame.QUIT:
running = 0
if __name__=="__main__":
main()