se utiliza QT designer, Python 3.7 y SQLite
La idea: Lista simple para agregar y quitar palabras y que queden guardadas.
1.primero con QT designer hice la interfaz de usuario...
#!/usr/bin/env python3# -*- coding: utf-8 -*-import sys from PyQt5.QtWidgets import QApplication, QMainWindow from PyQt5 import uic import sqlite3 class Ventana(QMainWindow): def __init__(self): QMainWindow.__init__(self) uic.loadUi("base.ui",self)
para las pruebas en pycharm se puede importar uic y con uic,ouadUi("base.ui",self)
pero al momento de compilarlo con pyinstaller fue necesario pasar el .ui a .py con uic5
se puede usar como referencia el siguiente link muy ùtil
luego de hacer los cambios necesarios esa parte me quedó así...
#!/usr/bin/env python3# -*- coding: utf-8 -*-from base_ui import * import sqlite3 class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow): def __init__(self, *args, **kwargs): QtWidgets.QMainWindow.__init__(self) self.setupUi(self)como se ve ya no es necesario con importar uic y con self.setupUi(self) ahí esta
el codigo sería el siguiente...
!/usr/bin/env python3# -*- coding: utf-8 -*-from base_ui import * import sqlite3 class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow): def __init__(self, *args, **kwargs): QtWidgets.QMainWindow.__init__(self) self.setupUi(self) self.Base() self.lineEdit.returnPressed.connect(self.agregar) self.pushButton_2.clicked.connect(self.borrar) self.actualizar() self.move(300, 300) def Base(self): conn=sqlite3.connect("holamundo.db") cur=conn.cursor() cur.execute("create table if not exists listanegra(id INTEGER primary key, nombre varchar(20))") conn.commit() conn.close() def agregar(self): nom=self.lineEdit.text() if (nom.isspace()==True or nom==""): self.lineEdit.setText("") else: conn=sqlite3.connect("holamundo.db") cur=conn.cursor() cur.execute("""INSERT INTO listanegra (nombre) VALUES (?)""",(nom,)) conn.commit() conn.close() self.lineEdit.setText("") self.actualizar() def actualizar(self): self.listWidget.clear() mostrar=[] conn=sqlite3.connect("holamundo.db") cur=conn.cursor() cursor=cur.execute("select nombre from listanegra") for row in cursor: indice=0
self.listWidget.addItem(row[indice]) indice+=1
mostrar.append(row) conn.commit() conn.close() def borrar(self): dd=self.listWidget.currentRow() if dd!=-1: IDborrado=dd+1
conn=sqlite3.connect("holamundo.db") cur=conn.cursor() cur.execute("""DELETE FROM "listanegra" WHERE id=?""",(IDborrado,)) cur.execute("""UPDATE "listanegra" SET id=id-1 WHERE id>?""",(IDborrado,)) conn.commit() conn.close() self.actualizar() self.lineEdit.setText("") else: pass
app=QtWidgets.QApplication([]) window=MainWindow() window.show() app.exec_()
comprimido de los archivos:
http://depositfiles.com/files/fc4kyik8z
comprimido del .exe
http://depositfiles.com/files/051s15f1c
el que hice en linux...
http://depositfiles.com/files/pwktxwnmj
referencias:
pyside.githud
pythondiario
referencia PyQt5