¿Cómo detectar cierto color del círculo, en Tkinter? -- python campo con tkinter camp Relacionados El problema

How to detect certain color of circle, in Tkinter?


1
vote

problema

Español

Si tuviera que crear un círculo, y tenerlo en colores iterir con el clic de un botón como se muestra en el código a continuación:

  sphinx-build -M html . _build8  

¿Cómo almacenaría cualquier color que el círculo estuviera en un momento dado, que estaba contenido en la lista de iteración? Por ejemplo, si presioné un botón dos veces y aterrizé en verde, ¿cómo podría decir que McIRCLE ahora es verde y lo almacena como una variable?

Ah, y también, si fue más fácil, hay un método para pasar a través de cada píxel del círculo, y si detecta un cierto valor RGB, envía un indicador para convertir una cierta variable igual a cualquier color del valor RGB estaba dentro del círculo?

Original en ingles

If I were to create a circle, and have it iterate colors with the click of a button as shown in code below:

color_iteration1 = itertools.cycle(('blue', 'green', 'orange', 'red', 'yellow')) color_iteration2 = itertools.cycle(('blue', 'green', 'orange', 'red',  'yellow')) color_iteration3 = itertools.cycle(('blue', 'green', 'orange', 'red', 'yellow')) color_iteration4 = itertools.cycle(('blue', 'green', 'orange', 'red', 'yellow'))  def callback1(): mcircle1 = mycanvas.create_oval(10,620,86,675, outline='#000000',fill=next(color_iteration1))  def callback2(): mcircle2 = mycanvas.create_oval(100,620,176,675, outline='#000000',fill = next(color_iteration2))  def callback3(): mcircle3 = mycanvas.create_oval(190,620,266,675, outline='#000000',fill = next(color_iteration3))  def callback4(): mcircle4 = mycanvas.create_oval(280,620,356,675, outline='#000000',fill = next(color_iteration4))  B1 = Button(root,text='B1',command =callback1) B2 = Button(root,text='B2',command =callback2) B3 = Button(root,text='B3',command =callback3) B4 = Button(root,text='B4',command =callback4) 

How would I store whatever color the circle was at any given time, that was contained in the iterate list. For example if I pressed a button twice and landed on green, how could I say that mcircle is now green and store it as a variable?

Oh and also if it were easier, is there a method for going through each pixel of the circle, and if it detects a certain RGB value, it sends off a flag to turn a certain variable equal to whatever color the RGB value was within the circle?

     

Lista de respuestas

2
 
vote
vote
La mejor respuesta
 

Si mantiene la referencia para el artículo (el valor de retorno de create_oval ), puede obtener la opción del artículo usando Canvas.itemcget :

  oval = canvas.create_oval(10, 10, 20, 20, fill='red') canvas.itemcget(oval, 'fill')  # => Returns 'red'   
 

If you keep the reference for the item (the return value of create_oval), you can get option of the item using Canvas.itemcget:

oval = canvas.create_oval(10, 10, 20, 20, fill='red') canvas.itemcget(oval, 'fill')  # => Returns 'red' 
 
 

Relacionados problema

0  Conciliar las coordenadas de píxeles en la imagen PIL lienzo tkinter y (Phyton)  ( Reconciling pixel coordinates on tkinter canvas and pil image python ) 
Tengo un formulario (en formato .png) con cuadros de texto en blanco (por lo general rellenados a mano). Me gustaría rellenar las cajas con texto. Para hace...

10  ¿Hay alguna manera de grabar (deshabilitar) un marco de tkinter?  ( Is there a way to gray out disable a tkinter frame ) 
Quiero crear una GUI en Tkinter con dos marcos, y haga que el marco inferior se haga gris hasta que ocurra algún evento. a continuación es un código de eje...

0  Python 3 y Tkinter- Cómo controlar un bucle de prueba  ( Python 3 and tkinter how to control a quiz loop ) 
Estoy seguro de que la respuesta a esto es obvia, pero no puedo verlo! Tengo un cuestionario muy básico (usando Tkinter y Python 3) que utiliza 2 matrices, se...

-1  No se puede mostrar el menú personalizado en la ventana  ( Cant show the custom menu on window ) 
Tengo una clase de menú personalizada heredada de Tkinter.Menu . Lo uso en la ventana raíz como esto: root = Tk() menu = customMenu(root) root.config(men...

2  Python / Tkinter: ¡Estira una imagen horizontalmente?  ( Python tkinter stretch an image horizontally ) 
¿Es posible estirar una imagen horizontalmente? Caso de uso: Tengo una imagen de un píxel ancho (60 píxeles de alto) que me gustaría estirar horizontalmente...

8  Desplazando múltiples cuadros de lista de tkinter juntos  ( Scrolling multiple tkinter listboxes together ) 
Tengo múltiples cuadros de lista de Tkinter que me he desplazado usando una sola barra de desplazamiento, pero también me gustaría que se desplácese por la ac...

0  Python Tkinter desplazando dos widgets de texto al mismo tiempo con las teclas de flecha  ( Python tkinter scrolling two text widgets at the same time with arrow keys ) 
Estoy construyendo una GUI que tiene 2 widgets de texto. (Quiero decir que tiene un montón de cosas, pero el bien de esta pregunta le permite dejarlo en 2 wid...

9  Módulo de Python Tkinter que no muestra la salida  ( Python tkinter module not showing output ) 
Estoy tratando de aprender Python e intentar algo GUI en Python y encontré este módulo Tkinter. Mi código se ejecuta, pero la ventana no aparece cuando corro....

21  ¿Cómo ejecuto unittest en una aplicación Tkinter?  ( How do i run unittest on a tkinter app ) 
Acabo de comenzar a aprender sobre TDD y estoy desarrollando un programa usando un tkinter gui. El único problema es que una vez que se llama el método /th...

275  Cree una aplicación gui multiplataforma directamente ejecutable con Python  ( Create a directly executable cross platform gui app using python ) 
Python trabaja en múltiples plataformas y se puede usar para aplicaciones de escritorio y web, por lo tanto, concluyo que hay alguna forma de compilarla en un...




© 2022 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos