Você está aqui: Python ::: Tkinter GUI Toolkit ::: Formulários e Janelas |
Como retornar o tamanho de uma janela do Tkinter Python ao clicar em um botãoQuantidade de visualizações: 1190 vezes |
Em várias situações nós precisamos saber a largura e a altura da janela de nossa aplicação Tkinter Python antes de efetuar alguma ação. Nesta dica eu mostro como isso pode ser feito. A largura da janela pode ser obtida por meio de uma chamada à função winfo_width() da classe Tk, enquanto a altura é retornada através de uma chamada ao método winfo_height(). No exemplo a seguir nós temos uma janela contendo um botão Button. Ao clicarmos no botão, a função tamanho_janela() é chamada e as dimensões da janela são exibidas em uma caixa de mensagem messagebox.showinfo(): ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- # vamos importar o módulo Tkinter from tkinter import * from tkinter.ttk import * from tkinter import messagebox # cria a janela principal da aplicação janela_principal = Tk() # função que permite obter o tamanho da janela def tamanho_janela(): largura = janela_principal.winfo_width() altura = janela_principal.winfo_height() messagebox.showinfo("Tamanho da janela", "A largura da janela é {0} pixels e a altura é {1} pixels".format(largura, altura)) # método principal def main(): # define as dimensões da janela janela_principal.geometry('300x250') # vamos definir o título da janela janela_principal.title("Cadastro de Clientes") Button(janela_principal, text="Tamanho da Janela", command=tamanho_janela).pack() # entramos no loop de eventos janela_principal.mainloop() if __name__== "__main__": main() |
Link para compartilhar na Internet ou com seus amigos: |
Python ::: Dicas & Truques ::: Data e Hora |
Python para iniciantes - Como obter o ano com quatro dígitos usando PythonQuantidade de visualizações: 7458 vezes |
Em algumas situações nós precisamos obter apenas o ano de uma determinada data, e com quatro dígitos. Para isso só precisamos passar o indicador "%Y" para a função strftime() da linguagem Python. Veja o exemplo completo: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- from datetime import datetime # função principal do programa def main(): # Obtém um datetime da data e hora atual hoje = datetime.today() # Exibe o ano com quatro dígitos print(hoje.strftime("O ano é: %Y")) if __name__== "__main__": main() Ao executarmos este código nós teremos o seguinte resultado: O ano é: 2021 |
Python ::: Python para Engenharia ::: Engenharia Civil - Cálculo Estrutural |
Como calcular os esforços solicitantes majorados em pilares usando Python - Python para Engenharia CivilQuantidade de visualizações: 75 vezes |
Quando estamos dimensionando pilares em concreto armado em geral, a primeira coisa que devemos fazer é calcular os esforços solicitantes, ou seja, as cargas que estão chegando ao pilar. No caso dos pilares intermediários, ou seja, pilares que residem fora dos cantos e extremidades da estrutura e que, por isso, recebem a carga em seu centro geométrico, considera-se a compressão centrada. Dessa forma, chamamos de Nk o somatório de todas as cargas verticais atuantes na estrutura e podemos desprezar as excentricidades de 1ª ordem. De acordo com a NBR 6118 (ABNT, 2014), para a situação de projeto, essa força normal Nk deve ser majorada pelos coeficientes γn e γf, resultando em uma força normal de projeto chamada Nd. O coeficiente γn deve majorar os esforços solicitantes finais de cálculo de acordo com a menor dimensão do pilar. A norma diz que a menor dimensão que um pilar pode ter é 19cm, mas, em alguns casos, podemos ter a menor dimensão de até 14cm, precisando, para isso, majorar os esforços solicitantes. Nos comentários do código Python eu mostro como esse cálculo é feito, de acordo com a NBR 6118 (ABNT, 2014), é claro. O coeficiente γf, na maioria dos casos, possui o valor 1,4 e entra no cálculo para converter a força normal Nk em força normal de projeto Nd. A fórmula para o cálculo dos esforços solicitantes majorados em pilares intermediários é: \[ Nd = \gamma n \cdot \gamma f \cdot Nk \] Onde: γn majora os esforços de acordo com a menor dimensão do pilar de acordo com a NBR 6118 (ABNT, 2014). γf em geral possui o valor 1.4 para majorar os esforços em estruturas de concreto armado. Nk é a força normal característica aplicada ao pilar, em kN. Nd é a força normal de projeto, em kN. Vamos então ao código Python, que solicitará ao usuário os valores de suas dimensões hx e hy (em centímetros) e a carga, ou seja, a força normal característica chegando no pilar em kN e vamos mostrar a força normal de projeto Nd: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- # método principal def main(): # vamos pedir as dimensões do pilar hx = float(input("Informe a dimensão do pilar na direção x (em cm): ")) hy = float(input("Informe a dimensão do pilar na direção y (em cm): ")) # vamos pedir a carga total no pilar em kN Nk = float(input("Informe a carga total no pilar (em kN): ")) # vamos obter o menor lado do pilar (menor dimensão da seção transversal) if (hx < hy): b = hx else: b = hy # agora vamos calcular a área do pilar em centímetros quadrados area = hx * hy # a área está de acordo com a norma NBR 6118 (ABNT, 2014) if (area < 360): print("A área do pilar não pode ser inferior a 360cm2") return # vamos calcular a força normal de projeto Nd yn = 1.95 - (0.05 * b) # de acordo com a norma NBR 6118 (ABNT, 2014) Tabela 13.1 yf = 1.4 # regra geral para concreto armado Nd = yn * yf * Nk # e mostramos os resultados print("\nA área do pilar é: {0} cm2".format(round(area, 2))) print("A menor dimensão do pilar é: {0} cm".format(round(b, 2))) print("O valor do coeficiente yn é: {0}".format(round(yn, 2))) print("A força normal de projeto Nd é: {0} kN".format(round(Nd, 2))) if __name__== "__main__": main() Ao executar este código Python nós teremos o seguinte resultado: Informe a dimensão do pilar na direção x (em cm): 40 Informe a dimensão do pilar na direção y (em cm): 19 Informe a carga total no pilar (em kN): 841.35 A área do pilar é: 760.0 cm2 A menor dimensão do pilar é: 19.0 cm O valor do coeficiente yn é: 1.0 A força normal de projeto Nd é: 1177.89 kN |
Python ::: Python para Engenharia ::: Geometria Analítica e Álgebra Linear |
Como calcular a transposta de uma matriz em Python - Python para Geometria Analítica e Álgebra LinearQuantidade de visualizações: 6139 vezes |
A matriz transposta de uma matriz A é a matriz AT. Tal matriz é obtida quando copiamos os elementos da matriz A para uma outra matriz (ou para ela mesma) e trocamos de posição as linhas e colunas. Dessa forma, a primeira linha da matriz A se transforma na primeira coluna da matriz transposta, a segunda linha da matriz A se transforma na segunda coluna da matriz transposta e assim por diante. Em termos de notação, podemos dizer, de forma algébrica, que: ATji = Aij Onde i representa as linhas e j representa as colunas, tanto na matriz original quanto na matriz transposta. É importante estar atento à quantidade de linhas e colunas na matriz original e na matriz transposta equivalente. Assim, se a matriz original for 3x2, a matriz transposta será 2x3. Antes de vermos o código Python, dê uma olhada na seguinte matriz de duas linhas e três colunas: \[A = \left[\begin{matrix} 3 & 5 & 7 \\ 1 & 2 & 9 \end{matrix}\right] \] Sua matriz transposta correspondente é: \[A^T = \left[\begin{matrix} 3 & 1 \\ 5 & 2 \\ 7 & 9 \end{matrix}\right] \] E agora veja o código Python que declara uma matriz 2x3 e gera a matriz transposta 3x2: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- # importamos a bibliteca NumPy import numpy as np def main(): # vamos declarar e construir uma matrix # 2x3 (duas linhas e três colunas matriz = np.array([(3, 5, 7), (1, 2, 9)]) # vamos exibir os valores da matriz print("Elementos da matriz:") for i in range(np.shape(matriz)[0]): for j in range(np.shape(matriz)[1]): print("%7.2f" % matriz[i][j], end="") print() # como temos uma matriz 2x3, a transposta deverá ser # 3x2, ou seja, três linhas e duas colunas linhas = np.shape(matriz)[0] # linhas da matriz original colunas = np.shape(matriz)[1] # colunas da matriz original transposta = np.empty((colunas, linhas)) # e agora vamos preencher a matriz transposta for i in range(np.shape(matriz)[0]): for j in range(np.shape(matriz)[1]): transposta[j][i] = matriz[i][j] # vamos exibir os valores da matriz transposta print("\nElementos da matriz transposta:") for i in range(np.shape(transposta)[0]): for j in range(np.shape(transposta)[1]): print("%7.2f" % transposta[i][j], end="") print() if __name__== "__main__": main() Ao executar este código Python nós teremos o seguinte resultado: Elementos da matriz: 3 5 7 1 2 9 Elementos da matriz transposta: 3 1 5 2 7 9 É possível também obter a matriz transposta de um outra matriz usando o método transpose() da biblioteca NumPy da linguagem Python. Veja: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- # importamos a bibliteca NumPy import numpy as np def main(): # vamos declarar e construir uma matrix # 2x3 (duas linhas e três colunas matriz = np.array([(3, 5, 7), (1, 2, 9)]) # vamos exibir os valores da matriz print("Elementos da matriz:") for i in range(np.shape(matriz)[0]): for j in range(np.shape(matriz)[1]): print("%7.2f" % matriz[i][j], end="") print() # vamos transpor a matriz usando o método transpose() transposta = matriz.transpose() # vamos exibir os valores da matriz transposta print("\nElementos da matriz transposta:") for i in range(np.shape(transposta)[0]): for j in range(np.shape(transposta)[1]): print("%7.2f" % transposta[i][j], end="") print() if __name__== "__main__": main() Ao executar este novo código Python veremos que o resultado é o mesmo. |
Vamos testar seus conhecimentos em Ética e Legislação Profissional |
Responsabilidade civil dos prepostos e preponentes De acordo com as definições de preposto gerente, assinale a alternativa correta. A) O gerente é autorizado a praticar todos os atos necessários ao exercício dos poderes que lhe foram outorgados, mesmo que a lei exija poderes especiais para tal. B) O gerente responde sozinho pelos atos praticados em seu nome e em nome do preponente. C) O preponente pode estar em juízo em nome do gerente, pelas obrigações resultantes do exercício da sua função. D) Considera-se gerente o preposto permanente no exercício da empresa, em sua sede, filial ou agência. E) Os gerentes são responsáveis pelos atos dos preponentes, praticados nos seus estabelecimentos e relativos à atividade da empresa, ainda que não autorizados por escrito. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Fenômeno de Transportes e Hidráulica |
Escoamento laminar Em escoamento laminar, a região de entrada do fluido é definida por um comprimento de entrada. Esse comprimento é compreendido entre quais distâncias? A) Entre a região de entrada e a região de comportamento completamente desenvolvido. B) Entre a região de entrada e a região de comportamento parcialmente desenvolvido. C) Entre a região de entrada e a região de saída do escoamento. D) Entre a região de comportamento completamente desenvolvido e a região de saída do escoamento. E) Entre a região de entrada e a região com defeito de velocidade. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Hidrologia |
O Brasil apresenta um grande volume de usinas hidrelétricas instaladas na sua rede hidrográfica. Marque a alternativa que faça uma associação correta entre o nome da usina hidrelétrica e a sua localização. A) Usina de Furnas -> Bacia Platina. B) Usina de Belo Monte -> Bacia Amazônica. C) Usina de Três Marias -> Bacia do Uruguai. D) Usina de Sobradinho -> Bacia do Tocantins. E) Usina de Itaipu -> Bacia do São Francisco. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em JavaScript |
Qual das seguintes instruções JavaScript é uma definição correta de um array? A) a = new Array[100]; B) var a = new Array(100); C) var[] a = new String[100]; D) var a = new Array[100]; Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Hidrologia |
(Unifal 2008) Assinale a alternativa correta a respeito das alterações do ciclo hidrológico. A) O desmatamento provoca um aumento da evapotranspiração vegetal, desequilibrando o balanço de água no solo, que se torna estéril. B) A agricultura irrigada retira água do lençol freático, devolvendo-a ao rio, por meio do escoamento fluvial, poluída e pobre em nutrientes. C) A superexploração dos aquíferos provoca o ressecamento dos solos e contribui para o aumento da erosão fluvial. D) A compactação dos solos, que pode ser decorrente das atividades agropecuárias, reduz a infiltração da água da chuva e aumenta o escoamento superficial. E) O consumo de água urbano e industrial é responsável pela poluição das águas, mas não afeta a hidrografia local quanto à redução da vazão dos rios. Verificar Resposta Estudar Cards Todas as Questões |
Desafios, Exercícios e Algoritmos Resolvidos de Python |
Veja mais Dicas e truques de Python |
Dicas e truques de outras linguagens |
Fórmulas da Física - Fórmula da Velocidade - Como calcular a velocidade quando temos a distância percorrida e o tempo gasto |
Códigos Fonte |
Software de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais |
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais |
Linguagens Mais Populares |
1º lugar: Java |