2008-11-16 8 views
26

Estoy haciendo una pequeña interfaz gráfica de usuario para una aplicación en este momento usando wxPython.wxPython, establecer el valor de StaticText()

estoy usando wx.StaticText() para crear un lugar para celebrar algún texto, código de abajo:

content = wx.StaticText(panel, -1, "Text Here", style=wx.ALIGN_CENTRE) 

Tengo un botón cuando Recupera click en datos de MySQL, que estoy queriendo cambiar el valor de la StaticText() a la Datos MySQL o qué otra cosa podría usar para mantener los datos.

He intentado usar el método siguiente:

contents = wx.TextCtrl(bkg, style=wx.TE_MULTILINE | wx.HSCROLL) 
content.SetValue("New Text") 

Esto muestra la multa datos, pero después de cargar los datos que se pueden editar los datos y no quiero que esto.

Espero que les entiende lo que estoy tratando de hacer, Soy nuevo en Python :)

Saludos

Respuesta

20

wx.TextCtrl tiene un estilo llamado wx.TE_READONLY. Úselo para que sea de solo lectura.

Como un sidenode, puede usar el C++ wxWidgets Manual para wxPython también. Cuando se requiere un manejo especial para wxPython u otros puertos, el manual a menudo señala la diferencia.

+0

¡Salud! Funciona perfectamente – RailsSon

55

Si está utilizando un wx.StaticText() puede simplemente:

def __init__(self, parent, *args, **kwargs): #frame constructor, etc. 
    self.some_text = wx.StaticText(panel, wx.ID_ANY, label="Awaiting MySQL Data", style=wx.ALIGN_CENTER) 

def someFunction(self): 
    mysql_data = databasemodel.returnData() #query your database to return a string 
    self.some_text.SetLabel(mysql_data) 

Como litb mencionado, los documentos de wxWidgets son a menudo mucho más fácil de usar que el wxPython docs. Para ver que la función SetLabel() se puede aplicar a una instancia de wx.StaticText, debe subir la jerarquía del espacio de nombres en los documentos wxPython al wxWindow superclass, del cual se subclasifica wx.StaticText. Hay algunas cosas diferentes en wxPython de wxWidgets, y puede ser un desafío averiguar cuáles son. Afortunadamente, la mayoría de las veces, las diferencias son funciones de conveniencia que se han agregado a wxPython y no se encuentran en wxWidgets.

+2

Ciertamente me pregunté por qué nada como SetLabel estaba en los documentos wxPython (de wx.StaticText). +1 para borrar eso – Ariel

Cuestiones relacionadas