#import tkinter as tk import sys import os from datetime import datetime from PyQt5 import QtCore from PyQt5.QtWidgets import * 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, filename, parent=None): super(LibraryTableButtons,self).__init__(parent) def viewFile(): os.startfile(filePath + '\\' + filename) def deleteFile(): os.remove(filePath + '\\' + filename) layout = QHBoxLayout() layout.setContentsMargins(0,0,0,0) layout.setSpacing(0) view_btn = QPushButton('View') view_btn.clicked.connect(viewFile) layout.addWidget(view_btn) delete_btn = QPushButton('Delete') delete_btn.clicked.connect(deleteFile) layout.addWidget(delete_btn) 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(names[index].text())) def main(): app = QApplication(sys.argv) #w = QWidget() w = QMainWindow() w.setGeometry(0, 0, 600, 400) w.setWindowTitle('VisionScore') scriptDir = os.path.dirname(os.path.realpath(__file__)) w.setWindowIcon(QIcon(scriptDir + os.path.sep + 'static/v_logo.jpg')) ''' label = QLabel() pixmap = QPixmap(scriptDir + os.path.sep + 'static/visionscore_logo.jpg') label.setPixmap(pixmap) label.resize(pixmap.width(), pixmap.height()) label.setAlignment(QtCore.Qt.AlignTop) w.setCentralWidget(label) ''' # Toolbar menuBar = w.menuBar() homeMenu = QMenu("&Home", w) menuBar.addMenu(homeMenu) 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 exitAct = QAction('&Exit', w) exitAct.setShortcut('Ctrl+Q') exitAct.setStatusTip('Exit') exitAct.triggered.connect(app.quit) homeMenu.addAction(exitAct) helpMenu = menuBar.addMenu("&Help") w.show() sys.exit(app.exec_()) if __name__ == '__main__': main()