Change GUI view and usability

This commit is contained in:
Sergey Kalinin 2017-03-16 16:10:47 +03:00
parent c337ef133d
commit 76712014cd

30
gui.py
View File

@ -5,7 +5,7 @@ import sys
from PyQt5.QtWidgets import (QWidget, QHBoxLayout, QFrame, from PyQt5.QtWidgets import (QWidget, QHBoxLayout, QFrame,
QSplitter, QStyleFactory, QApplication) QSplitter, QStyleFactory, QApplication)
from PyQt5.QtCore import Qt from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import QMainWindow, QTextEdit, QAction, QApplication, QListView, QListWidget, QTableWidget , QTableView, QTableWidgetItem from PyQt5.QtWidgets import QMainWindow, QTextEdit, QAction, QApplication, QListView, QListWidget, QTableWidget , QTableView, QTableWidgetItem, QHeaderView
from PyQt5.QtGui import QIcon from PyQt5.QtGui import QIcon
from PyQt5.QtSql import * from PyQt5.QtSql import *
#import pymysql #import pymysql
@ -116,7 +116,16 @@ class MyTable(QTableWidget):
self.data = thestruct self.data = thestruct
self.setmydata() self.setmydata()
self.tbl = tbl self.tbl = tbl
self.resizeColumnsToContents()
self.horizontalHeader().setSortIndicatorShown(True)
self.horizontalHeader().setStretchLastSection(True)
#self.horizontalHeader().stretchLastSection()
self.horizontalHeader().setCascadingSectionResizes(True)
# равномерное изменение ширины столбцов
#self.horizontalHeader().setSectionResizeMode(1)
# изменение ширины столбцов по размеру текста
self.horizontalHeader().setSectionResizeMode(3)
self.horizontalHeader().setStyleSheet("color: blue;")
#print(self.tbl) #print(self.tbl)
n = 0 n = 0
for item in dm.getTablesStructure(self.tbl): for item in dm.getTablesStructure(self.tbl):
@ -146,6 +155,7 @@ class WorkArea(QWidget):
# список таблиц # список таблиц
listTablesWidget = QListWidget() listTablesWidget = QListWidget()
listTablesWidget.setFrameShape(QFrame.StyledPanel) listTablesWidget.setFrameShape(QFrame.StyledPanel)
listTablesWidget.setFixedWidth(200)
# таблица для вывода данных # таблица для вывода данных
tablesDataWidget = QTableView() tablesDataWidget = QTableView()
tablesDataWidget.setFrameShape(QFrame.StyledPanel) tablesDataWidget.setFrameShape(QFrame.StyledPanel)
@ -156,17 +166,25 @@ class WorkArea(QWidget):
splitter2 = QSplitter(Qt.Vertical) splitter2 = QSplitter(Qt.Vertical)
splitter2.addWidget(splitter1) splitter2.addWidget(splitter1)
#splitter1.setSizes([100, 300])
hbox.addWidget(splitter2) hbox.addWidget(splitter2)
#splitter1.setStretchFactor(1, 0)
#splitter1.sizeHint()
self.setLayout(hbox) self.setLayout(hbox)
# выводим список таблиц в левом поле # выводим список таблиц в левом поле
for i in dm.initDBstructure(): tblList = dm.initDBstructure()
listTablesWidget.addItem(i[0]) for i in tblList:
listTablesWidget.addItem(i[1])
# заполняем правый список данными из выбранной таблицы # заполняем правый список данными из выбранной таблицы
def addData(tbl_name): def addData(tbl_descr):
# выбираем название таблицы по описанию
for i in tblList:
if i[1] == tbl_descr:
tbl_name = i[0]
# удаляем предыдущий виджет таблицы # удаляем предыдущий виджет таблицы
item = splitter1.widget(1) item = splitter1.widget(1)
if item is not None: if item is not None: