Skip to content
Snippets Groups Projects
Commit bae49b5f authored by Jakub Štercl's avatar Jakub Štercl
Browse files

mend

parent 4095bbbf
No related branches found
No related tags found
No related merge requests found
File moved
class BaseController:
def __init__(self, db):
self.db = db
from controllers.base_controller import BaseController
from windows import mainwindow
from PyQt5 import QtWidgets as Qt
class Mainwindow(Qt.QMainWindow, mainwindow.Ui_MainWindow, BaseController):
def __init__(self, db, parent=None):
super(Mainwindow, self).__init__(parent)
BaseController.__init__(self, db)
self.setupUi(self)
print(self.db.get_groups())
for group in self.db.get_groups():
self.listGroups.addItem(group.name)
self.listGroups.currentItemChanged.connect(self.show_people)
#self.btnBrowse.clicked.connect(self.browse_folder)
#self.list1.currentItemChanged.connect(self.show_content)
def show_people(self, current):
self.listPeople.clear()
import sqlite3 as sqlite
from model.group import Group
class Database:
def __init__(self):
self.connection = sqlite.connect('database.db')
self.connection.isolation_level = None # so we don't have to use self.connection.commit()
def get_groups(self, person_id = None):
if person_id is not None:
curs = self.connection.execute("SELECT * FROM GROUPS WHERE person_id=?", person_id)
else:
curs = self.connection.execute("SELECT * FROM GROUPS")
res = []
for row in curs:
res.append(Group(row))
return res
\ No newline at end of file
#!/usr/bin/env python3
import sqlite3 as sqlite
conn = sqlite.connect('database.db')
conn.isolation_level = None # so we don't have to use self.connection.commit()
curs = conn.cursor()
curs.execute(
'''CREATE TABLE Person (
person_id INTEGER PRIMARY KEY AUTOINCREMENT,
name VARCHAR,
surname VARCHAR
);''')
curs.execute(
'''CREATE TABLE Groups (
id INTEGER PRIMARY KEY,
name VARCHAR UNIQUE
NOT NULL
);'''
)
curs.execute(
'''CREATE TABLE Person_to_group (
person_id INTEGER REFERENCES Person (person_id),
group_id INTEGER REFERENCES Groups (group_id),
PRIMARY KEY (
person_id,
group_id
)
);'''
)
#!/usr/bin/env python3
import sys
from PyQt5 import QtWidgets as Qt
from controllers.mainwindow_controller import Mainwindow
from database import Database
def main():
db = Database()
app = Qt.QApplication(sys.argv)
form = Mainwindow(db)
form.show()
app.exec_()
if __name__ == '__main__':
main()
\ No newline at end of file
class Group:
def __init__(self, db_row):
self.id = db_row[0]
self.name = db_row[1]
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'mainwindow.ui'
#
# Created by: PyQt5 UI code generator 5.8.1
#
# WARNING! All changes made in this file will be lost!
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(748, 464)
self.centralWidget = QtWidgets.QWidget(MainWindow)
self.centralWidget.setObjectName("centralWidget")
self.verticalLayout_2 = QtWidgets.QVBoxLayout(self.centralWidget)
self.verticalLayout_2.setContentsMargins(11, 11, 11, 11)
self.verticalLayout_2.setSpacing(6)
self.verticalLayout_2.setObjectName("verticalLayout_2")
self.horizontalLayout_2 = QtWidgets.QHBoxLayout()
self.horizontalLayout_2.setContentsMargins(11, 11, 11, 11)
self.horizontalLayout_2.setSpacing(6)
self.horizontalLayout_2.setObjectName("horizontalLayout_2")
self.btnAddGroup = QtWidgets.QPushButton(self.centralWidget)
self.btnAddGroup.setFlat(False)
self.btnAddGroup.setObjectName("btnAddGroup")
self.horizontalLayout_2.addWidget(self.btnAddGroup, 0, QtCore.Qt.AlignLeft)
self.verticalLayout_2.addLayout(self.horizontalLayout_2)
self.horizontalLayout = QtWidgets.QHBoxLayout()
self.horizontalLayout.setContentsMargins(11, 11, 11, 11)
self.horizontalLayout.setSpacing(6)
self.horizontalLayout.setObjectName("horizontalLayout")
self.listGroups = QtWidgets.QListWidget(self.centralWidget)
self.listGroups.setViewMode(QtWidgets.QListView.ListMode)
self.listGroups.setObjectName("listGroups")
self.horizontalLayout.addWidget(self.listGroups)
self.tablePeople = QtWidgets.QTableWidget(self.centralWidget)
self.tablePeople.setObjectName("tablePeople")
self.tablePeople.setColumnCount(0)
self.tablePeople.setRowCount(0)
self.horizontalLayout.addWidget(self.tablePeople)
self.verticalLayout_2.addLayout(self.horizontalLayout)
MainWindow.setCentralWidget(self.centralWidget)
self.menuBar = QtWidgets.QMenuBar(MainWindow)
self.menuBar.setGeometry(QtCore.QRect(0, 0, 748, 21))
self.menuBar.setObjectName("menuBar")
MainWindow.setMenuBar(self.menuBar)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
self.btnAddGroup.setText(_translate("MainWindow", "Vytvořit skupinu"))
self.listGroups.setSortingEnabled(True)
self.tablePeople.setSortingEnabled(True)
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>MainWindow</class>
<widget class="QMainWindow" name="MainWindow">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>748</width>
<height>464</height>
</rect>
</property>
<property name="windowTitle">
<string>MainWindow</string>
</property>
<widget class="QWidget" name="centralWidget">
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item alignment="Qt::AlignLeft">
<widget class="QPushButton" name="btnAddGroup">
<property name="text">
<string>Vytvořit skupinu</string>
</property>
<property name="flat">
<bool>false</bool>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QListWidget" name="listGroups">
<property name="viewMode">
<enum>QListView::ListMode</enum>
</property>
<property name="sortingEnabled">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QTableWidget" name="tablePeople">
<property name="sortingEnabled">
<bool>true</bool>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
<widget class="QMenuBar" name="menuBar">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>748</width>
<height>21</height>
</rect>
</property>
</widget>
</widget>
<layoutdefault spacing="6" margin="11"/>
<resources/>
<connections/>
</ui>
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment