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,
QSplitter, QStyleFactory, QApplication)
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.QtSql import *
#import pymysql
@ -116,7 +116,16 @@ class MyTable(QTableWidget):
self.data = thestruct
self.setmydata()
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)
n = 0
for item in dm.getTablesStructure(self.tbl):
@ -146,6 +155,7 @@ class WorkArea(QWidget):
# список таблиц
listTablesWidget = QListWidget()
listTablesWidget.setFrameShape(QFrame.StyledPanel)
listTablesWidget.setFixedWidth(200)
# таблица для вывода данных
tablesDataWidget = QTableView()
tablesDataWidget.setFrameShape(QFrame.StyledPanel)
@ -156,17 +166,25 @@ class WorkArea(QWidget):
splitter2 = QSplitter(Qt.Vertical)
splitter2.addWidget(splitter1)
#splitter1.setSizes([100, 300])
hbox.addWidget(splitter2)
#splitter1.setStretchFactor(1, 0)
#splitter1.sizeHint()
self.setLayout(hbox)
# выводим список таблиц в левом поле
for i in dm.initDBstructure():
listTablesWidget.addItem(i[0])
tblList = dm.initDBstructure()
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)
if item is not None: