Trucos sobre manejo de softwarelibre y gnu linux. También a los programas que hago en gambas3, python, java, etc.... Consejos y trucos sobre otros programas: excel, word, internet, instalación de programas, Arduino y demás....
El comando screenfetch, nos muestra información de nuestro equipo (ram, cpu, gpu) y distribución gnu/linux (nombre de la distro, kernel, tiempo que lleva encendido el ordenador, paquetes instalados, shell que usamos, resolucion, gestos de ventanas, tema de iconos y GTK y tipo de letra)
Información del comando screenfetch de mi sistema....
Actualizando KDE desde PPA: resolviendo problema de embeber consola en krusader
Krusader es una de mis aplicaciones preferidas a la hora de administrar archivos en mi PC. La trae el escritorio KDE, pero la he podido instalar con también en otros escritorios (xfce por ejemplo). En caso es que mi distro actual (linux mint 16.04), la versión que esta en repositorios es la 2.4.0 que tiene un pequeño bug a la hora de embeber la consola dentro de los paneles de la propia aplicación:
Consola embebida dentro de los paneles de Krusader
Nota: En linux mint 16.04, da un error al embeber la consola, la captura es de la version 2.5 de krusader
¿como resolvemos este problema? Añadiendo el siguiente PPA a nuestro sistema:
Una forma de extender el lenguaje gambas3, es crear nuevos controles que faciliten el trabajo de los programadores, a la hora de crear interfaces y/o programas. Este control es un ejemplo, sobre partiendo de uno existente (el button), se crea otro que nos muestra la fecha que le hayamos pasado en su propiedad fecha de la siguiente manera: día de la semana en texto, día numéricamente, y mes. Ademas si te sitúas encima de el, te sale el tooltip con la fecha:
Para redibujar el interior del botón, el código es el siguiente:
Public Sub _new() $hDA = New DrawingArea(Me) As "da" Me.Proxy = $hDA End Public Sub da_Draw() Dim hImage As New Image Dim iFlag As Integer = Style.StateOf(Me) Style.PaintButton(0, 0, $hDA.W, $hDA.H, $bState, iFlag, False) If Me.W > Me.H Then Me.H = Me.W Else Me.W = Me.H Endif Style.PaintButton(0, 0, $hDA.W, $hDA.H, $bState, iFlag, False) Draw.RichText(Html(WeekDatText(Me.fecha)), 0, 0, Me.W, Me.H / 3, Align.Center) Draw.RichText(Html(Day(Me.fecha)), 0, Me.H / 3, Me.W, Me.H * 1 / 3, Align.Center) Draw.RichText(Html(MonthText(Me.fecha)), 0, Me.H * 2 / 3, Me.W, Me.H / 3, Align.Center) End
Y las funciones que convierten la fecha en texto (dia, mes) son:
Public Function WeekDatText(fecha As Date) As String Dim ArrayDay As String[] ArrayDay = [("Lunes"), ("Martes"), ("Miercoles"), ("Jueves"), ("Viernes"), ("Sabado"), ("Domingo")] Return Choose(WeekDay(fecha), ArrayDay[0], ArrayDay[1], ArrayDay[2], ArrayDay[3], ArrayDay[4], ArrayDay[5], ArrayDay[6]) End Public Function MonthText(fecha As Date) As String Dim ArrayMonth As String[] ArrayMonth = [("Enero"), ("Febrero"), ("Marzo"), ("Abril"), ("Mayo"), ("Junio"), ("Julio"), ("Agosto"), ("Septiembre"), ("Octubre"), ("Noviembre"), ("Diciembre")] Return ArrayMonth[Month(fecha) - 1] End Private Function Fecha_Read() As Date If hfecha = Null Then hfecha = Now Me.Tooltip = Str(Format(hfecha, "dd-mm-yyyy")) Endif Return hfecha End
Mediante el control Webview (que proviene del componente gb.qt4/5.webkit), gambas nos proporciona la posibilidad de usar script y librerias realizadas en javascript.
Este es un ejemplo de uso de la libreria jquery.ganttView, para realizar diagramas gantt, los cuales podemos definir desde un textarea y ver el resultado del gráfico dentro del control Webview:
Os dejo un video donde podéis ver como interactuar con el programa:
Escuchando el podcast "Aprende a Programar" de Luis Peris (https://www.ivoox.com/003-de-empresario-a-programador-audios-mp3_rf_18052924_1.html), estuvieron comentando el tipo de letra font awesome, que es muy práctica para las páginas web, donde tengamos que poner logotipos de twiter, facebook, youtube etc.. ya que vienen definido como letras, que se pueden escalar sin problemas de pixelados, y apenas van a tener peso de kbytes en el sitio en la página web (muchísimo menos que las imágenes).
Os dejo una captura, y los enlaces donde podéis conseguirla
Como hacer un formulario de "espera" con animación
Algunas veces en nuestras aplicaciones tenemos que hacer una tarea que desconocemos cuanto tiempo va a tardar. Si mientras se realiza esa tarea, no mostramos nada al usuario, puede dar la impresión que la aplicación se ha colgado. La forma hace que el usuario no se lleve esa impresión, es mostra algo (por ejemplo una animación (por ejemplo).
En el siguiente video os explico como hacerlo.
Como veis, se trata de usar las propiedades de la clase process (proceso):
Public prsBatch As Process ....
prsBatch = Shell "sleep 10" '..... 'comando que no sabemos cuanto dura su tiempo de ejecucion
Inc Application.busy While prsBatch.state = prsBatch.running Wait 0.1 dibujapuntitos(etiqueta) dibujaaspa(etiquetaspa) dibujaDibujo(Cuadrodibujo) Wend Dec application.busy ......
La funcioón dibujaDibujo(), se encarga de ir cambiando el dibujo de un control picturebox, segun el valor de un contador:
Private Sub dibujaDibujo(dibuj As PictureBox) contadorDibujo += 2 Select Case contadorDibujo Case 1 To 4 dibuj.Picture = Picture.Load("01.png") dibuj.refresh() Case 5 To 9 dibuj.Picture = Picture.Load("02.png") dibuj.refresh() Case 10 To 14 dibuj.Picture = Picture.Load("03.png") dibuj.refresh() Case 15 To 19 dibuj.Picture = Picture.Load("04.png") dibuj.refresh() Case 20 To 24 dibuj.Picture = Picture.Load("05.png") dibuj.refresh() Case 25 To 29 dibuj.Picture = Picture.Load("06.png") dibuj.refresh() Case 30 To 34 dibuj.Picture = Picture.Load("07.png") dibuj.refresh() Case 35 To 39 dibuj.Picture = Picture.Load("08.png") dibuj.refresh() Case Else dibuj.Picture = Picture.Load("01.png") dibuj.refresh() contadorDibujo = 0 End Select End
gbCluedo, es una variante del juego Cluedo, para un solo jugador, donde deberás investigar haciendo sugerencias para descubrir cual fue el asesino del Dr.Lemon, haciendo preguntas sobre personaje, lugar y arma..