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ão

Quantidade 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 Python

Quantidade 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 Civil

Quantidade 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 Linear

Quantidade 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

Códigos Fonte

Programa de Gestão Financeira Controle de Contas a Pagar e a Receber com Cadastro de Clientes e FornecedoresSoftware 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 funcionalidadesControle 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
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: Delphi
6º lugar: C
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2024 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 17 usuários muito felizes estudando em nosso site.