![]() |
|||||
|
Python ::: wxPython ::: Eventos e Tratadores de Eventos |
Como tratar o evento wx.EVT_PAINT em suas aplicações wxPython - Interfaces gráficas no PythonQuantidade de visualizações: 197 vezes |
Nesta dica mostrarei como podemos tratar o evento wx.PaintEvent em suas aplicações wxPython. Este evento é disparado todas as vezes que uma janela é redesenhada, ou seja, quando fazemos o redimensionamento da janela ou a maximizamos. Veja o código completo para uma aplicação wxPython na qual interceptamos o evento wx.PaintEvent para exibir a hora atual na janela, usando a função dc.DrawText(). Note o uso da função strftime() para formatar o conteúdo de um objeto datetime. # vamos importar o framework wxPython import wx # mais alguns imports necessários from datetime import datetime import locale # classe que representará a janela principal da # aplicação wxPython class JanelaPrincipal(wx.Frame): # o método construtor def __init__(self, *args, **kw): # chama o construtor da classe wx.Frame super(JanelaPrincipal, self).__init__(*args, **kw) # Configurações do usuário locale.setlocale(locale.LC_ALL, '') # chama a função que inicializa a GUI self.InicializarGUI() # método usado para gerenciar o evento OnPaint def OnPaint(self, e): # Obtém um datetime da data e hora atual hoje = datetime.today() # vamos obter o contexto de desenho dc = wx.PaintDC(self) texto = "Evento OnPaint gerado às: {0}".format( hoje.strftime("%X")) dc.DrawText(texto, 20, 20) # função que inicializa a GUI do programa def InicializarGUI(self): self.Bind(wx.EVT_PAINT, self.OnPaint) # definimos o tamanho da janela self.SetSize((450, 350)) # define a cor de fundo da janela (Windows 10) self.SetBackgroundColour(wx.WHITE) # definimos o título da janela self.SetTitle('O evento OnPaint') # e centralizamos a janela self.Centre() # função principal do programa Python def main(): # vamos criar a aplicação wxPython app = wx.App() janela_principal = JanelaPrincipal(None) janela_principal.Show() app.MainLoop() if __name__ == "__main__": main() |
Python ::: Pandas Python Library (Biblioteca Python Pandas) ::: DataFrame |
Como acessar uma linha específica em um DataFrame do Pandas da linguagem Python usando o método iloc()Quantidade de visualizações: 11243 vezes |
Em várias situações nós precisamos investigar o conteúdo de uma determinada linha, ou seja, um registro específico contido em um DataFrame do Pandas. Para isso podemos usar o método iloc() do objeto DataFrame. Este método recebe um valor inteiro representando o índice da linha a ser retornada. É possível também fornecer uma list contendo vários índices, e até mesmo intervalos, mas isso é assunto para outras dicas. O retorno do método é uma Series ou um DataFrame, dependendo dos parâmetros usados. Vamos ver um exemplo? Analise o código a seguir: # importamos a biblioteca Pandas import pandas as pd def main(): # vamos carregar os dados do arquivo .csv dados = pd.read_csv("emprestimos.csv", delimiter=";") # vamos mostrar o DataFrame resultante print(dados) # agora vamos mostrar o conteúdo da terceira linha linha = dados.iloc[2] # mostramos o conteúdo da terceira linha print("\nConteúdo da terceira linha:\n") print(linha) if __name__== "__main__": main() Ao executarmos este código nós teremos o seguinte resultado: id nome idade sexo renda valor parc pont ap 0 1 HELENA508 39 F 6500 8000 6 87 S 1 2 JESSICA631 65 F 3000 500 48 2 N 2 3 FELIPE768 39 M 10200 20000 24 40 S 3 4 AMANDA515 90 F 800 1500 30 87 N 4 5 LAURA312 61 F 1800 15000 50 8 N 5 6 CARLOS291 84 M 970 11000 6 59 N 6 7 CARLOS859 64 F 970 500 12 1 N Conteúdo da terceira linha: id 3 nome FELIPE768 idade 39 sexo M renda 10200 valor 20000 parc 24 pont 40 ap S Name: 2, dtype: object Veja que o conteúdo da linha é exibido na vertical. Se quisermos exibí-lo na horizontal, basta passarmos o índice da linha como uma list. Veja: # agora vamos mostrar o conteúdo da terceira linha linha = dados.iloc[[2]] Agora o resultado será: Conteúdo da terceira linha: id nome idade sexo renda valor parc pont ap 2 3 FELIPE768 39 M 10200 20000 24 40 S Para testarmos se o retorno do método iloc() foi mesmo uma Series, basta usarmos a função type() do Python: # vamos checar o retorno do método iloc() linha = dados.iloc[[2]] print("Tipo do retorno:", type(linha)) Este código exibirá um resultado parecido com: Tipo do retorno: <class 'pandas.core.frame.DataFrame'> |
PHP ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes) |
Como retornar a quantidade de elementos em um array PHP usando a função sizeof()Quantidade de visualizações: 17403 vezes |
Em várias ocasiões nós precisamos retornar o tamanho de um vetor em PHP, ou seja, a quantidade de elementos do array. Para isso nós podemos usar a função sizeof(). Veja a seguir um exemplo de seu uso: <?php /* Este exemplo mostra como obter a quantidade de elementos em um array usando sizeof(). */ $pessoas[0] = "Carlos"; $pessoas[1] = "Juliana"; $pessoas[2] = "Igor"; $pessoas[3] = "Marcelo"; $pessoas[4] = "Amélia"; $tam = sizeof($pessoas); echo "O array contém " . $tam . " elementos."; ?> Ao executar este código PHP nós teremos o seguinte resultado: O array contém 5 elementos. |
Java ::: Fundamentos da Linguagem ::: Modificadores |
Como usar o modificador synchronized da linguagem JavaQuantidade de visualizações: 24045 vezes |
O modificador synchronized tem seu uso e importância destacados quando várias threads (fluxos de execução) estão sendo executadas em um programa. Tais threads podem tentar acessar métodos de uma ou mais classes ao mesmo tempo. No entanto, pode ser necessário planejarmos o sistema de forma que determinados métodos possam ser acessados por somente uma thread de cada vez, talvez para garantir a integridade de valores das diversas variáveis envolvidas no processo. É aqui que o modificador synchronized é usado. Ao marcarmos um método como synchronized, o sistema de execução Java garantirá que apenas uma thread de cada vez acesse tal método. Se outras threads tentarem fazer o mesmo, elas serão colocadas em espera até que a thread atual finalize seu trabalho e libere o método. Um exemplo de aplicação do modificador synchronized pode ser visto em uma classe Pilha. Como sabemos, esta estrutura de dados possui métodos para inserir um novo item no topo da pilha e para removê-lo do topo (lembra? LIFO: Last In First Out). Ora, para evitar que uma thread remova o elemento do topo ao mesmo tempo em que outra está tentando inserir, tais métodos devem ser marcados como synchronized. Isso evitará que os dados sejam corrompidos. |
C ::: Desafios e Lista de Exercícios Resolvidos ::: Métodos, Procedimentos e Funções |
Exercício Resolvido de C - Escreva um programa que solicite dois números do tipo inteiro distintos ao usuário e que apresente na tela o maior delesQuantidade de visualizações: 669 vezes |
Pergunta/Tarefa: Escreva um programa que solicite dois números do tipo inteiro distintos ao usuário e que apresente na tela o maior deles. Esse programa deve possuir uma função para verificar qual é o maior número. Atenção: seu código deverá assegurar que os dois números informados pelo usuário sejam diferentes. Exiba uma mensagem na tela caso isso acontecer. Sua saída deverá ser parecida com: Informe o primeiro número inteiro: 6 Informe o segundo número inteiro: 3 O maior número é: 6 Veja a resolução comentada deste exercício em C: #include <stdio.h> #include <stdlib.h> #include <locale.h> // protótipo da função que receberá dois números inteiros // e retornará o maior deles int maior_numero(int num1, int num2); // função principal do programa int main(int argc, char *argv[]){ setlocale(LC_ALL,""); // para acentos do português // variáveis usadas na resolução do problema int num1, num2, maior; // vamos pedir para o usuário informar os dois números printf("Informe o primeiro número inteiro: "); scanf("%d", &num1); printf("Informe o segundo número inteiro: "); scanf("%d", &num2); // os números são iguais? if(num1 == num2){ printf("Erro. Os dois números são iguais."); } else{ // vamos chamar a função para obter o número maior maior = maior_numero(num1, num2); printf("O maior número é: %d", maior); } printf("\n\n"); system("PAUSE"); return 0; } // função que receberá dois números inteiros e retornará // o maior deles int maior_numero(int num1, int num2){ // o primeiro número é maior que o segundo? if(num1 > num2){ return num1; } else{ return num2; } } |
Python ::: Fundamentos da Linguagem ::: Passos Iniciais |
Python para iniciantes - Como importar módulos e identificadores Python usando a instrução import...asQuantidade de visualizações: 7891 vezes |
Quando importamos módulos para nossos programas, a linguagem Python permite que alteremos os nomes dos módulos. Isso pode ser feito com a instrução import...as. Veja:# importa o módulo math com outro nome import math as matematica def main(): # usa o método ceil do namespace matematica print("Valor arredondado: ", matematica.ceil(8.12)) if __name__== "__main__": main() Ao executar este código nós teremos o seguinte resultado: Valor arredondado: 9 É possível importar com outros nomes os métodos e identificadores de um módulo. Veja: # importa o ceil com outro nome from math import ceil as arredondar def main(): # usa o método arredondar print("Valor arredondado: ", arredondar(8.12)) if __name__== "__main__": main() |
Java ::: Coleções (Collections) ::: Stack |
Java Collections - Como remover o elemento no topo de uma Stack usando seu método pop()Quantidade de visualizações: 9675 vezes |
Uma estrutura do tipo pilha (representada aqui por um objeto da classe Stack) permite que seus elementos sejam removidos sempre na ordem contrária em que foram inseridos, ou seja, o último elemento inserido é sempre o primeiro a sair. Veja no trecho de código abaixo como usar o método pop() para remover e retornar o elemento no topo da pilha:import java.util.*; public class Estudos{ public static void main(String args[]){ // Cria uma Stack de String Stack<String> pilha = new Stack<String>(); // adiciona três elementos na pilha pilha.push("Cuiabá"); pilha.push("Goiânia"); pilha.push("Belo Horizonte"); // remove os elementos, sempre removendo o // elemento do topo primeiro while(!pilha.empty()){ String elem = pilha.pop(); System.out.println("Elemento removido: " + elem); } } } Ao executar este código nós teremos o seguinte resultado: Elemento removido foi: Belo Horizonte Elemento removido foi: Cuiabá Elemento removido foi: Goiânia |
Delphi ::: Data Controls (Controles de Dados) ::: TDBGrid |
Como definir ou retornar a cor de fundo de uma determinada coluna do TDBGrid do DelphiQuantidade de visualizações: 9435 vezes |
Em algumas situações gostaríamos de definir a cor de fundo de uma determinada coluna do DBGrid. Isso pode ser feito por meio da propriedade Color da classe TColumn. Em tempo de design a cor de fundo de um coluna pode ser definida clicando-se com o botão direito do DBGrid e escolhendo a opção Columns Editor. Em seguida clique na coluna desejada e ajuste sua propriedade Color no Object Inspector. Em tempo de execução podemos definir a cor de fundo para uma coluna usando o seguinte trecho de código: procedure TForm3.Button3Click(Sender: TObject); begin // vamos definir a cor de fundo para a primeira coluna DBGrid1.Columns[0].Color := Graphics.clYellow; end; Veja que eu defini a cor de fundo como sendo uma das constantes definidas na unit Graphics. Lembre-se de que também podemos fornecer um valor RGB. Veja agora um trecho de código que mostra como obter a cor de fundo da coluna: procedure TForm3.Button3Click(Sender: TObject); begin // vamos obter a cor de fundo da primeira coluna ShowMessage('A cor de fundo da coluna é: ' + ColorToString(DBGrid1.Columns[0].Color)); end; Ao executarmos este código temos uma mensagem parecida com: "A cor de fundo da coluna é: clSilver". Esta dica foi escrita e testada no Delphi 2009. |
Java ::: Dicas & Truques ::: Data e Hora |
Como retornar o dia do mês em Java usando Calendar.DAY_OF_MONTHQuantidade de visualizações: 202 vezes |
Nesta dica mostrarei como podemos usar a constante Calendar.DAY_OF_MONTH para retornar o dia do mês para uma determinada data. Para isso nós só precisamos fornecer esta constante para o método get() de uma instância da classe Calendar. Veja o código completo para o exemplo: package estudos; import java.util.Calendar; public class Estudos { public static void main(String args[]) { // vamos obter uma instância da classe Calendar Calendar agora = Calendar.getInstance(); // agora vamos obter o dia do mês como um inteiro int dia_mes = agora.get(Calendar.DAY_OF_MONTH); // e mostramos o resultado System.out.println("O dia do mês é: " + dia_mes); } } Ao executar este código Java nós teremos o seguinte resultado: O dia do mês é: 26 |
Python ::: Dicas & Truques ::: Data e Hora |
Como retornar o dia do mês em Python como um decimal no intervalo 01-31 usando strftime("%d")Quantidade de visualizações: 8182 vezes |
Como retornar o dia do mês em Python como um decimal no intervalo 01-31 usando strftime("%d") Este exemplo mostra como usar a função strftime() e o sinalizador ("%d") para retornar o dia do mês a partir de um datetime. Observe que o dia do mês será retornado como um decimal no intervalo 01-31. from datetime import datetime def main(): # Obtém um datetime da data e hora atual hoje = datetime.today() # Exibe o dia do mês como um decimal print(hoje.strftime("O dia do mês é: %d")) if __name__== "__main__": main() Ao executar este código Python nós teremos o seguinte resultado: O dia do mês é: 26 |
Nossas 20 dicas & truques de programação mais populares |
PHP - Programação Orientada a Objetos em PHP - Como passar um objeto de uma classe para uma função PHP |
Você também poderá gostar das dicas e truques de programação abaixo |
C# - Como converter um tipo string para um tipo decimal em C# usando o método Parse() da classe Decimal Java - Como percorrer uma árvore binária em Java usando o algorítmo depth-first search (DFS) recursivo Java - Exercício Resolvido de Java - Usando um laço for para contar de 0 até 10 e somar todos os valores |
Nossas 20 dicas & truques de programação mais recentes |
Últimos Projetos e Códigos Fonte Liberados Para Apoiadores do Site |
Python - Como criar o jogo Pedra, Papel, Tesoura em Python - Jogo completo em Python com código comentado |
Últimos Exercícios Resolvidos |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |