Hejka, w poniedziałek zabrałem się za zadanie wykonania czytnika RDP w Pythonie. Jest to moja pierwsza aplikacja obiektowa i jak udawało mi się rozwiązywać pewne problemy wyszukując ich w internecie to teraz od kilku godzin nie jestem w stanie rozwiązać jednego z nich. Problemem jest to, że nie potrafię wykorzystać zmiennej self.row = self.cursor.fetchone()
w klasie class Second_Window(QMainWindow)
. Klasa Second_Window jest najzwyklejszym drugim oknem, które otwiera się po naciśnięciu przycisku.
Cały kod bez stysheeta:
from PyQt5.Qt import *
import sys
import mysql.connector as mysql
class Czytnik(QMainWindow):
def __init__(self, parent=None):
super(Czytnik, self).__init__(parent)
self.interfejs()
def interfejs(self):
etykieta1 = QLabel("Wprowadź numer pracownika (np. 202034201):", self)
etykieta1.setGeometry(QRect(6,0, 700,21))
self.numer = QLineEdit(self)
self.numer.setValidator(QIntValidator(0, 100000000))
self.numer.setStyleSheet("font-size: 27px; font-weight: bold;")
self.numer.setGeometry(QRect(5, 25, 990, 60))
self.wprowadz = QPushButton("&Wprowadz", self)
self.wprowadz.setGeometry(QRect(4, 89, 992, 62))
self.wprowadz.clicked.connect(self.dzialanie)
self.dialogs = list()
self.dialogss = list()
etykieta2 = QLabel("SMART", self)
etykieta2.setGeometry(QRect(390, 270, 700, 73))
etykieta2.setStyleSheet("font-size: 65px; font-weight: normal;")
etykieta3 = QLabel("WORKER", self)
etykieta3.setGeometry(QRect(365, 340, 700, 73))
etykieta3.setStyleSheet("font-size: 65px; font-weight: normal;")
self.setGeometry(100, 100, 1000, 700)
self.setWindowTitle("Czytnik RDP - ZAP RACHUNKOWOŚĆ")
self.show()
def dzialanie(self):
wynik = self.numer.text()
db = mysql.connect(host='localhost', user='root', password='', db='projekt_zap')
self.cursor = db.cursor()
self.cursor.execute("SELECT imie FROM pracownicy WHERE id_numer = '%s'" % wynik)
self.row = self.cursor.fetchone()
if str(wynik) == "":
dialog1 = Third_Window(self)
self.dialogss.append(dialog1)
dialog1.show()
else:
dialog = Second_Window(self)
self.dialogs.append(dialog)
dialog.show()
db.close()
class Second_Window(QMainWindow):
def __init__(self, parent=None):
super(Second_Window, self).__init__(parent)
self.wyswietlanie()
def wyswietlanie(self):
etykieta = QLabel("Imie: ", self)
etykieta.setGeometry(6, 0, 990, 21)
koniecBtn = QPushButton("&Koniec", self)
koniecBtn.setGeometry(QRect(4, 325, 982, 62))
koniecBtn.clicked.connect(self.koniec)
self.setGeometry(105, 218, 990, 390)
self.setWindowTitle("Potwierdzenie kodu")
def koniec(self):
self.close()
class Third_Window(QMainWindow):
def __init__(self, parent=None):
super(Third_Window, self).__init__(parent)
self.interfejs()
def interfejs(self):
informacja = QLabel("Błędne dane!", self)
informacja.setGeometry(310,124,990,80)
informacja.setStyleSheet("font-size: 65px; font-weight: normal;")
okBtn = QPushButton("&Okej", self)
okBtn.setGeometry(QRect(4, 325, 982, 62))
okBtn.clicked.connect(self.koniec)
self.setGeometry(105, 218, 990, 390)
self.setWindowTitle("Potwierdzenie kodu")
def koniec(self):
self.close()
def main():
app = QApplication(sys.argv)
main = Czytnik()
main.show()
sys.exit(app.exec_())
if __name__ == '__main__':
main()