from PyQt5.QtWidgets import * from PyQt5 import QtCore, QtWidgets import os from PyQt5 import QtPrintSupport from menu import instructormenu from ManagementUIs import TestDeployment from ManagementUIs import StudentOverview from generate import Generate from questionBank import qbConstructor from grade import Grade from admin import Admin from file import instructorhistory from take import Take from file import test from file import instructorfiles from pref import runPref import Sidebar class CreateInstructorHistory(QWidget): def __init__(self): super(CreateInstructorHistory, self).__init__() # Set up the user interface from Designer. self.ui = instructorhistory.Ui_Dialog() self.ui.setupUi(self) def sizeHint(self): return QtCore.QSize( 500, 475 ) class CreateSidebar(QDockWidget): def __init__(self): super(CreateSidebar, self).__init__() # Set up the user interface from Designer. self.ui = Sidebar.Ui_DockWidget() self.ui.setupUi(self) self.ui.treeWidget.doubleClicked.connect(self.openTestDeployment) self.ui.treeWidget_2.doubleClicked.connect(self.openStudentManager) def openTestDeployment(self): item = self.ui.treeWidget.currentItem() if item != self.ui.treeWidget.topLevelItem(0): self.testDeployment = QtWidgets.QDialog() self.ui3 = TestDeployment.Ui_Dialog() self.ui3.setupUi(self.testDeployment) self.testDeployment.show() def openStudentManager(self): self.studentOverview = QtWidgets.QDialog() ui2 = StudentOverview.Ui_Dialog() ui2.setupUi(self.studentOverview) ui2.label.setText(self.ui.treeWidget_2.currentItem().text(0)) self.studentOverview.show() class MainWindow(QMainWindow): def __init__(self): super(MainWindow, self).__init__() self.generateDialog = Generate.SimpleGenerator() self.advancedDialog = Generate.AdvancedGenerator() self.questionBank = qbConstructor.QuestionBankWindow() self.grading = Grade.MainGradingWindow() self.users = Admin.ManageUsersWindow() self.viewTests = Take.ViewTests() self.pref = runPref.PreferenceWindow() # Set up the user interface from Designer. self.ui = instructormenu.Ui_MainWindow() self.ui.setupUi(self) sideBar = CreateSidebar() history = CreateInstructorHistory() history.ui.tableWidget.sizeHint() self.addDockWidget(QtCore.Qt.LeftDockWidgetArea, sideBar) self.resize(1000,650) vlayout = QVBoxLayout(self.centralWidget()) vlayout.setAlignment(QtCore.Qt.AlignTop) history.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding) vlayout.addWidget(history) self.centralWidget().setLayout(vlayout) #some random resizing #self.ui.topLayout.setSpacing(5) #self.testWidget.ui.treeWidget.setMaximumWidth(400) # to add a widget to the main screen, # do something like this: #self.ui.topLayout.addWidget(self.testWidget.ui.treeWidget) #self.ui.topLayout.addWidget(QPushButton('button2')) #or self.ui.bottomLayout #self.ui.bottomLayout.addWidget(QPushButton('button')) #self.ui.bottomLayout.addWidget(QComboBox()) self.ui.actionSimple_Generate.triggered.connect(self.generateDialog.show) self.ui.actionAdvanced_Generate.triggered.connect(self.advancedDialog.show) self.ui.actionQuestion_Bank.triggered.connect(self.questionBank.show) self.ui.actionGrade.triggered.connect(self.grading.show) self.ui.actionUsers.triggered.connect(self.users.show) self.ui.actionView_All.triggered.connect(self.viewTests.show) self.ui.actionOpen.triggered.connect(self.open) self.ui.actionSave.triggered.connect(self.save) self.ui.actionSave_All_2.triggered.connect(self.save) self.ui.actionSaveAll.triggered.connect(self.save) self.ui.actionExport_As.triggered.connect(self.export) self.ui.actionPrint.triggered.connect(self.print) self.ui.actionPreferences.triggered.connect(self.pref.show) def open(self): fileName = QFileDialog.getOpenFileName(self, 'Open file', os.getenv('HOME')) file = open(fileName, 'r') filedata = file.read() self.text.setText(filedata) file.close() def save(self): fileName = QFileDialog.getSaveFileName(self, 'Save file', os.getenv('HOME')) file = open(fileName, 'r') filedata = file.read() self.text.setText(filedata) file.close() def export(self): fileName = QFileDialog.getSaveFileName(self, 'Export As...', os.getenv('HOME')) file = open(fileName, 'r') filedata = file.read() self.text.setText(filedata) file.close() def print(self): printDialog = QtPrintSupport.QPrintDialog() printDialog.exec()