wxpython: haga clic derecho con el mouse no configura el enfoque -- python campo con focus campo con wxpython campo con copy-paste campo con right-click camp Relacionados El problema

wxPython: Right-click with mouse does not set focus


1
vote

problema

Español

MI GUI Actualmente tiene actualmente Haz clic derecho en Opciones (Cortar, Copiar, Pegar)

Sin embargo, me doy cuenta de que haga clic con el botón derecho en Mi Barra de búsqueda (wx.searchctrl) para intentar y pegar, el enfoque no se establece en la barra de búsqueda, por lo que no puedo pegar.

  ScrollView8  

Aquí está mi idea: Obtenga la posición del mouse cuando haga clic con el botón derecho. Luego, use esa posición para configurar el enfoque en el CTRL que sostiene esa posición.

¿Es esto posible? ¿O hay una solución mejor?

Original en ingles

My GUI currently has right-click options (Cut, Copy, Paste)

However, I realize when I right-click over my search bar (wx.SearchCtrl) to try and paste, focus is not set onto the search bar, therefore I cannot paste.

self.panel.Bind(wx.EVT_CONTEXT_MENU, self.OnShowPopup)  def OnShowPopup(self, event):    """ Obtain right-click selection """    pos = event.GetPosition()    pos = self.panel.ScreenToClient(pos)    self.panel.PopupMenu(self.rightClickMenu, pos)  def OnPopupItemSelected(self, event):    """ Display right-click menu """    item = self.rightClickMenu.FindItemById(event.GetId())    text = item.GetText()    elif text == "Paste":       self.OnPaste()  def OnPaste(self, event = None):    """ Paste content from clipboard """    text = self.FindFocus()    if text:       if isinstance(text, wx.TextCtrl):          text.Paste() 

Here is my idea: Get the position of mouse when right-clicked. Then use that position to set focus on the Ctrl that holds that position.

Is this possible? Or is there a better solution?

              

Lista de respuestas

1
 
vote
  def OnShowPopup(self, event):       """ Obtain right-click selection """        pos = event.GetPosition()       pos = self.panel.ScreenToClient(pos)       event.GetEventObject().SetFocus()       self.panel.PopupMenu(self.rightClickMenu, pos)   

funcionaría bien, creo que ...

 
def OnShowPopup(self, event):       """ Obtain right-click selection """        pos = event.GetPosition()       pos = self.panel.ScreenToClient(pos)       event.GetEventObject().SetFocus()       self.panel.PopupMenu(self.rightClickMenu, pos) 

would work fine I think ...

 
 
         
         
1
 
vote
vote
La mejor respuesta
 

GUARDAR EL OBJETO DE DONDE SE HACE HACIZADO DESDE DIRECTAMENTO, ENTONCES SETFOCUS después de seleccionar Pegar. La razón por la que Event.GetEventObject (). SetFocus () no funciona es más probable porque después de seleccionar la pasta del popupmenu, el TextCtrl pierde el enfoque. Así que el texto no imprimiría allí

  def OnShowPopup(self, event):    """ Obtain right-click selection """    pos = event.GetPosition()    pos = self.panel.ScreenToClient(pos)    self.rightClickSelected = event.GetEventObject()    self.panel.PopupMenu(self.rightClickMenu, pos)  def OnPaste(self, event = None):    """ Paste content from clipboard """    self.rightClickSelected.SetFocus()    if isinstance(self.rightClickSelected, wx.TextCtrl):       self.rightClickSelected.Paste()   
 

Save the object of where right-clicked was performed, then setFocus after selecting Paste. The reason why event.GetEventObject().SetFocus() does not work is most likely because after selecting Paste from the PopupMenu, the TextCtrl loses focus. So text would not print there

def OnShowPopup(self, event):    """ Obtain right-click selection """    pos = event.GetPosition()    pos = self.panel.ScreenToClient(pos)    self.rightClickSelected = event.GetEventObject()    self.panel.PopupMenu(self.rightClickMenu, pos)  def OnPaste(self, event = None):    """ Paste content from clipboard """    self.rightClickSelected.SetFocus()    if isinstance(self.rightClickSelected, wx.TextCtrl):       self.rightClickSelected.Paste() 
 
 

Relacionados problema

2  jquery en vivo haciendo clic derecho  ( Jquery live right click ) 
¿Cómo puedo usar la función JQery Live como un botón derecho? He usado este complemento: http://abeautifulsite.net/ 2008/05 / jQuery-Click-Click-Plugin Pa...

3  Haga clic con el botón derecho en un cuadro de lista en una aplicación Silverlight 4  ( Right click on a listbox in a silverlight 4 app ) 
Estoy tratando de implementar lo que solía dar por sentado en las aplicaciones de WinForms. Soy un silverlight noob, así que, con suerte, todo esto es element...

2  ¿Cómo habilitar el menú contextual del navegador en dojox.grid.datagrid?  ( How to enable the browser context menu in dojox grid datagrid ) 
Estoy tratando de hacer que el menú contextual del navegador funcione dentro de un dojox.grid.datagrid. Cuando haga clic con el botón derecho en la cuadrícula...

63  Haga clic con el botón derecho para seleccionar una fila en un DataGridView y mostrar un menú para eliminarlo  ( Right click to select a row in a datagridview and show a menu to delete it ) 
Tengo pocas columnas en mi DataGridView, y hay datos en mis filas. Vi pocas soluciones aquí, ¡pero no puedo combinarlas! Simplemente una forma de hacer clic...

2  Evitando que las imágenes web se tomen  ( Preventing web images from being taken ) 
He estado mirando a su alrededor para ver si existe una buena manera de evitar que los espectadores usen sus opciones de clic derecho para descargar imágenes ...

3  Eliminar "Guardar objetivo como ..." de IE  ( Remove save target as from ie ) 
¿Hay alguna manera de eliminar "Guardar blanco como" del menú de clic derecho de Internet Explorer usando políticas de grupo o hacks de registro? ¿No es así, ...

5  Selenium Webdriver: ¿cómo sostener el botón derecho del ratón?  ( Selenium webdriver how to holds down the right mouse button ) 
Uso de Selenium 2.0 WEBDRIVER (JAVA), necesito probar alguna navegación (Girar, Pan ...) Necesito poder sostener el botón derecho mientras mueve el mouse. ...

3  Wpf dragdrop.dodragdrop (para un clic derecho?)  ( Wpf dragdrop dodragdrop for a right click ) 
En WPF, quiero iniciar una caída de arrastrar usando el clic derecho. Algo como el explorador de Windows, haga clic con el botón derecho, muévase ligeramente ...

121  Menú de contexto de clic derecho para DataGridView  ( Right click context menu for datagridview ) 
Tengo un DataGridView en una aplicación .NET WINFORM. Me gustaría justar la contracción en una fila y tener un menú aparecer. Luego me gustaría seleccionar co...

0  Javafx: Haz clic derecho en Mac (Control + Click) No se detecta. ¿Alguna solución?  ( Javafx right click on mac control click not being detected any fixes ) 
Tengo una vista de lista con elementos que le estoy permitiendo que se le haga doble clic y se hace clic con el botón derecho (para eliminar el artículo). ¿Po...




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