Merge pull request 'VIS-22 added Library table' (#2) from VIS-22 into master

Reviewed-on: #2
This commit is contained in:
Helena Gałązka 2020-12-21 17:43:16 +01:00
commit 3862848a7e
3 changed files with 63 additions and 4 deletions

View File

View File

View File

@ -1,11 +1,63 @@
#import tkinter as tk #import tkinter as tk
import sys import sys
import os import os
from datetime import datetime
from PyQt5 import QtCore from PyQt5 import QtCore
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QMainWindow, QGridLayout, QMenu, QFileDialog, QAction from PyQt5.QtWidgets import *
from PyQt5.QtGui import QIcon, QPixmap from PyQt5.QtGui import QIcon, QPixmap
from PyQt5.QtCore import *
scriptPath = os.path.dirname(os.path.realpath(__file__))
filePath = scriptPath + '\\files\\input'
def files(path):
for file in os.listdir(path):
if os.path.isfile(os.path.join(path, file)):
yield file
class LibraryTableButtons(QWidget):
def __init__(self, parent=None):
super(LibraryTableButtons,self).__init__(parent)
layout = QHBoxLayout()
layout.setContentsMargins(0,0,0,0)
layout.setSpacing(0)
layout.addWidget(QPushButton('View'))
layout.addWidget(QPushButton('Delete'))
self.setLayout(layout)
class LibraryTable(QTableWidget):
def __init__(self, parent=None):
QTableWidget.__init__(self)
self.setColumnCount(3)
self.setHorizontalHeaderLabels(['Upload date', 'Filename', 'Options'])
self.horizontalHeader().setSectionResizeMode(0, QHeaderView.ResizeToContents)
self.horizontalHeader().setSectionResizeMode(1, QHeaderView.Stretch)
self.horizontalHeader().setSectionResizeMode(2, QHeaderView.ResizeToContents)
dates = []
names = []
for index, file in enumerate(files(filePath)):
dates.append(QTableWidgetItem(str(datetime.fromtimestamp(os.path.getmtime(filePath + '/' + file)))))
names.append(QTableWidgetItem(str(file)))
self.setRowCount(len(dates))
for index, date in enumerate(dates):
self.setItem(index,0,date)
self.setItem(index,1,names[index])
self.setCellWidget(index,2,LibraryTableButtons())
def handleButtonClicked(w):
button = qApp.focusWidget()
# or button = self.sender()
index = self.table.indexAt(button.pos())
if index.isValid():
print(index.row(), index.column())
def main(): def main():
app = QApplication(sys.argv) app = QApplication(sys.argv)
@ -29,7 +81,16 @@ def main():
homeMenu = QMenu("&Home", w) homeMenu = QMenu("&Home", w)
menuBar.addMenu(homeMenu) menuBar.addMenu(homeMenu)
homeMenu.addAction("Load new file") homeMenu.addAction("Load new file")
# Show raw uploaded files
def showLibrary():
libTable = LibraryTable()
w.setCentralWidget(libTable)
libraryAct = QAction('&Library', w)
libraryAct.triggered.connect(showLibrary)
menuBar.addAction(libraryAct)
# Exit app # Exit app
exitAct = QAction('&Exit', w) exitAct = QAction('&Exit', w)
exitAct.setShortcut('Ctrl+Q') exitAct.setShortcut('Ctrl+Q')
@ -37,8 +98,6 @@ def main():
exitAct.triggered.connect(app.quit) exitAct.triggered.connect(app.quit)
homeMenu.addAction(exitAct) homeMenu.addAction(exitAct)
historyMenu = menuBar.addMenu("&History")
helpMenu = menuBar.addMenu("&Help") helpMenu = menuBar.addMenu("&Help")
w.show() w.show()