diff --git a/dm.py b/dm.py index c7bffa2..2f9baf3 100644 --- a/dm.py +++ b/dm.py @@ -29,7 +29,7 @@ def createTables(tbl_list): x = x + 1 qwery_create = qwery_create + index + ");" - #print(qwery_create) + print(qwery_create) i = i + 1 return tbl_names_list diff --git a/gui.py b/gui.py index 95de5a0..5e28b8c 100644 --- a/gui.py +++ b/gui.py @@ -5,18 +5,29 @@ import sys from PyQt5.QtWidgets import (QWidget, QHBoxLayout, QFrame, QSplitter, QStyleFactory, QApplication) from PyQt5.QtCore import Qt -from PyQt5.QtWidgets import QMainWindow, QTextEdit, QAction, QApplication, QListView, QListWidget, QTableWidget , QTableView +from PyQt5.QtWidgets import QMainWindow, QTextEdit, QAction, QApplication, QListView, QListWidget, QTableWidget , QTableView, QTableWidgetItem from PyQt5.QtGui import QIcon -from PyQt5 import QtSql +from PyQt5.QtSql import * +import pymysql import dm +conn = pymysql.connect( +db='ats', +user='dba', +passwd='AlsprofilinE', +host='kis', +charset='utf8') +c = conn.cursor() + class MainWin(QMainWindow): def __init__(self): super().__init__() self.initUI() - + #заглушка + def qqqq(self): + print("ddddddddd") def initUI(self): @@ -25,27 +36,99 @@ class MainWin(QMainWindow): self.setCentralWidget(splitter) #self.setCentralWidget(textEdit) - exitAction = QAction(QIcon('img/close.gif'), 'Выход', self) + newAction = QAction(QIcon('img/new.gif'), 'Добавить', self) + newAction.setShortcut('Ins') + newAction.setStatusTip('Добавить') + newAction.triggered.connect(self.qqqq) + + deleteAction = QAction(QIcon('img/delete.gif'), 'Удалить', self) + deleteAction.setShortcut('Del') + deleteAction.setStatusTip('Удалить') + deleteAction.triggered.connect(self.qqqq) + + exitAction = QAction(QIcon('img/exit.gif'), 'Выход', self) exitAction.setShortcut('Ctrl+Q') exitAction.setStatusTip('Выход') exitAction.triggered.connect(self.close) + cutAction = QAction(QIcon('img/cut.gif'), 'Вырезать', self) + cutAction.setShortcut('Ctrl+X') + cutAction.setStatusTip('Вырезать') + #cutAction.triggered.connect(self.close) + + copyAction = QAction(QIcon('img/copy.gif'), 'Копировать', self) + copyAction.setShortcut('Ctrl+С') + copyAction.setStatusTip('Копировать') + #copyAction.triggered.connect(self.close) + + pasteAction = QAction(QIcon('img/paste.gif'), 'Вставить', self) + pasteAction.setShortcut('Ctrl+V') + pasteAction.setStatusTip('Вставить') + #pasteAction.triggered.connect(self.close) + + findAction = QAction(QIcon('img/find.gif'), 'Копировать', self) + findAction.setShortcut('Ctrl+F') + findAction.setStatusTip('Искать') + # findAction.triggered.connect(self.close) + + printAction = QAction(QIcon('img/print.gif'), 'Печатать', self) + printAction.setShortcut('Ctrl+P') + printAction.setStatusTip('Печатать') + # printAction.triggered.connect(self.close) + + self.statusBar() menubar = self.menuBar() fileMenu = menubar.addMenu('&Файл') + fileMenu.addAction(newAction) + fileMenu.addAction(deleteAction) + fileMenu.addAction(printAction) fileMenu.addAction(exitAction) editMenu = menubar.addMenu('&Редактирование') + editMenu.addAction(copyAction) + editMenu.addAction(cutAction) + editMenu.addAction(pasteAction) + editMenu.addAction(printAction) + helpMenu = menubar.addMenu('&Помощь') - toolbar = self.addToolBar('Выход') - toolbar.addAction(exitAction) + #toolbar = self.addToolBar('Редактирование') + + toolbar = self.addToolBar('Панель инструментов') + toolbar.addAction(newAction) + toolbar.addAction(deleteAction) + toolbar.addAction(copyAction) + toolbar.addAction(cutAction) + toolbar.addAction(pasteAction) + toolbar.addAction(findAction) + toolbar.addAction(printAction) + #toolbar.addAction(exitAction) self.setGeometry(300, 300, 850, 650) self.setWindowTitle('Ацкый быдлокод') self.show() +class MyTable(QTableWidget): + def __init__(self, thestruct, *args): + QTableWidget.__init__(self, *args) + self.data = thestruct + self.setmydata() + + def setmydata(self): + n = 0 + + for key in self.data: + #print(key) + m = 0 + for item in key: + #print(item) + newitem = QTableWidgetItem(item) + self.setItem(m, n, newitem) + n += 1 + m += 1 + class WorkArea(QWidget): @@ -81,22 +164,34 @@ class WorkArea(QWidget): listTablesWidget.addItem(i) # заполняем правый список данными из выбранной таблицы - def addList(tbl_name): - # модель для таблицы - #model = QtSql.QSqlQueryModel(parent=None) - #qwery = "SELECT * FROM " + tbl_name - #model.setQuery(qwery) - #tablesDataWidget.setModel(model) + def addData(tbl_name): + qwery = "SELECT * FROM " + tbl_name + c.execute(qwery) + # удаляем предыдущий виджет таблицы + item = splitter1.widget(1) + if item is not None: + #print(item) + item.deleteLater() - #tablesDataWidget.setWindowTitle("ddd ddd") - #tablesDataWidget.show() - for j in dm.selectData(tbl_name): - print(j) - #tablesDataWidget.addItem(j) + #tablesDataWidget.deleteLater() + # rows = message.count('id') # считает количество строк в таблице + # print(c.fetchall()) + data = c.fetchall() + # проверка на наличие записей в таблице + if data: + # количество строк + rows = len(data) + # КОЛИЧЕСТВО КОЛОНОК + cols = len(data[0]) + table = MyTable(data, rows, cols) + table.setFrameShape(QFrame.StyledPanel) + splitter1.addWidget(table) + #table.show() + #sys.exit(app.exec_()) # обработка нажатия мышой на списке #listTablesWidget.itemClicked.connect(lambda: dm.selectData(listTablesWidget.currentItem)) - listTablesWidget.itemClicked.connect(lambda: addList(listTablesWidget.model().data(listTablesWidget.currentIndex()))) + listTablesWidget.itemClicked.connect(lambda: addData(listTablesWidget.model().data(listTablesWidget.currentIndex()))) def onChanged(self, text): diff --git a/img/archive.gif b/img/archive.gif new file mode 100644 index 0000000..ff40c60 Binary files /dev/null and b/img/archive.gif differ diff --git a/img/back.gif b/img/back.gif new file mode 100644 index 0000000..1375542 Binary files /dev/null and b/img/back.gif differ diff --git a/img/copy.gif b/img/copy.gif new file mode 100644 index 0000000..3252eb9 Binary files /dev/null and b/img/copy.gif differ diff --git a/img/cut.gif b/img/cut.gif new file mode 100644 index 0000000..623b0ab Binary files /dev/null and b/img/cut.gif differ diff --git a/img/delete.gif b/img/delete.gif new file mode 100644 index 0000000..e59d02d Binary files /dev/null and b/img/delete.gif differ diff --git a/img/exit.gif b/img/exit.gif new file mode 100644 index 0000000..abe8e8f Binary files /dev/null and b/img/exit.gif differ diff --git a/img/find.gif b/img/find.gif new file mode 100644 index 0000000..ed860d9 Binary files /dev/null and b/img/find.gif differ diff --git a/img/forward.gif b/img/forward.gif new file mode 100644 index 0000000..9b56ebb Binary files /dev/null and b/img/forward.gif differ diff --git a/img/help.gif b/img/help.gif new file mode 100644 index 0000000..d770ae0 Binary files /dev/null and b/img/help.gif differ diff --git a/img/new.gif b/img/new.gif new file mode 100644 index 0000000..60dae26 Binary files /dev/null and b/img/new.gif differ diff --git a/img/open.gif b/img/open.gif new file mode 100644 index 0000000..a50d09d Binary files /dev/null and b/img/open.gif differ diff --git a/img/paste.gif b/img/paste.gif new file mode 100644 index 0000000..39c4c9d Binary files /dev/null and b/img/paste.gif differ diff --git a/img/pdf.gif b/img/pdf.gif new file mode 100644 index 0000000..be7ea6e Binary files /dev/null and b/img/pdf.gif differ diff --git a/img/pdf_preview.gif b/img/pdf_preview.gif new file mode 100644 index 0000000..3db04ce Binary files /dev/null and b/img/pdf_preview.gif differ diff --git a/img/print.gif b/img/print.gif new file mode 100644 index 0000000..9be61a7 Binary files /dev/null and b/img/print.gif differ diff --git a/img/refresh.gif b/img/refresh.gif new file mode 100644 index 0000000..9b7e599 Binary files /dev/null and b/img/refresh.gif differ diff --git a/img/save.gif b/img/save.gif new file mode 100644 index 0000000..b1b2ac2 Binary files /dev/null and b/img/save.gif differ diff --git a/img/save_all.gif b/img/save_all.gif new file mode 100644 index 0000000..1330451 Binary files /dev/null and b/img/save_all.gif differ diff --git a/img/save_as.gif b/img/save_as.gif new file mode 100644 index 0000000..bcc93de Binary files /dev/null and b/img/save_as.gif differ diff --git a/img/table.gif b/img/table.gif new file mode 100644 index 0000000..0f9108c Binary files /dev/null and b/img/table.gif differ diff --git a/img/top.gif b/img/top.gif new file mode 100644 index 0000000..76b4cab Binary files /dev/null and b/img/top.gif differ diff --git a/img/undo.gif b/img/undo.gif new file mode 100644 index 0000000..0f832bf Binary files /dev/null and b/img/undo.gif differ diff --git a/tables.json b/tables.json index 7717d84..3982842 100644 --- a/tables.json +++ b/tables.json @@ -88,6 +88,47 @@ "autoIncrement": "no" } ] + }, + { + "tableName": "address", + "tableDescription": "Список адресов", + "fieldList": [ + { + "fName": "id", + "fDescr": "Номер п.п.", + "fType": "int(6)", + "index": "PRIMARY KEY", + "autoIncrement": "yes" + }, + { + "fName": "region", + "fDescr": "Регион", + "fType": "varchar(100)", + "index": "yes", + "autoIncrement": "no" + }, + { + "fName": "city", + "fDescr": "Населеннй пункт", + "fType": "varchar(200)", + "index": "no", + "autoIncrement": "no" + }, + { + "fName": "street", + "fDescr": "Улица", + "fType": "varchar(100)", + "index": "no", + "autoIncrement": "no" + }, + { + "fName": "house", + "fDescr": "Дом", + "fType": "char(6)", + "index": "no", + "autoIncrement": "no" + } + ] } ] }