25 Şubat 2021 Perşembe

Katalog Eser Ekleme-Arama-Silme-Güncelleme-Kayıtlı Olan Eserleri Sql Görüntüleme

import sys
import io
import folium
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtWebEngineWidgets import QWebEngineView
import sqlite3

class help_(QWidget):
def __init__(self):
super().__init__()
self.textEdit = QLabel('Eserleri eklemek icin eser menusunu tiklayiniz.\n'
'Navigasyon menusuden konum bilgilerine ulasabilirsiniz.\n'
'Cikis yapmak icin exit tiklayiniz.')
self.layout = QHBoxLayout()
self.layout.addWidget(self.textEdit)
self.setLayout(self.layout)
self.setWindowTitle('Help Window')
self.setGeometry(350,200,200,100)

class navigation(QWidget):
def __init__(self):
super(navigation, self).__init__()
self.setWindowTitle('Navigation')
self.setGeometry(200, 200, 600, 400)
coodinate = (41.02211977968873, 29.25890758913248)
m = folium.Map(
title='Sancaktepe',
zoom_start=15,
location=coodinate
)
# save map data to data object
data = io.BytesIO()
m.save(data, close_file=False)
webView = QWebEngineView()
webView.setHtml(data.getvalue().decode())
self.nav = QVBoxLayout()
self.nav.addWidget(webView)
self.setLayout(self.nav)

class viewSqlTable(QWidget):
def __init__(self):
super().__init__()
self.createTable()
def createTable(self):
self.setGeometry(200, 200, 350, 400)
self.tablo = QTableWidget()
self.layout = QHBoxLayout()
self.layout.addWidget(self.tablo)
self.setLayout(self.layout)
self.sqlTable()

def sqlTable(self):
self.connection = sqlite3.connect('catalog.db')
self.cur = self.connection.cursor()
find = "SELECT * FROM catalogs"
self.tabloIndex = 0
for row, row_data in enumerate(self.cur.execute(find)):
self.tablo.insertRow(row)
for col, col_data in enumerate(row_data):
if self.tabloIndex < 3:
self.tabloIndex += 1
self.tablo.setColumnCount(self.tabloIndex)
self.tablo.setItem(row, col, QTableWidgetItem(str(col_data)))

class searchSqlTable(QWidget):
def __init__(self):
super().__init__()
self.createTable()

def createTable(self):
self.setGeometry(200, 200, 345, 100)
self.tablo = QTableWidget()
self.layout = QHBoxLayout()
self.layout.addWidget(self.tablo)
self.setLayout(self.layout)
self.sqlTable()

def sqlTable(self):
self.baglanti = sqlite3.connect('catalog.db')
self.imlec = self.baglanti.cursor()
text1, ok = QInputDialog.getText(self, 'Search Eser', 'Enter Book Name')
self.eserAd = text1
find = 'SELECT * FROM catalogs WHERE eserAd = ?'
self.imlec.execute(find, (self.eserAd,))
eser = self.imlec.fetchall()
print(eser)
if len(eser) == 0:
print('There is no eser on the DB')
else:
self.tabloIndex = 0
for row, row_data in enumerate(eser):
self.tablo.insertRow(row)
for col, col_data in enumerate(row_data):
if self.tabloIndex < 3:
self.tabloIndex += 1
self.tablo.setColumnCount(self.tabloIndex)
self.tablo.setItem(row, col, QTableWidgetItem(str(col_data)))
self.baglanti.close()

class katalog(QMainWindow):
def __init__(self, eserAd=None, yazarAd=None, tarih=None):
super().__init__()
self.eserAd = eserAd
self.yazarAd = yazarAd
self.tarih = tarih
self.baglanti_olustur()
self.initUI()
self.w2 = navigation()
def __str__(self):
return '[EserAd: {0} | YazarAd: {1} | Tarih: {2}]'. \
format(self.eserAd, self.yazarAd, self.tarih)

def __repr__(self):
return '[EserAd: {0} | YazarAd: {1} | Tarih: {2}]'. \
format(self.eserAd, self.yazarAd, self.tarih)

def baglanti_olustur(self):
self.baglanti = sqlite3.connect('catalog.db')
self.imlec = self.baglanti.cursor()
tablo = 'CREATE TABLE IF NOT EXISTS catalogs(eserAd TEXT, yazarAd TEXT, tarih TEXT)'
self.imlec.execute(tablo)
self.baglanti.commit()

