class StartAbout(QtGui.QDialog): def __init__(self, parent=None): super(StartAbout, self).__init__(parent) self.ui_about = Ui_About() self.ui_about.setupUi(self)
class About(QWidget): def __init__(self): super(About, self).__init__() self.ui = Ui_About() self.ui.setupUi(self) def about(self): self.show()
def __init__(self, parent=None): QtGui.QDialog.__init__(self, parent) self.p = parent self.ui = Ui_About() self.ui.setupUi(self) self.ui.buttonBox.button(self.ui.buttonBox.Ok).clicked.connect( self.close)
class StartQT4(QtGui.QDialog): def __init__(self, parent=None): QtGui.QDialog.__init__(self, parent) self.ui_about = Ui_About() self.ui_about.setupUi(self)
class About( QMainWindow ): def __init__( self, parent = None ): QWidget.__init__( self, parent) self.parent = parent self.ui = Ui_About() self.ui.setupUi( self ) QObject.connect( self.ui.Ok, SIGNAL( "clicked()"), self.close ) self.show()
class About(QtGui.QDialog): def __init__(self, parent=None): QtGui.QDialog.__init__(self, parent) self.p = parent self.ui = Ui_About() self.ui.setupUi(self) self.ui.buttonBox.button(self.ui.buttonBox.Ok).clicked.connect(self.close) def keyPressEvent(self, e): if e.key() == QtCore.Qt.Key_Escape: self.close()
class About(QtGui.QDialog): def __init__(self, parent=None): QtGui.QDialog.__init__(self, parent) self.p = parent self.ui = Ui_About() self.ui.setupUi(self) self.ui.buttonBox.button(self.ui.buttonBox.Ok).clicked.connect( self.close) def keyPressEvent(self, e): if e.key() == QtCore.Qt.Key_Escape: self.close()
def about(self): self.aboutWindow = QtWidgets.QWidget() self.about = Ui_About() self.about.setupUi(self.aboutWindow) self.aboutWindow.show()
class MainWindow_EXEC(): def __init__(self): app = QtWidgets.QApplication(sys.argv) MainWindow = QtWidgets.QMainWindow() self.ui = Ui_UsageStats() self.ui.setupUi(MainWindow) self.tableicon = None self.headerItem = None self.chkBoxItem = None self.currentstate = {} self.type = None self.model = None self.evidence_number = None self.device_owner = None self.case_number = None self.Investigator = None self.crime_code = None self.picturepath = {} self.ui.actionNew_Case_2.triggered.connect(self.newcasewindow) self.current_dir = None self.ui.actionOpen_Case.triggered.connect(self.openusagestatscasewindow) self.ui.actionRemove_Case_Folder.triggered.connect(self.deletefolderwindow) self.ui.radioButton_4.toggled.connect(lambda:self.btnstate(self.ui.radioButton_4)) self.ui.radioButton_2.toggled.connect(lambda:self.btnstate(self.ui.radioButton_2)) self.ui.radioButton_3.toggled.connect(lambda:self.btnstate(self.ui.radioButton_3)) self.ui.pushButton.clicked.connect(self.create_html_report) self.ui.actionAbout.triggered.connect(self.about) self.ui.actionRead_Me.triggered.connect(self.readme) MainWindow.show() sys.exit(app.exec_()) def readme(self): os.startfile(os.getcwd()+'/icons/Help.pdf') def about(self): self.aboutWindow = QtWidgets.QWidget() self.about = Ui_About() self.about.setupUi(self.aboutWindow) self.aboutWindow.show() def btnstate(self,button): for k,v in self.currentstate.items(): if button.text() == "Show All": self.ui.tableWidget.setRowHidden(k, False) elif button.text() == "Show Checked": if v == 2: self.ui.tableWidget.setRowHidden(k, False) elif v == 0: self.ui.tableWidget.setRowHidden(k, True) elif button.text() == "Show Unchecked": if v == 2: self.ui.tableWidget.setRowHidden(k, True) elif v == 0: self.ui.tableWidget.setRowHidden(k, False) def newcasewindow(self): self.newCaseWindow = QtWidgets.QWidget() self.newui = Ui_Form() self.newui.setupUi(self.newCaseWindow) self.newui.buttonBox.accepted.connect(self.getfile) self.newCaseWindow.show() def getfile(self): case_Number = self.newui.lineEdit.text() evidence_item_number = self.newui.lineEdit_3.text() investigator = self.newui.lineEdit_4.text() crime_code = self.newui.lineEdit_2.text() device_owner = self.newui.lineEdit_6.text() blank = [case_Number,evidence_item_number,investigator,crime_code] if "" in blank: error_dialog = QtWidgets.QMessageBox() error_dialog.setIcon(QtWidgets.QMessageBox.Warning) error_dialog.setWindowTitle('Error') error_dialog.setText('All Fields Are Required!') error_dialog.setStandardButtons(QtWidgets.QMessageBox.Close) error_dialog.exec() elif self.newui.radioButton.isChecked() == False and self.newui.radioButton_2.isChecked() == False: error_dialog = QtWidgets.QMessageBox() error_dialog.setIcon(QtWidgets.QMessageBox.Warning) error_dialog.setWindowTitle('Error') error_dialog.setText('Please select a file type!') error_dialog.setStandardButtons(QtWidgets.QMessageBox.Close) error_dialog.exec() else: if self.newui.radioButton.isChecked(): self.filetype = "usagestats" if self.newui.radioButton_2.isChecked(): self.filetype = "Recenttask" filename = QtWidgets.QFileDialog.getExistingDirectory() if filename != "": self.newCaseWindow.close() self.current_dir = os.getcwd()+f"/CaseFolders/{case_Number}/{evidence_item_number}" if os.path.isdir(self.current_dir): pass else: os.makedirs(self.current_dir) if self.filetype == "usagestats": datapath = f"{self.current_dir}/usagestats.db" elif self.filetype == "Recenttask": os.makedirs(f'{self.current_dir}/images') datapath = f"{self.current_dir}/RecentAct.db" f = f"{self.current_dir}/{evidence_item_number}_{self.filetype}.json" if os.path.isfile(f): error_dialog = QtWidgets.QMessageBox() error_dialog.setIcon(QtWidgets.QMessageBox.Warning) error_dialog.setWindowTitle('Error') error_dialog.setText(f'{self.filetype} for this item alread exists!') error_dialog.setStandardButtons(QtWidgets.QMessageBox.Close) error_dialog.exec() else: with open(f,"w") as casefile: json.dump({"Case Number": case_Number,"Item Number": evidence_item_number,"Investigator": investigator,"Crime Code": crime_code,"Device Owner": device_owner,"File Type": self.filetype,"Data Path": datapath},casefile) self.createdb(filename,self.filetype,self.current_dir) def createdb(self,filename, filetype, current_dir): self.run_thread = RunThread() self.run_thread.folder_name = filename self.run_thread.file_type = filetype self.run_thread.parsedatapath = current_dir self.run_thread.imagefolder = f'{self.current_dir}/images' self.run_thread.start() self.run_thread.processedfile.connect(self.printprocessedfile) self.run_thread.finished.connect(self.finishedfile) def printprocessedfile(self,filename): self.ui.statusbar.showMessage(f"Processing {filename}") def finishedfile(self): self.run_thread.quit() self.ui.statusbar.showMessage(f"Processing Finished") finished_dialog = QtWidgets.QMessageBox() finished_dialog.setIcon(QtWidgets.QMessageBox.Information) finished_dialog.setWindowTitle('Processing Finished') finished_dialog.setText('Processing Files is Finished') finished_dialog.setStandardButtons(QtWidgets.QMessageBox.Close) finished = finished_dialog.exec() if finished == QtWidgets.QMessageBox.Close: self.getusagestatsjson(self.current_dir) def openusagestatscasewindow(self): qfd = QtWidgets.QFileDialog() path = os.getcwd() title = "Open" filter = "json(*.json)" filename = QtWidgets.QFileDialog.getOpenFileName(qfd,title,path,filter)[0] if filename != "": self.loadusagestatstale(filename) def getusagestatsjson(self, casedir): if self.filetype == "usagestats": filename = glob.glob(casedir+'/*_usagestats.json')[0] elif self.filetype == "Recenttask": filename = glob.glob(casedir+'/*_Recenttask.json')[0] self.loadusagestatstale(filename) def deletefolderwindow(self): qfd = QtWidgets.QFileDialog() path = os.getcwd() title = "Delete Case/Evidence Item Folder" foldername = QtWidgets.QFileDialog.getExistingDirectory(qfd,title,path) self.areyousurefolder(foldername) def areyousurefolder(self,foldername): folder = foldername.split("/")[-1] type = "folder" areyousure_dialog = QtWidgets.QMessageBox() areyousure_dialog.setIcon(QtWidgets.QMessageBox.Warning) areyousure_dialog.setWindowTitle('Delete Case/Evidence Folder') if folder == "CaseFolders": areyousure_dialog.setText(f'\nCannot Delete All Case Folders at one time! ') areyousure_dialog.setStandardButtons(QtWidgets.QMessageBox.Cancel) elif 'CaseFolders' not in foldername: areyousure_dialog.setText(f'\nCannot Delete Folders not \n associate to this program!') areyousure_dialog.setStandardButtons(QtWidgets.QMessageBox.Cancel) else: areyousure_dialog.setText(f'Are you sure you want to remove \n {folder}!') areyousure_dialog.setStandardButtons(QtWidgets.QMessageBox.Yes|QtWidgets.QMessageBox.Cancel) answer = areyousure_dialog.exec() if answer == QtWidgets.QMessageBox.Cancel: areyousure_dialog.close() elif answer == QtWidgets.QMessageBox.Yes: self.removefile(foldername,type) def removefile(self,filename,type): try: shutil.rmtree(filename) except: print("can't remove") def loadusagestatstale(self,usagejson): self.ui.tableWidget.setRowCount(0) self.ui.radioButton_4.setEnabled(True) self.ui.radioButton_2.setEnabled(True) self.ui.radioButton_3.setEnabled(True) self.ui.radioButton_4.setChecked(True) self.ui.groupBox_2.setEnabled(True) rowPosition = 0 self.ui.statusbar.showMessage("") with open(usagejson) as f: casedata = json.load(f) self.evidence_number = casedata["Item Number"] self.ui.label_4.setText(casedata["Item Number"]) self.device_owner = casedata["Device Owner"] self.ui.label_5.setText(casedata["Device Owner"]) self.case_number = casedata["Case Number"] self.ui.label_6.setText(casedata["Case Number"]) self.Investigator = casedata["Investigator"] self.crime_code = casedata['Crime Code'] db = casedata["Data Path"] self.filetype = casedata["File Type"] conn = sqlite3.connect(db) cur = conn.cursor() cur.execute("Select * From data") data = cur.fetchall() self.tableicon = os.getcwd()+'/icons/checked.png' self.headerItem = QtWidgets.QTableWidgetItem() self.headerItem.setFlags(QtCore.Qt.ItemIsEnabled|QtCore.Qt.ItemIsSelectable) self.headerItem.setIcon(QtGui.QIcon(QtGui.QPixmap(self.tableicon))) if self.filetype == "usagestats": self.ui.tableWidget.setColumnCount(8) labels = ["","Usage Type","Last Time UTC","Time Active (milliseconds)","Package","Types","Classs","Source"] combolabels = labels[1:] self.ui.tableWidget.setHorizontalHeaderLabels(labels) self.ui.tableWidget.setHorizontalHeaderItem(0,self.headerItem) self.model = QtGui.QStandardItemModel(len(combolabels), 1) firstItem = QtGui.QStandardItem("---- Show/Hide Columns ----") firstItem.setBackground(QtGui.QBrush(QtGui.QColor(200, 200, 200))) firstItem.setSelectable(False) self.model.setItem(0, 0, firstItem) for i,label in enumerate(combolabels): item = QtGui.QStandardItem(label) item.setFlags(QtCore.Qt.ItemIsUserCheckable | QtCore.Qt.ItemIsEnabled) item.setData(QtCore.Qt.Checked, QtCore.Qt.CheckStateRole) self.model.setItem(i+1, 0, item) self.ui.comboBox.setModel(self.model) for record in data: if record[4] == '1': type = 'Moved to Foreground' elif record[4] == '2': type = 'Moved to Background' elif record[4] == '5': type = 'Configuration Change' elif record[4] == '7': type = 'User Interaction' elif record[4] == '8': type = 'Shortcut Invocation' else: type = record[4] unixtime = int(record[1])/1000 timestamp = self.gettime((int(record[1])/1000)) #datetime.utcfromtimestamp(unixtime).strftime('%m-%d-%Y %H:%M:%S') self.chkBoxItem = QtWidgets.QTableWidgetItem() self.chkBoxItem.setFlags(QtCore.Qt.ItemIsUserCheckable | QtCore.Qt.ItemIsEnabled) self.chkBoxItem.setCheckState(QtCore.Qt.Checked) self.ui.tableWidget.insertRow(rowPosition) self.ui.tableWidget.setItem(rowPosition , 0, QtWidgets.QTableWidgetItem(self.chkBoxItem)) self.ui.tableWidget.setItem(rowPosition , 1, QtWidgets.QTableWidgetItem(record[0])) self.ui.tableWidget.setItem(rowPosition , 2, QtWidgets.QTableWidgetItem(timestamp)) self.ui.tableWidget.setItem(rowPosition , 3, QtWidgets.QTableWidgetItem(record[2])) self.ui.tableWidget.setItem(rowPosition , 4, QtWidgets.QTableWidgetItem(record[3])) self.ui.tableWidget.setItem(rowPosition , 5, QtWidgets.QTableWidgetItem(type)) self.ui.tableWidget.setItem(rowPosition , 6, QtWidgets.QTableWidgetItem(record[5])) self.ui.tableWidget.setItem(rowPosition , 7, QtWidgets.QTableWidgetItem(record[6])) item = self.ui.tableWidget.item(rowPosition,0) currentState = item.checkState() self.currentstate.update({rowPosition:currentState}) rowPosition += 1 self.ui.tableWidget.horizontalHeader().setSectionResizeMode(0,QtWidgets.QHeaderView.ResizeToContents) self.ui.tableWidget.horizontalHeader().setSectionResizeMode(4,QtWidgets.QHeaderView.ResizeToContents) self.ui.tableWidget.horizontalHeader().setSectionResizeMode(5,QtWidgets.QHeaderView.ResizeToContents) elif self.filetype == "Recenttask": self.ui.tableWidget.setColumnCount(14) labels = ["","Task ID","Effective_uid","Affinity","Real Activity","First Active Time (UTC)","Last Active Time (UTC)","Last Time Moved (UTC)","Calling PAckage","User ID","Action","Component","Snap","Thumbnail Image"] combolabels = labels[1:] self.ui.tableWidget.setHorizontalHeaderLabels(labels) self.ui.tableWidget.setHorizontalHeaderItem(0,self.headerItem) self.model = QtGui.QStandardItemModel(len(combolabels), 1) firstItem = QtGui.QStandardItem("---- Show/Hide Columns ----") firstItem.setBackground(QtGui.QBrush(QtGui.QColor(200, 200, 200))) firstItem.setSelectable(False) self.model.setItem(0, 0, firstItem) for i,label in enumerate(combolabels): item = QtGui.QStandardItem(label) item.setFlags(QtCore.Qt.ItemIsUserCheckable | QtCore.Qt.ItemIsEnabled) item.setData(QtCore.Qt.Checked, QtCore.Qt.CheckStateRole) self.model.setItem(i+1, 0, item) self.ui.comboBox.setModel(self.model) for record in data: if record[11] == 'No Image': image1 = "No Image" else: image1 = QtWidgets.QLabel() image1.setPixmap(QPixmap(record[11]).scaled(300,300,Qt.KeepAspectRatio)) self.picturepath.update({f'{rowPosition}_12':record[11]}) if record[12] == "No Image": image = "No Image" else: image = QtWidgets.QLabel() image.setPixmap(QPixmap(record[12]).scaled(300,300,Qt.KeepAspectRatio)) self.picturepath.update({f'{rowPosition}_13':record[12]}) timestamp = self.gettime((int(record[4])/1000)) timestamp1 = self.gettime((int(record[5])/1000)) try: timestamp2 = self.gettime((int(record[6])/1000)) except: timestamp2 = record[6] self.chkBoxItem = QtWidgets.QTableWidgetItem() self.chkBoxItem.setFlags(QtCore.Qt.ItemIsUserCheckable | QtCore.Qt.ItemIsEnabled) self.chkBoxItem.setCheckState(QtCore.Qt.Checked) self.ui.tableWidget.insertRow(rowPosition) self.ui.tableWidget.setItem(rowPosition , 0, QtWidgets.QTableWidgetItem(self.chkBoxItem)) self.ui.tableWidget.setItem(rowPosition , 1, QtWidgets.QTableWidgetItem(record[0])) self.ui.tableWidget.setItem(rowPosition , 2, QtWidgets.QTableWidgetItem(record[1])) self.ui.tableWidget.setItem(rowPosition , 3, QtWidgets.QTableWidgetItem(record[2])) self.ui.tableWidget.setItem(rowPosition , 4, QtWidgets.QTableWidgetItem(record[3])) self.ui.tableWidget.setItem(rowPosition , 5, QtWidgets.QTableWidgetItem(timestamp)) self.ui.tableWidget.setItem(rowPosition , 6, QtWidgets.QTableWidgetItem(timestamp1)) self.ui.tableWidget.setItem(rowPosition , 7, QtWidgets.QTableWidgetItem(timestamp2)) self.ui.tableWidget.setItem(rowPosition , 8, QtWidgets.QTableWidgetItem(record[7])) self.ui.tableWidget.setItem(rowPosition , 9, QtWidgets.QTableWidgetItem(record[8])) self.ui.tableWidget.setItem(rowPosition , 10, QtWidgets.QTableWidgetItem(record[9])) self.ui.tableWidget.setItem(rowPosition , 11, QtWidgets.QTableWidgetItem(record[10])) if record[11] == "No Image": self.ui.tableWidget.setItem(rowPosition , 12, QtWidgets.QTableWidgetItem(record[11])) else: self.ui.tableWidget.setCellWidget(rowPosition , 12, image1) if record[12] == "No Image": self.ui.tableWidget.setItem(rowPosition , 13, QtWidgets.QTableWidgetItem(record[12])) else: self.ui.tableWidget.setCellWidget(rowPosition , 13, image) item = self.ui.tableWidget.item(rowPosition,0) currentState = item.checkState() self.currentstate.update({rowPosition:currentState}) rowPosition += 1 self.ui.tableWidget.horizontalHeader().setSectionResizeMode(0,QtWidgets.QHeaderView.ResizeToContents) self.ui.tableWidget.horizontalHeader().setSectionResizeMode(1,QtWidgets.QHeaderView.ResizeToContents) self.ui.tableWidget.resizeRowsToContents() self.ui.tableWidget.cellChanged.connect(self.onCellChanged) self.ui.tableWidget.horizontalHeader().sectionClicked.connect(self.toggleCheckState) self.ui.comboBox.view().pressed.connect(self.handleItemPressed) self.ui.comboBox.view().clicked.connect(self.combocheckbox) self.ui.tableWidget.cellClicked.connect(self.bringupimage) self.changeicon() def bringupimage(self,row,column): if column == 12 or column == 13: try: os.startfile(self.picturepath[f'{row}_{column}']) except: pass def combocheckbox(self,index): item = self.model.itemFromIndex(index) if item.row() == 0: pass else: if item.checkState() == 0: self.ui.tableWidget.setColumnHidden(item.row(), True) elif item.checkState() == 2: self.ui.tableWidget.setColumnHidden(item.row(), False) def handleItemPressed(self,index): item = self.model.itemFromIndex(index) if item.row() == 0: pass else: if item.checkState() == 0: item.setData(QtCore.Qt.Checked, QtCore.Qt.CheckStateRole) self.ui.tableWidget.setColumnHidden(item.row(), False) elif item.checkState() == 2: item.setData(QtCore.Qt.Unchecked, QtCore.Qt.CheckStateRole) self.ui.tableWidget.setColumnHidden(item.row(), True) def gettime(self,unixtime): return datetime.utcfromtimestamp(unixtime).strftime('%m-%d-%Y %H:%M:%S') def onCellChanged(self,row,column): item = self.ui.tableWidget.item(row, column) current = item.checkState() self.currentstate.update({row:current}) self.changeicon() def changeicon(self): item1 = self.ui.tableWidget.item(0, 0).checkState() checked = set(list(self.currentstate.values())) if checked == {0}: self.tableicon = os.getcwd()+'/icons/unchecked.png' self.headerItem.setIcon(QtGui.QIcon(QtGui.QPixmap(self.tableicon))) self.ui.tableWidget.setHorizontalHeaderItem(0,self.headerItem) elif checked == {2}: self.tableicon = os.getcwd()+'/icons/checked.png' self.headerItem.setIcon(QtGui.QIcon(QtGui.QPixmap(self.tableicon))) self.ui.tableWidget.setHorizontalHeaderItem(0,self.headerItem) elif checked == {0,2}: self.tableicon = os.getcwd()+'/icons/intermediate.png' self.headerItem.setIcon(QtGui.QIcon(QtGui.QPixmap(self.tableicon))) self.ui.tableWidget.setHorizontalHeaderItem(0,self.headerItem) def toggleCheckState(self,index): if index == 0: if self.tableicon == os.getcwd()+'/icons/checked.png': for row in range(0,self.ui.tableWidget.rowCount()): self.chkBoxItem.setCheckState(QtCore.Qt.Unchecked) self.ui.tableWidget.setItem(row , 0, QtWidgets.QTableWidgetItem(self.chkBoxItem)) self.currentstate.update({row:0}) elif self.tableicon == os.getcwd()+'/icons/unchecked.png' or self.tableicon == os.getcwd()+'/icons/intermediate.png': for row in range(0,self.ui.tableWidget.rowCount()): self.chkBoxItem.setCheckState(QtCore.Qt.Checked) self.ui.tableWidget.setItem(row , 0, QtWidgets.QTableWidgetItem(self.chkBoxItem)) self.currentstate.update({row:2}) self.changeicon() if index == 1: pass def create_html_report(self): self.report_info_window = QtWidgets.QWidget() self.reportwindow = Ui_ReportInfo() self.reportwindow.setupUi(self.report_info_window) self.report_info_window.show() self.reportwindow.lineEdit.setText(self.case_number) self.reportwindow.lineEdit_4.setText(self.evidence_number) self.reportwindow.lineEdit_3.setText(self.Investigator) self.reportwindow.lineEdit_2.setText(self.crime_code) self.reportwindow.lineEdit_6.setText(self.device_owner) self.reportwindow.buttonBox.accepted.connect(self.begin_report) def begin_report(self): try: Save_Location = os.path.expanduser('~') os.makedirs(f'{Save_Location}\\Documents\\US_RT Reports') except: pass if self.reportwindow.radioButton.isChecked() == True: self.checkvalue = [0,2] elif self.reportwindow.radioButton_2.isChecked() == True: self.checkvalue = [2] elif self.reportwindow.radioButton_3.isChecked() == True: self.checkvalue = [0] self.report_info_window.close() self.ui.statusbar.showMessage(f"Creating Report") self.run_thread2 = RunThread2() self.run_thread2.picturepath = self.picturepath self.run_thread2.checkvalue = self.checkvalue self.run_thread2.evidence_number = self.evidence_number self.run_thread2.device_owner = self.device_owner self.run_thread2.case_number = self.case_number self.run_thread2.Investigator = self.Investigator self.run_thread2.crime_code = self.crime_code self.run_thread2.table = self.ui.tableWidget self.run_thread2.type = self.filetype self.run_thread2.start() self.run_thread2.finished.connect(self.report_finished) def report_finished(self, finish_message): self.run_thread2.quit() self.ui.statusbar.showMessage(f"Report Finised") finished_dialog = QtWidgets.QMessageBox() finished_dialog.setIcon(QtWidgets.QMessageBox.Information) finished_dialog.setWindowTitle('Report Finished') finished_dialog.setText(f'Your report is located at \n {finish_message}') finished_dialog.setStandardButtons(QtWidgets.QMessageBox.Close) finished = finished_dialog.exec() if finished == QtWidgets.QMessageBox.Close: self.clear_statusbar(finish_message) def clear_statusbar(self,finish_message): self.ui.statusbar.showMessage(f"") os.startfile(finish_message)
def __init__(self): super(About, self).__init__() self.ui = Ui_About() self.ui.setupUi(self)
def __init__(self, parent=None): QtGui.QDialog.__init__(self, parent) self.p = parent self.ui = Ui_About() self.ui.setupUi(self) self.ui.buttonBox.button(self.ui.buttonBox.Ok).clicked.connect(self.close)
def displayAbout(self): DialogAbout = QtGui.QDialog(self) ui = Ui_About() ui.setupUi(DialogAbout) DialogAbout.show()
def __init__(self): QtGui.QDialog.__init__(self) # Set up the user interface from Designer. self.ui = Ui_About() self.ui.setupUi(self)
def openAbout(self): self.aboutWindow = QtWidgets.QMainWindow() self.ui = Ui_About() self.ui.setupUi(self.aboutWindow) self.aboutWindow.setWindowTitle('About') self.aboutWindow.show()
def show_about_ds(cls): dialog = QDialog() about = Ui_About() about.setupUi(dialog) dialog.exec_()
def __init__(self, parent=None): super(StartAbout, self).__init__(parent) self.ui_about = Ui_About() self.ui_about.setupUi(self)
def open_About(self): dialog = QtWidgets.QDialog() dialog.ui = Ui_About() dialog.ui.setupUi(dialog) dialog.exec_() dialog.show()
def __init__(self): QtGui.QDialog.__init__(self) # Set up the user interface from Designer. self.ui =Ui_About() self.ui.setupUi(self)