Carolyne Silva Rocha Posted May 16, 2023 at 11:49 AM Report Share #630953 Posted May 16, 2023 at 11:49 AM Bom dia pessoal, Espero que se encontrem bem! Bom eu sou estudante do 12º do curso profissional de TGEI, e estou elaborando meu projeto final do curso. Trata-se de um sistema de temperatura que de acordo com os dados lidos do sensor, envia uma mensagem de texto através da API Twilio, para o número pré-configurado no código. Por indicação de um professor resolvi criar em Python uma GUI simples, para caso do utilizador querer alterar o valor de comparação da temperatura, não precisar ir ao código alterar. O meu problema é que não consigo ligar o script a GUI, poderiam me ajudar, comecei a aprender programação a pouco tempo. Link to comment Share on other sites More sharing options...
thoga31 Posted May 16, 2023 at 12:24 PM Report Share #630954 Posted May 16, 2023 at 12:24 PM Olá Carolyne, bem-vinda 🙂 O código de base é também em Python? Qual a biblioteca gráfica que estás a usar para criar a GUI? E como tentaste fazer a “ligação” entre os dois? Cumprimentos. Knowledge is free! Link to comment Share on other sites More sharing options...
Carolyne Silva Rocha Posted May 16, 2023 at 01:04 PM Author Report Share #630955 Posted May 16, 2023 at 01:04 PM Sim, ambos são em Python, estou usando a Tkinter, tentei criando um módulo que guarda as variáveis de temperatura (máxima e mínima), e depois importo esse módulo no script e na GUI, para assim os valores inseridos na GUI serem "alterados" no script. Não sei se é o modo correto, mas foi a única coisa que pensei que pudesse dar certo. Link to comment Share on other sites More sharing options...
Cerzedelo Posted May 17, 2023 at 12:36 PM Report Share #630963 Posted May 17, 2023 at 12:36 PM Em 16/05/2023 às 15:04, Carolyne Silva Rocha disse: Sim, ambos são em Python, estou usando a Tkinter, tentei criando um módulo que guarda as variáveis de temperatura (máxima e mínima), e depois importo esse módulo no script e na GUI, para assim os valores inseridos na GUI serem "alterados" no script. Não sei se é o modo correto, mas foi a única coisa que pensei que pudesse dar certo. Para inserir um modulo num outro script, pode utilizar o comando from import, ex: from nomedomodulo import temperaturamaxima, temperaturaminima temperatura.py temperaturamaxima=30 temperaturaminima=10 script.py from temperatura import temperaturamaxima, temperaturaminina print (temperaturaminima) print (temperaturamaxima) A menos que lhe fosse exigida a separação do script do GUI, num programa simples quanto este não deslumbro a necessidade de se fazer essa separação, até porque o Tkinter em muitas da situações é inserido directamente no código do script. Uma coisa que deve prestar atenção é a persistência dos dados da temperatura, porque quando parar de correr o script, os valores guardados serão os que constam nas variáveis e não os que alterou pela GUI. Para resolver essa questão teria de utilizar uma base de dados, como por exemplo o sqlite. 1 Report Link to comment Share on other sites More sharing options...
Carolyne Silva Rocha Posted May 17, 2023 at 08:56 PM Author Report Share #630970 Posted May 17, 2023 at 08:56 PM Obrigada pela ajuda. O problema de juntar os dois é que eu preciso que o script esteja sempre a correr, pq é um sistema de alerta. Penso eu, não sei se estou errada, se sim me corrija por favor, mas juntado os dois, quando o utilizador terminasse um, o outro também terminaria, o que não quero que aconteça. Link to comment Share on other sites More sharing options...
Cerzedelo Posted May 18, 2023 at 12:21 PM Report Share #630980 Posted May 18, 2023 at 12:21 PM Em 17/05/2023 às 21:56, Carolyne Silva Rocha disse: Obrigada pela ajuda. O problema de juntar os dois é que eu preciso que o script esteja sempre a correr, pq é um sistema de alerta. Penso eu, não sei se estou errada, se sim me corrija por favor, mas juntado os dois, quando o utilizador terminasse um, o outro também terminaria, o que não quero que aconteça. Neste caso não existe esse problema, porque digamos, é como estar a executar os dois scripts em simultâneo, dado que está a chamar um pedaço do código dentro do outro código. Ou seja, não vai rodar directamente o primeiro código, só vai rodar o segundo código, que durante a execução vai chamar o primeiro. Vamos imaginar o seguinte, você cria uma função que vai inserir em vários programas diferentes. Tem duas opções para fazer esta operação. Primeira, em cada um dos programas vai reescrever essa função, ou em alternativa, vai escrever essa função uma única vez e inseri-la num módulo e depois em cada um desses programas chama esse modulo e executa essa função. Link to comment Share on other sites More sharing options...
Carolyne Silva Rocha Posted May 18, 2023 at 01:52 PM Author Report Share #630981 Posted May 18, 2023 at 01:52 PM Okay, então não aconteceria o erro que eu imaginei, isso é bom haha. Pode me explicar melhor como eu poderia fazer essa 'junção' ? Link to comment Share on other sites More sharing options...
Cerzedelo Posted May 18, 2023 at 03:00 PM Report Share #630983 Posted May 18, 2023 at 03:00 PM Em 18/05/2023 às 14:52, Carolyne Silva Rocha disse: Okay, então não aconteceria o erro que eu imaginei, isso é bom haha. Pode me explicar melhor como eu poderia fazer essa 'junção' ? Imagine que precisa de criar umas funções matemáticas, de álgebra simples, que precisa de usar em vários dos seus códigos, ou seja, em vários programas. Então por uma questão de organização do código, e para evitar ter de reescrever as funções em vários programas, cria um módulo ou uma biblioteca, onde insere essas funções e depois vai chamá-las em cada um dos programas. funcoes.py def somar(x,y): soma=x+y return soma def multiplicar(x,y): multiplicacao=x*y return multiplicacao main.py from funcoes import somar, multiplicar valor_soma=somar(2,2) print(valor_soma) valor_multiplicacao=multiplicar(4,2) print(valor_multiplicacao) Repare que só executa o ficheiro main.py mas os cálculos irão ser efectuados no modulo funcoes.py, isto porque o ficheiro main.py vai chamar e executar o outro ficheiro funcoes.py. 1 Report Link to comment Share on other sites More sharing options...
Carolyne Silva Rocha Posted May 18, 2023 at 03:33 PM Author Report Share #630984 Posted May 18, 2023 at 03:33 PM Okay, vou tentar fazer assim. Obrigada 🙂 Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now