def baglanti_kes(self):
self.baglanti.close()

def initUI(self):
self.setWindowTitle('Katalog')
self.setGeometry(200, 200, 600, 400)

self.mainMenu = self.menuBar()
file = self.mainMenu.addMenu('Eser')
self.addeser = QAction('Eser Add', self)
self.addeser.triggered.connect(self.addEser)
self.searcheser = QAction('Search Eser', self)
self.searcheser.triggered.connect(self.searchEser)
self.vieweser = QAction('View Eser', self)
self.vieweser.triggered.connect(self.viewEser)
self.deleteeser = QAction('Delete Eser', self)
self.deleteeser.triggered.connect(self.deleteEser)
self.updateeser = QAction('Update Eser', self)
self.updateeser.triggered.connect(self.updateEser)

file.addAction(self.addeser)
file.addAction(self.searcheser)
file.addAction(self.vieweser)
file.addAction(self.deleteeser)
file.addAction(self.updateeser)

navMenu = self.mainMenu.addMenu('Navigation')
navMenu.addAction('Gmap')
navMenu.triggered.connect(self.navMap)

Help = self.mainMenu.addMenu('Help')
Help.addAction('Help')
Help.triggered.connect(self.Help)

exitAction = QAction('Exit', self)
exitAction.triggered.connect(qApp.quit)
exitButton = self.mainMenu.addMenu('Exit')
exitButton.addAction(exitAction)

label = QLabel(self)
pixmap = QPixmap('book.jpg')
label.setPixmap(pixmap)
label.setGeometry(0, 20, 600,400)

def Help(self):
self.w1 = help_()
self.w1.show()
def navMap(self):
self.w2.show()
def searchEser(self):
self.w4 = searchSqlTable()
self.w4.show()
def viewEser(self):
self.w3 = viewSqlTable()
self.w3.show()

def addEser(self):
self.baglanti = sqlite3.connect('catalog.db')
self.imlec = self.baglanti.cursor()
text1, ok = QInputDialog.getText(self, 'Add Eser', 'Enter Book Name')
text2, ok = QInputDialog.getText(self, 'Add Eser', 'Enter Author')
text3, ok = QInputDialog.getText(self, 'Add Eser', 'Enter Book Date')
if ok:
self.eserAd = text1
self.yazarAd = text2
self.tarih = text3
add = "INSERT INTO catalogs VALUES(?,?,?)"
self.imlec.execute(add, (self.eserAd, self.yazarAd, self.tarih))
self.baglanti.commit()

def deleteEser(self):
self.baglanti = sqlite3.connect('catalog.db')
self.imlec = self.baglanti.cursor()
text, ok = QInputDialog.getText(self, 'Delete Eser', 'Enter Book Name')
self.eserAd = text
find = 'DELETE FROM catalogs WHERE eserAd = ?'
self.imlec.execute(find, (self.eserAd,))
self.baglanti.commit()

def updateEser(self):
self.baglanti = sqlite3.connect('catalog.db')
self.imlec = self.baglanti.cursor()
text1, ok = QInputDialog.getText(self, 'Update Eser', 'Enter Update Book Name')
self.eserAd = text1
find = 'SELECT * FROM catalogs WHERE eserAd = ?'
self.imlec.execute(find, (self.eserAd,))
eser = self.imlec.fetchall()
if len(eser) == 0:
print('There is no eser on the DB')
else:
text1, ok = QInputDialog.getText(self, 'Update Eser', 'Enter New Book Name')
text2, ok = QInputDialog.getText(self, 'Update Eser', 'Enter New Book Author')
text3, ok = QInputDialog.getText(self, 'Update Eser', 'Enter New Book Date')
self.eserAd = text1
self.yazarAd = text2
self.tarih = text3
find2 = 'UPDATE catalogs SET eserAd=?, yazarAd=?, tarih=? WHERE eserAd = ? '
self.imlec.execute(find2, (self.eserAd, self.yazarAd, self.tarih, self.eserAd))
self.baglanti.commit()

app = QApplication(sys.argv)
ex = katalog()
ex.show()
sys.exit(app.exec_()) 

Hiç yorum yok:

Yorum Gönder