Jump to content

Como criar um projeto no PyCharm com SQL Server e QtDesigner?


CaeduXD

Postagens Recomendadas

Eu criei uma janela de login no QtDesigner e consegui chamar ela usando um main.py e um login.py.
Consegui tbm escrever o codigo qeu supsotamente conecta ao banco de dados, porem queria usar um RadioButton na janela login.py para marcar quando desse certo a conexao, mas nao estou conseguindo saber qual o codigo pra montar o if e descrever o botao no main.py

Queria saber tbm como mudar o estilo da janela pro Fusion do QtDesigner

  • Curtir 1
Link to comment
Compartilhe em outros sites

  • Casa do Desenvolvedor mudou o título para Como criar um projeto no PyCharm com SQL Server e QtDesigner?

Olá CaeduXD,

Fiz um código em Python para te auxiliar no seu problema e para mim funcionou dessa seguinte forma:

  def connection(self):
        try:
            conn = sqlite3.connect('https://127.0.0.1:8080')
            cursor = conn.cursor()
            cursor.execute("SELECT * FROM user WHERE id=1")  
            self.radioButton.setChecked(True)  
            conn.close()
        except sqlite3.Error as e:
            self.radioButton.setChecked(False)
            print(f"Erro na conexão: {e}")

Dessa forma, se a conexão com seu banco de dados funcionar ele vai marca o rádio Button, no exemplo acima ele busca um user com id=1 se conseguir encontrar ele demarca como true sua radioButton.

Citação

Queria saber tbm como mudar o estilo da janela pro Fusion do QtDesigner

Simples só você aplicar o estilo dentro do if __main__:

if __name__ == "__main__":  
	app.setStyle('Fusion')

Espero ter ajudado você.
 

Editado por Eliseu
  • Curtir 1
Link to comment
Compartilhe em outros sites

Olá CaeduXD

Citação

E não precisa importar alguma biblioteca pro sqlite?

Sim você precisa exporta sim dando um: 

import sqlite3 

E sobre: 
 

Citação

Onde acho esse endereço de IP pra colocar o correto?

Da forma que fiz meu banco de dados não é local ele passar por uma https mais se você tiver usando PostegreSQL ou Mysql faz do modo padrão:

 

import pymysql

def connection(self):
        try:
            conn = pymysql.connect(
                host='',      
                user='',       
                password='',     
                database=''  
            )
            cursor = conn.cursor()
            cursor.execute("SELECT * FROM user WHERE id=1")  
            result = cursor.fetchone()
            if result: 
                self.radioButton.setChecked(True)  
            else:
                self.radioButton.setChecked(False)
            conn.close()
        except pymysql.MySQLError as e:
            self.radioButton.setChecked(False)
            print(f"Erro na conexão: {e}")

Nesse caso você configura seu código para pegar informação do seu banco de dados localhost.

Espero que isso tenha te ajudado.

 

  • Curtir 1
Link to comment
Compartilhe em outros sites

acabei usando o pyodbc e parece qeu deu certo, mas nao consigo chamar o radiobutton dentro da funcao pra funcionar

criei a funcao mas quando ele printa conexao bem sucedida, queria marcar o radio button escrito conectado e desabilitar o radiobutton escrito desabilitado.

a funcao esta no main.py e o botao esta no login.py

Captura de tela 2024-07-16 181253.png

Captura de tela 2024-07-16 181505.jpg

  • Curtir 1
Link to comment
Compartilhe em outros sites

Ola CaeduXD

Com base na foto que me enviou criei um exemplo e uma aplicação em cima do seu código:

import sys
from PyQt5.QtWidgets import QApplication, QMainWindow
from login import Ui_MainWindow
import pyodbc 

class MainWindow(QMainWindow, Ui_MainWindow):
    def __init__(self):
        super().__init__()
        self.setupUi(self)
        self.connectButton.clicked.connect(self.check_connection) 

    def check_connection(self):
        try:
            server = 'Desktop'
            database = 'TESTE'
            username = 'teste'
            password = '123456789'

            connection_string = (
                f'DRIVER={{ODBC Driver 17 for SQL Server}};'
                f'SERVER={server};'
                f'DATABASE={database};'
                f'UID={username};'
                f'PWD={password}'
            )

            connection = pyodbc.connect(connection_string)
            print("Conexão bem-sucedida!")

            self.radioButtonConectado.setChecked(True)
            self.radioButtonDesconectado.setChecked(False)

            return connection
        except Exception as e:
            print(f"Erro ao conectar ao banco de dados: {e}")
            self.radioButtonConectado.setChecked(False)
            self.radioButtonDesconectado.setChecked(True)

if __name__ == "__main__":
    app = QApplication(sys.argv)
    app.setStyle('Fusion') 
    window = MainWindow()
    window.show()
    sys.exit(app.exec_()) 

Com base no seu código, fiz algumas alterações. Estou importando o login.py na main.py porque, ao separar o código em duas partes, você precisa exportar a função dos radioButtons. Isso é necessário para que a main.py possa interagir corretamente com os radioButtons.

Possivelmente seja isso que você esteja errando.

Editado por Eliseu
  • Curtir 1
Link to comment
Compartilhe em outros sites

Crie uma conta ou entre para comentar 😀

Você precisa ser um membro para deixar um comentário.

Crie a sua conta

Participe da nossa comunidade, crie sua conta.
É bem rápido!

Criar minha conta agora

Entrar

Você já tem uma conta?
Faça o login agora.

Entrar agora


×
×
  • Create New...