class WindowUI(object): def __init__(self, main_window): # Set up the base UI elements if not main_window.objectName(): main_window.setObjectName("MainWindow") main_window.resize(self.width, self.height) self.base_widget = QWidget(main_window) self.base_widget.setObjectName("base_widget") self.base_layout = QVBoxLayout() # Set up the main UI elements self.rocket_status = RocketStatusUI(self.base_layout) self.tab_widget = TabUI(left=0, top=self.height // 5, width=self.width, height=math.floor(self.height * 0.5), main_ui=self) self.base_layout.addWidget(self.tab_widget) self.set_up_bars(main_window) main_window.setWindowTitle("Red Kite Avionics Ground Station") main_window.setCentralWidget(self.base_widget) QMetaObject.connectSlotsByName(main_window) self.base_widget.setLayout(self.base_layout) def set_up_bars(self, main_window): self.status_bar = QStatusBar(main_window) self.status_bar.setObjectName("statusbar") main_window.setStatusBar(self.status_bar) self.menu_bar = QMenuBar(main_window) self.menu_bar.setObjectName("menubar") self.menu_bar.setGeometry(QRect(0, 0, self.width, self.height // 10)) main_window.setMenuBar(self.menu_bar) @property def width(self) -> int: return 1200 @property def height(self) -> int: return 800
class MainWindow(QMainWindow): def __init__(self, *args, **kwargs): super(MainWindow, self).__init__(*args, **kwargs) self.setupUi(self) self.player = QMediaPlayer() self.player.error.connect(self.erroralert) self.player.play() # Setup the playlist. self.playlist = QMediaPlaylist() self.player.setPlaylist(self.playlist) # Add viewer for video playback, separate floating window. self.viewer = ViewerWindow(self) self.viewer.setWindowFlags(self.viewer.windowFlags() | Qt.WindowStaysOnTopHint) self.viewer.setMinimumSize(QSize(480, 360)) videoWidget = QVideoWidget() self.viewer.setCentralWidget(videoWidget) self.player.setVideoOutput(videoWidget) # Connect control buttons/slides for media player. self.playButton.pressed.connect(self.player.play) self.pauseButton.pressed.connect(self.player.pause) self.stopButton.pressed.connect(self.player.stop) self.volumeSlider.valueChanged.connect(self.player.setVolume) self.viewButton.toggled.connect(self.toggle_viewer) self.viewer.state.connect(self.viewButton.setChecked) self.previousButton.pressed.connect(self.playlist.previous) self.nextButton.pressed.connect(self.playlist.next) self.model = PlaylistModel(self.playlist) self.playlistView.setModel(self.model) self.playlist.currentIndexChanged.connect( self.playlist_position_changed) selection_model = self.playlistView.selectionModel() selection_model.selectionChanged.connect( self.playlist_selection_changed) self.player.durationChanged.connect(self.update_duration) self.player.positionChanged.connect(self.update_position) self.timeSlider.valueChanged.connect(self.player.setPosition) self.open_file_action.triggered.connect(self.open_file) self.setAcceptDrops(True) self.show() def setupUi(self, MainWindow): MainWindow.setObjectName("MainWindow") MainWindow.resize(484, 371) self.centralWidget = QWidget(MainWindow) sizePolicy = QSizePolicy(QSizePolicy.Maximum, QSizePolicy.Maximum) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.centralWidget.sizePolicy().hasHeightForWidth()) self.centralWidget.setSizePolicy(sizePolicy) self.centralWidget.setObjectName("centralWidget") self.horizontalLayout = QHBoxLayout(self.centralWidget) self.horizontalLayout.setContentsMargins(11, 11, 11, 11) self.horizontalLayout.setSpacing(6) self.horizontalLayout.setObjectName("horizontalLayout") self.verticalLayout = QVBoxLayout() self.verticalLayout.setSpacing(6) self.verticalLayout.setObjectName("verticalLayout") self.playlistView = QListView(self.centralWidget) self.playlistView.setAcceptDrops(True) self.playlistView.setProperty("showDropIndicator", True) self.playlistView.setDragDropMode(QAbstractItemView.DropOnly) self.playlistView.setAlternatingRowColors(True) self.playlistView.setUniformItemSizes(True) self.playlistView.setObjectName("playlistView") self.verticalLayout.addWidget(self.playlistView) self.horizontalLayout_4 = QHBoxLayout() self.horizontalLayout_4.setSpacing(6) self.horizontalLayout_4.setObjectName("horizontalLayout_4") self.currentTimeLabel = QLabel(self.centralWidget) self.currentTimeLabel.setMinimumSize(QSize(80, 0)) self.currentTimeLabel.setAlignment(Qt.AlignRight | Qt.AlignTrailing | Qt.AlignVCenter) self.currentTimeLabel.setObjectName("currentTimeLabel") self.horizontalLayout_4.addWidget(self.currentTimeLabel) self.timeSlider = QSlider(self.centralWidget) self.timeSlider.setOrientation(Qt.Horizontal) self.timeSlider.setObjectName("timeSlider") self.horizontalLayout_4.addWidget(self.timeSlider) self.totalTimeLabel = QLabel(self.centralWidget) self.totalTimeLabel.setMinimumSize(QSize(80, 0)) self.totalTimeLabel.setAlignment(Qt.AlignLeading | Qt.AlignLeft | Qt.AlignVCenter) self.totalTimeLabel.setObjectName("totalTimeLabel") self.horizontalLayout_4.addWidget(self.totalTimeLabel) self.verticalLayout.addLayout(self.horizontalLayout_4) self.horizontalLayout_5 = QHBoxLayout() self.horizontalLayout_5.setSpacing(6) self.horizontalLayout_5.setObjectName("horizontalLayout_5") self.previousButton = QPushButton(self.centralWidget) self.previousButton.setText("") icon = QIcon() icon.addPixmap(QPixmap("images/control-skip-180.png"), QIcon.Normal, QIcon.Off) self.previousButton.setIcon(icon) self.previousButton.setObjectName("previousButton") self.horizontalLayout_5.addWidget(self.previousButton) self.playButton = QPushButton(self.centralWidget) self.playButton.setText("") icon1 = QIcon() icon1.addPixmap(QPixmap("images/control.png"), QIcon.Normal, QIcon.Off) self.playButton.setIcon(icon1) self.playButton.setObjectName("playButton") self.horizontalLayout_5.addWidget(self.playButton) self.pauseButton = QPushButton(self.centralWidget) self.pauseButton.setText("") icon2 = QIcon() icon2.addPixmap(QPixmap("images/control-pause.png"), QIcon.Normal, QIcon.Off) self.pauseButton.setIcon(icon2) self.pauseButton.setObjectName("pauseButton") self.horizontalLayout_5.addWidget(self.pauseButton) self.stopButton = QPushButton(self.centralWidget) self.stopButton.setText("") icon3 = QIcon() icon3.addPixmap(QPixmap("images/control-stop-square.png"), QIcon.Normal, QIcon.Off) self.stopButton.setIcon(icon3) self.stopButton.setObjectName("stopButton") self.horizontalLayout_5.addWidget(self.stopButton) self.nextButton = QPushButton(self.centralWidget) self.nextButton.setText("") icon4 = QIcon() icon4.addPixmap(QPixmap("images/control-skip.png"), QIcon.Normal, QIcon.Off) self.nextButton.setIcon(icon4) self.nextButton.setObjectName("nextButton") self.horizontalLayout_5.addWidget(self.nextButton) self.viewButton = QPushButton(self.centralWidget) self.viewButton.setText("") icon5 = QIcon() icon5.addPixmap(QPixmap("images/application-image.png"), QIcon.Normal, QIcon.Off) self.viewButton.setIcon(icon5) self.viewButton.setCheckable(True) self.viewButton.setObjectName("viewButton") self.horizontalLayout_5.addWidget(self.viewButton) spacerItem = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) self.horizontalLayout_5.addItem(spacerItem) self.label = QLabel(self.centralWidget) self.label.setText("") self.label.setPixmap(QPixmap("images/speaker-volume.png")) self.label.setObjectName("label") self.horizontalLayout_5.addWidget(self.label) self.volumeSlider = QSlider(self.centralWidget) self.volumeSlider.setMaximum(100) self.volumeSlider.setProperty("value", 100) self.volumeSlider.setOrientation(Qt.Horizontal) self.volumeSlider.setObjectName("volumeSlider") self.horizontalLayout_5.addWidget(self.volumeSlider) self.verticalLayout.addLayout(self.horizontalLayout_5) self.horizontalLayout.addLayout(self.verticalLayout) MainWindow.setCentralWidget(self.centralWidget) self.menuBar = QMenuBar(MainWindow) self.menuBar.setGeometry(QRect(0, 0, 484, 22)) self.menuBar.setObjectName("menuBar") self.menuFIle = QMenu(self.menuBar) self.menuFIle.setObjectName("menuFIle") MainWindow.setMenuBar(self.menuBar) self.statusBar = QStatusBar(MainWindow) self.statusBar.setObjectName("statusBar") MainWindow.setStatusBar(self.statusBar) self.open_file_action = QAction(MainWindow) self.open_file_action.setObjectName("open_file_action") self.menuFIle.addAction(self.open_file_action) self.menuBar.addAction(self.menuFIle.menuAction()) self.retranslateUi(MainWindow) QMetaObject.connectSlotsByName(MainWindow) def retranslateUi(self, MainWindow): _translate = QCoreApplication.translate MainWindow.setWindowTitle(_translate("MainWindow", "Failamp")) self.currentTimeLabel.setText(_translate("MainWindow", "0:00")) self.totalTimeLabel.setText(_translate("MainWindow", "0:00")) self.menuFIle.setTitle(_translate("MainWindow", "FIle")) self.open_file_action.setText(_translate("MainWindow", "Open file...")) def dragEnterEvent(self, e): if e.mimeData().hasUrls(): e.acceptProposedAction() def dropEvent(self, e): for url in e.mimeData().urls(): self.playlist.addMedia(QMediaContent(url)) self.model.layoutChanged.emit() # If not playing, seeking to first of newly added + play. if self.player.state() != QMediaPlayer.PlayingState: i = self.playlist.mediaCount() - len(e.mimeData().urls()) self.playlist.setCurrentIndex(i) self.player.play() def open_file(self): path, _ = QFileDialog.getOpenFileName( self, "Open file", "", "mp3 Audio (*.mp3);mp4 Video (*.mp4);Movie files (*.mov);All files (*.*)" ) if path: self.playlist.addMedia(QMediaContent(QUrl.fromLocalFile(path))) self.model.layoutChanged.emit() def update_duration(self, duration): print("!", duration) print("?", self.player.duration()) self.timeSlider.setMaximum(duration) if duration >= 0: self.totalTimeLabel.setText(hhmmss(duration)) def update_position(self, position): if position >= 0: self.currentTimeLabel.setText(hhmmss(position)) # Disable the events to prevent updating triggering a setPosition event (can cause stuttering). self.timeSlider.blockSignals(True) self.timeSlider.setValue(position) self.timeSlider.blockSignals(False) def playlist_selection_changed(self, ix): # We receive a QItemSelection from selectionChanged. i = ix.indexes()[0].row() self.playlist.setCurrentIndex(i) def playlist_position_changed(self, i): if i > -1: ix = self.model.index(i) self.playlistView.setCurrentIndex(ix) def toggle_viewer(self, state): if state: self.viewer.show() else: self.viewer.hide() def erroralert(self, *args): print(args)
class EditorConfigWindow(QMainWindow): def __init__(self): super(EditorConfigWindow, self).__init__() self.started = False self.widget = QWidget() self.setupUi(self) def setupUi(self, MainWindow): if not MainWindow.objectName(): MainWindow.setObjectName(u"MainWindow") MainWindow.resize(1301, 755) self.actionGroup_Editor = QAction(MainWindow) self.actionGroup_Editor.setObjectName(u"actionGroup_Editor") self.actionClient_Editor = QAction(MainWindow) self.actionClient_Editor.setObjectName(u"actionClient_Editor") self.actionProject_Editor = QAction(MainWindow) self.actionProject_Editor.setObjectName(u"actionProject_Editor") self.centralwidget = QWidget(MainWindow) self.centralwidget.setObjectName(u"centralwidget") self.gridLayoutWidget = QWidget(self.centralwidget) self.gridLayoutWidget.setObjectName(u"gridLayoutWidget") self.gridLayoutWidget.setGeometry(QRect(20, 70, 1261, 621)) self.gridLayout = QGridLayout(self.gridLayoutWidget) self.gridLayout.setObjectName(u"gridLayout") self.gridLayout.setContentsMargins(0, 0, 0, 0) MainWindow.setCentralWidget(self.centralwidget) self.menubar = QMenuBar(MainWindow) self.menubar.setObjectName(u"menubar") self.menubar.setGeometry(QRect(0, 0, 1301, 20)) self.menuFile = QMenu(self.menubar) self.menuFile.setObjectName(u"menuFile") self.menuEditors = QMenu(self.menubar) self.menuEditors.setObjectName(u"menuEditors") MainWindow.setMenuBar(self.menubar) self.statusbar = QStatusBar(MainWindow) self.statusbar.setObjectName(u"statusbar") MainWindow.setStatusBar(self.statusbar) self.menubar.addAction(self.menuFile.menuAction()) self.menubar.addAction(self.menuEditors.menuAction()) self.menuEditors.addAction(self.actionGroup_Editor) self.menuEditors.addAction(self.actionClient_Editor) self.menuEditors.addAction(self.actionProject_Editor) self.show() # self.retranslateUi(MainWindow) QMetaObject.connectSlotsByName(MainWindow) # setupUi def retranslateUi(self, MainWindow): MainWindow.setWindowTitle( QCoreApplication.translate("MainWindow", u"MainWindow", None)) self.actionGroup_Editor.setText( QCoreApplication.translate("MainWindow", u"Group Editor", None)) self.actionClient_Editor.setText( QCoreApplication.translate("MainWindow", u"Client Editor", None)) self.actionProject_Editor.setText( QCoreApplication.translate("MainWindow", u"Project Editor", None)) self.menuFile.setTitle( QCoreApplication.translate("MainWindow", u"File", None)) self.menuEditors.setTitle( QCoreApplication.translate("MainWindow", u"Editors", None))
class Ui_MainWindow(object): image_stack=[None] current_effect="" def resize(self): self.timer.stop() temp=QDialog() temp.ui=Ui_Dialog_Resize(self.image_stack[-1]) temp.ui.setupUi(temp) temp.show() temp.exec_() self.image_stack.append(temp.ui.image) self.timer.start(1) pass def cropping(self): if type(self.image_stack[-1])==type(None): print("lol") return self.timer.stop() temp=QDialog() temp.ui=Ui_Dialog(self.image_stack[-1]) temp.ui.setupUi(temp) temp.show() temp.exec_() self.image_stack.append(temp.ui.image) self.timer.start(1) pass def effectFuctions(self,effect,image,amount): if effect=="Brightness": return brightness(image, amount=amount) elif effect=="Saturation": return saturation(image, amount) elif effect=="Sharpen": return sharpness(image, amount) elif effect=="Sepia Effect": return sepia(image, amount) elif effect=="Warm": return warm(image, amount) elif effect == "Cold": return cold(image, amount) elif effect == "Equalize": return equalise(image, amount) elif effect== "Cartoon": return cartoon(image, amount) elif effect== "Blurring": return blurring(image, amount) elif effect== "Pencil Sketch": return pencil_sketch(image, amount) elif effect== "Noise Reduction": return noise_reduction(image, amount) elif effect== "Negetive" : return negative(image, amount) elif effect== "Vignette": return vignette(image, amount) elif effect== "Emboss": return emboss(image, amount) elif effect== "Redden": # lal panni return redden(image, amount) elif effect== "Greenify": # hari panni return greenify(image, amount) elif effect== "Bloom Blue": # nili panni return nili_panni(image, amount) elif effect== "HDR": return hdr(image, amount) elif effect== "Yellow": return yellow_panni(image, amount) def showFrame(self,frame): if type(frame)==type(None): self.label.setText(QCoreApplication.translate("MainWindow", u"<html><head/><body style=\"background-color:powderblue;\"><p align=\"center\">Your Image Here</p></body></html>", None)) return if self.listWidget.selectedItems()!=[]: effect=self.listWidget.selectedItems()[0].text() if effect!=self.current_effect: print("LOL") self.current_effect=effect clearTemp() temp=self.effectFuctions(effect,frame.copy(),self.horizontalSlider.value()) frame= temp if type(temp)!=type(None) else frame frame=cv2.cvtColor(frame,cv2.COLOR_BGR2RGB) image=qimage2ndarray.array2qimage(frame) self.label.setPixmap(QPixmap.fromImage(image)) pass def addImage(self): # self.image_stack=[None] filePath,_=QFileDialog.getOpenFileName(QMainWindow(), 'Open file') self.image_stack.append(cv2.imread(filePath)) pass def saveImage(self): #print("lol") filePath,_=QFileDialog.getSaveFileName(QMainWindow(),"Choose the save location") self.label.pixmap().save(filePath,"jpg",100) #self.cv2.imwrite(filePath,self.image_stack[-1]) #pass def commit(self): frame=self.image_stack[-1] if self.listWidget.selectedItems()==[]: return effect=self.listWidget.selectedItems()[0].text() temp=self.effectFuctions(effect,frame,self.horizontalSlider.value()) #frame= temp if type(temp)!=type(None) else None if type(frame)!=type(None): self.image_stack.append(temp) self.horizontalSlider.setValue(0) self.listWidget.setCurrentItem(None) def cancle(self): self.horizontalSlider.setValue(0) self.listWidget.setCurrentItem(None) def undo(self): if type(self.image_stack)!=type(None): self.image_stack.pop() def setupUi(self, MainWindow): if not MainWindow.objectName(): MainWindow.setObjectName(u"MainWindow") MainWindow.resize(1131, 555) self.centralwidget = QWidget(MainWindow) self.centralwidget.setObjectName(u"centralwidget") self.label = QLabel(self.centralwidget) self.label.setObjectName(u"label") self.label.setGeometry(QRect(10, 60, 781, 431)) self.label.setStyleSheet(u"background-color: rgb(85, 255, 255)") self.label.setScaledContents(True) self.listWidget = QListWidget(self.centralwidget) no_of_widgets=19 for i in range(no_of_widgets): QListWidgetItem(self.listWidget) self.listWidget.setObjectName(u"listWidget") self.listWidget.setGeometry(QRect(850, 160, 256, 201)) self.horizontalSlider = QSlider(self.centralwidget) self.horizontalSlider.setObjectName(u"horizontalSlider") self.horizontalSlider.setGeometry(QRect(870, 70, 211, 22)) self.horizontalSlider.setOrientation(Qt.Horizontal) #print(self.horizontalSlider.value()) self.label_2 = QLabel(self.centralwidget) self.label_2.setObjectName(u"label_2") self.label_2.setGeometry(QRect(930, 10, 101, 51)) self.label_2.setMinimumSize(QSize(0, 31)) self.label_2.setScaledContents(True) self.label_2.setWordWrap(True) self.label_2.setMargin(10) # โ commit button self.pushButton = QPushButton(self.centralwidget) self.pushButton.setObjectName(u"pushButton") self.pushButton.setGeometry(QRect(892, 110, 61, 28)) self.pushButton.clicked.connect(lambda : self.commit()) # โ cancle button self.pushButton_2 = QPushButton(self.centralwidget) self.pushButton_2.setObjectName(u"pushButton_2") self.pushButton_2.setGeometry(QRect(990, 110, 61, 28)) self.pushButton_2.clicked.connect(lambda : self.cancle()) # โฉ๏ธ Undo button self.pushButton_3 = QPushButton(self.centralwidget) self.pushButton_3.setObjectName(u"pushButton_3") self.pushButton_3.setGeometry(QRect(370, 20, 61, 28)) self.pushButton_3.clicked.connect(lambda : self.undo()) #crop self.pushButton_4 = QPushButton(self.centralwidget) self.pushButton_4.setObjectName(u"pushButton_4") self.pushButton_4.setGeometry(QRect(910, 380, 61, 28)) self.pushButton_4.clicked.connect(self.cropping) # Resize self.pushButton_5 = QPushButton(self.centralwidget) self.pushButton_5.setObjectName(u"pushButton_5") self.pushButton_5.setGeometry(QRect(980, 380, 61, 28)) self.pushButton_5.clicked.connect(self.resize) MainWindow.setCentralWidget(self.centralwidget) self.menubar = QMenuBar(MainWindow) self.menubar.setObjectName(u"menubar") self.menubar.setGeometry(QRect(0, 0, 1131, 26)) self.menuNew_File = QMenu(self.menubar) self.menuNew_File.setObjectName(u"menuNew_File") #New File self.actionNew_File = QAction("NewFile") self.actionNew_File.triggered.connect(self.addImage) self.menuNew_File.addAction(self.actionNew_File) #Save File self.actionSave_File = QAction("SaveFile") self.actionSave_File.triggered.connect(self.saveImage) self.menuNew_File.addAction(self.actionSave_File) MainWindow.setMenuBar(self.menubar) self.statusbar = QStatusBar(MainWindow) self.statusbar.setObjectName(u"statusbar") self.timer=QTimer() self.timer.timeout.connect(lambda : self.showFrame(self.image_stack[-1]) ) self.timer.start(1) MainWindow.setStatusBar(self.statusbar) self.menubar.addAction(self.menuNew_File.menuAction()) #self.menubar.addAction(self.menuSave.menuAction()) self.retranslateUi(MainWindow) QMetaObject.connectSlotsByName(MainWindow) # setupUi def retranslateUi(self, MainWindow): MainWindow.setWindowTitle(QCoreApplication.translate("MainWindow", u"MainWindow", None)) self.label.setText(QCoreApplication.translate("MainWindow", u"<html><head/><body style=\"background-color:powderblue;\"><p align=\"center\">Your Image Here</p></body></html>", None)) __sortingEnabled = self.listWidget.isSortingEnabled() self.listWidget.setSortingEnabled(False) ___qlistwidgetitem = self.listWidget.item(0) ___qlistwidgetitem.setText(QCoreApplication.translate("MainWindow", u"Brightness", None)); ___qlistwidgetitem1 = self.listWidget.item(1) ___qlistwidgetitem1.setText(QCoreApplication.translate("MainWindow", u"Saturation", None)); ___qlistwidgetitem2 = self.listWidget.item(2) ___qlistwidgetitem2.setText(QCoreApplication.translate("MainWindow", u"Sharpen", None)); ___qlistwidgetitem3 = self.listWidget.item(3) ___qlistwidgetitem3.setText(QCoreApplication.translate("MainWindow", u"Sepia Effect", None)); ___qlistwidgetitem4 = self.listWidget.item(4) ___qlistwidgetitem4.setText(QCoreApplication.translate("MainWindow", u"Warm", None)); ___qlistwidgetitem5 = self.listWidget.item(5) ___qlistwidgetitem5.setText(QCoreApplication.translate("MainWindow", u"Cold", None)); ___qlistwidgetitem6 = self.listWidget.item(6) ___qlistwidgetitem6.setText(QCoreApplication.translate("MainWindow", u"Equalize", None)); ___qlistwidgetitem7 = self.listWidget.item(7) ___qlistwidgetitem7.setText(QCoreApplication.translate("MainWindow", u"Cartoon", None)); ___qlistwidgetitem8 = self.listWidget.item(8) ___qlistwidgetitem8.setText(QCoreApplication.translate("MainWindow", u"Blurring", None)); ___qlistwidgetitem9 = self.listWidget.item(9) ___qlistwidgetitem9.setText(QCoreApplication.translate("MainWindow", u"Pencil Sketch", None)); ___qlistwidgetitem10 = self.listWidget.item(10) ___qlistwidgetitem10.setText(QCoreApplication.translate("MainWindow", u"Noise Reduction", None)); ___qlistwidgetitem11 = self.listWidget.item(11) ___qlistwidgetitem11.setText(QCoreApplication.translate("MainWindow", u"Negetive", None)); ___qlistwidgetitem12 = self.listWidget.item(12) ___qlistwidgetitem12.setText(QCoreApplication.translate("MainWindow", u"Vignette", None)); #"Redden" "Greenify" "Bloom Blue" "HDR" "Bass" ___qlistwidgetitem13 = self.listWidget.item(13) ___qlistwidgetitem13.setText(QCoreApplication.translate("MainWindow", u"Emboss", None)); ___qlistwidgetitem14 = self.listWidget.item(14) ___qlistwidgetitem14.setText(QCoreApplication.translate("MainWindow", u"Redden", None)); ___qlistwidgetitem15 = self.listWidget.item(15) ___qlistwidgetitem15.setText(QCoreApplication.translate("MainWindow", u"Greenify", None)); ___qlistwidgetitem16 = self.listWidget.item(16) ___qlistwidgetitem16.setText(QCoreApplication.translate("MainWindow", u"Bloom Blue", None)); ___qlistwidgetitem17 = self.listWidget.item(17) ___qlistwidgetitem17.setText(QCoreApplication.translate("MainWindow", u"HDR", None)); ___qlistwidgetitem18 = self.listWidget.item(18) ___qlistwidgetitem18.setText(QCoreApplication.translate("MainWindow", u"Yellow", None)); self.listWidget.setSortingEnabled(__sortingEnabled) self.label_2.setText(QCoreApplication.translate("MainWindow", u"<html><head/><body><p><span style=\" font-size:11pt;\">Amount%</span></p></body></html>", None)) self.pushButton.setText(QCoreApplication.translate("MainWindow", u"\u2705 ", None)) self.pushButton_2.setText(QCoreApplication.translate("MainWindow", u"\u274c", None)) self.pushButton_3.setText(QCoreApplication.translate("MainWindow", u"\u21a9\ufe0f", None)) self.pushButton_4.setText(QCoreApplication.translate("MainWindow", u"Crop", None)) self.pushButton_5.setText(QCoreApplication.translate("MainWindow", u"Resize", None)) self.menuNew_File.setTitle(QCoreApplication.translate("MainWindow", u"File", None))
class Ui_Main_Window(): def Show_Data(self): self.conn = sqlite3.connect("cv.db") self.query =('SELECT * FROM user') self.result = self.conn.execute(self.query) self.listWidget.setRowCount(0) self.listWidget.setColumnWidth( 1, 200) self.listWidget.setColumnWidth( 2, 200) self.listWidget.setColumnWidth( 3, 200) for self.row_num,self.row_data in enumerate(self.result): self.listWidget.insertRow(self.row_num) for self.col_num,self.data in enumerate(self.row_data): self.listWidget.setItem(self.row_num,self.col_num,QTableWidgetItem(str(self.data))) def setupUi(self, Main_Window): def about_fn(): about_msgbox = QMessageBox() about_msgbox.setWindowTitle("About") about_msgbox.setIcon(QMessageBox.Information) about_msgbox.setText(f"CV Collector {settings.version}") about_msgbox.setInformativeText(f''' CV Collector is an app that lets you store your CVs in a secure and lightweight sqlite3 database. {settings.special_text}. ''') about_msgbox.setStandardButtons(QMessageBox.Close) about_msgbox.exec_() font1 = QFont("Roboto", 20) font2 = QFont("Roboto", 16) Main_Window.setObjectName("Main_Window") Main_Window.resize(700, 535) Main_Window.setFixedSize(Main_Window.size()) self.centralwidget = QWidget(Main_Window) self.centralwidget.setObjectName("centralwidget") self.search = QLineEdit(self.centralwidget) self.search.setGeometry(QRect(60, 30, 460, 50)) self.search.setFont(font1) self.search.setPlaceholderText("Search..") menuBar = QMenuBar(self.centralwidget) Help = menuBar.addMenu("Help") About = Help.addAction("About") About.triggered.connect(about_fn) self.addBtn = QPushButton(self.centralwidget) self.addBtn.setGeometry(QRect(20, 90, 191, 41)) self.addBtn.setObjectName("addBtn") self.deleteBtn = QPushButton(self.centralwidget) self.deleteBtn.setGeometry(QRect(245, 90, 191, 41)) self.deleteBtn.setObjectName("deleteBtn") self.showBtn = QPushButton(self.centralwidget) self.showBtn.setGeometry(QRect(470, 90, 191, 41)) self.showBtn.setObjectName("showBtn") self.listWidget = QTableWidget(self.centralwidget) self.listWidget.setGeometry(QRect(20, 150, 661, 350)) self.listWidget.setRowCount(20) self.listWidget.setColumnCount(4) self.listWidget.setObjectName("listWidget") self.listWidget.hideColumn(0) horizontal_names = ('hidden', 'CV Name', 'CV Filename', 'Date') self.listWidget.setHorizontalHeaderLabels(horizontal_names) self.listWidget.setColumnWidth( 1, 200) self.listWidget.setColumnWidth( 2, 200) self.listWidget.setColumnWidth( 3, 200) self.listWidget.setFont(font2) def initialize(): self.Show_Data() initialize() def search_fn(): columnOfInterest = 1 valueOfInterest = self.search.text() for rowIndex in range(self.listWidget.rowCount()): item = self.listWidget.item(rowIndex, columnOfInterest) if self.search.text() in item.text(): self.listWidget.setRowHidden(rowIndex, False) else: self.listWidget.setRowHidden(rowIndex, True) self.searchBtn = QPushButton(self.centralwidget) self.searchBtn.setGeometry(QRect(530, 30, 100, 50)) self.searchBtn.setObjectName("addBtn") self.searchBtn.clicked.connect(search_fn) Main_Window.setCentralWidget(self.centralwidget) self.menubar = QMenuBar(Main_Window) self.menubar.setGeometry(QRect(0, 0, 723, 22)) self.menubar.setObjectName("menubar") Main_Window.setMenuBar(self.menubar) self.statusbar = QStatusBar(Main_Window) self.statusbar.setObjectName("statusbar") Main_Window.setStatusBar(self.statusbar) self.retranslateUi(Main_Window) QMetaObject.connectSlotsByName(Main_Window) self.showBtn.clicked.connect(self.Show_Data) self.addBtn.clicked.connect(self.Add) self.deleteBtn.clicked.connect(self.Delete) def retranslateUi(self, Main_Window): _translate = QCoreApplication.translate Main_Window.setWindowTitle(_translate("Main_Window", "CV Collector")) self.addBtn.setText(_translate("Main_Window", "Add CV")) self.deleteBtn.setText(_translate("Main_Window", "Delete CV")) self.showBtn.setText(_translate("Main_Window", "Update List")) self.searchBtn.setText(_translate("Main_Window", "search")) def Add(self): self.Add_Window = QMainWindow() self.Add_Window_Ui = add.Ui_Add_Window() self.Add_Window_Ui.setupUi(self.Add_Window) self.Add_Window.show() def Delete(self): self.Delete_Window = QMainWindow() self.Delete_Window_Ui = delete.Ui_Delete_Window() self.Delete_Window_Ui.setupUi(self.Delete_Window) self.Delete_Window.show()
class Ui_Delete_Window(object): def Show_Data(self): self.conn = sqlite3.connect("cv.db") self.query = ('SELECT * FROM user') self.result = self.conn.execute(self.query) for self.row_num, self.row_data in enumerate(self.result): self.tableWidget.insertRow(self.row_num) for self.col_num, self.data in enumerate(self.row_data): self.tableWidget.setItem(self.row_num, self.col_num, QTableWidgetItem(str(self.data))) def setupUi(self, Delete_Window): font2 = QFont("Roboto", 16) Delete_Window.setObjectName("Delete_Window") Delete_Window.resize(685, 500) Delete_Window.setFixedSize(Delete_Window.size()) self.centralwidget = QWidget(Delete_Window) self.centralwidget.setObjectName("centralwidget") self.tableWidget = QTableWidget(self.centralwidget) self.tableWidget.setGeometry(QRect(10, 20, 661, 181)) self.tableWidget.setRowCount(10) self.tableWidget.setColumnCount(4) self.tableWidget.setObjectName("tableWidget") self.tableWidget.setRowCount(0) self.tableWidget.setColumnCount(4) self.tableWidget.setObjectName("listWidget") self.tableWidget.hideColumn(0) self.tableWidget.setColumnWidth(1, 200) self.tableWidget.setColumnWidth(2, 200) self.tableWidget.setColumnWidth(3, 200) horizontal_names = ('hidden', 'CV Name', 'CV Filename', 'Date') self.tableWidget.setHorizontalHeaderLabels(horizontal_names) self.tableWidget.setFont(font2) self.numberEdit = QLineEdit(self.centralwidget) self.numberEdit.setGeometry(QRect(20, 240, 651, 41)) self.numberEdit.setObjectName("numberEdit") self.deleteBtn = QPushButton(self.centralwidget) self.deleteBtn.setGeometry(QRect(20, 300, 651, 51)) self.deleteBtn.setObjectName("deleteBtn") self.delete_allBtn = QPushButton(self.centralwidget) self.delete_allBtn.setGeometry(QRect(20, 420, 651, 51)) self.delete_allBtn.setObjectName("delete_allBtn") self.delete_allBtn.clicked.connect(self.Delete_All) self.delete_allBtn.setStyleSheet("background-color: red; color: white") Delete_Window.setCentralWidget(self.centralwidget) self.menubar = QMenuBar(Delete_Window) self.menubar.setGeometry(QRect(0, 0, 685, 22)) self.menubar.setObjectName("menubar") Delete_Window.setMenuBar(self.menubar) self.statusbar = QStatusBar(Delete_Window) self.statusbar.setObjectName("statusbar") Delete_Window.setStatusBar(self.statusbar) self.retranslateUi(Delete_Window) QMetaObject.connectSlotsByName(Delete_Window) self.Show_Data() self.deleteBtn.clicked.connect(self.Delete) def retranslateUi(self, Delete_Window): _translate = QCoreApplication.translate Delete_Window.setWindowTitle(_translate("Delete_Window", "Delete")) self.numberEdit.setPlaceholderText( _translate("Delete_Window", "Enter the number of an entry you want to delete.")) self.deleteBtn.setText(_translate("Delete_Window", "Delete")) self.delete_allBtn.setText(_translate("Delete_Window", "Delete All")) def Delete(self): self.number = int(self.numberEdit.text()) deleted_msgbox = QMessageBox() deleted_msgbox.setIcon(QMessageBox.Information) #deleted_msgbox.setWindowTitle("") deleted_msgbox.setText(f"You're about to delete entry {self.number}") deleted_msgbox.setInformativeText( "You can't reverse this, are you sure you want to proceed?") deleted_msgbox.setStandardButtons(QMessageBox.Yes | QMessageBox.Cancel) result = deleted_msgbox.exec_() if result == QMessageBox.Yes: self.conn = sqlite3.connect("cv.db") self.cur = self.conn.cursor() self.query = ('DELETE FROM user WHERE id = "%s"' % self.number) self.cur.execute(self.query) self.conn.commit() def Delete_All(self): deleted_all_msgbox = QMessageBox() deleted_all_msgbox.setIcon(QMessageBox.Information) deleted_all_msgbox.setWindowTitle("Caution") deleted_all_msgbox.setText( "You're about to delete All of your entries.") deleted_all_msgbox.setInformativeText( "You can't reverse this, are you sure you want to proceed?") deleted_all_msgbox.setStandardButtons(QMessageBox.Yes | QMessageBox.Cancel) result = deleted_all_msgbox.exec_() if result == QMessageBox.Yes: self.conn = sqlite3.connect("cv.db") self.cur = self.conn.cursor() self.cur.execute('DELETE FROM user', ) self.conn.commit() print("all deleted.")
class Ui_MainWindow(object): def __init__(self): self.file_name = "" self.threadpool = QThreadPool() self.num_of_co = 1000 self.alpha = 0.1 self.watermarker = None def setupUi(self, MainWindow): if not MainWindow.objectName(): MainWindow.setObjectName(u"MainWindow") MainWindow.resize(1024, 768) self.centralwidget = QWidget(MainWindow) self.centralwidget.setObjectName(u"centralwidget") self.verticalLayoutWidget_2 = QWidget(self.centralwidget) self.verticalLayoutWidget_2.setObjectName(u"verticalLayoutWidget_2") self.verticalLayoutWidget_2.setGeometry(QRect(0, 0, 1021, 511)) self.pictureLayout = QVBoxLayout(self.verticalLayoutWidget_2) self.pictureLayout.setObjectName(u"pictureLayout") self.pictureLayout.setContentsMargins(0, 0, 0, 0) self.picture_label = QLabel(self.verticalLayoutWidget_2) self.picture_label.setObjectName(u"picture_label") self.pictureLayout.addWidget(self.picture_label) self.picture_button = QPushButton(self.verticalLayoutWidget_2) self.picture_button.setObjectName(u"picture_button") self.pictureLayout.addWidget(self.picture_button) self.horizontalLayoutWidget = QWidget(self.centralwidget) self.horizontalLayoutWidget.setObjectName(u"horizontalLayoutWidget") self.horizontalLayoutWidget.setGeometry(QRect(10, 520, 1011, 120)) self.horizontalLayout_2 = QHBoxLayout(self.horizontalLayoutWidget) self.horizontalLayout_2.setObjectName(u"horizontalLayout_2") self.horizontalLayout_2.setContentsMargins(0, 0, 0, 0) self.verticalLayout_3 = QVBoxLayout() self.verticalLayout_3.setObjectName(u"verticalLayout_3") self.label_2 = QLabel(self.horizontalLayoutWidget) self.label_2.setObjectName(u"label_2") self.verticalLayout_3.addWidget(self.label_2) self.DCT_encode = QPushButton(self.horizontalLayoutWidget) self.DCT_encode.setObjectName(u"DCT_encode") self.verticalLayout_3.addWidget(self.DCT_encode) self.DCT_decode = QPushButton(self.horizontalLayoutWidget) self.DCT_decode.setObjectName(u"DCT_decode") self.verticalLayout_3.addWidget(self.DCT_decode) self.label_4 = QLabel(self.horizontalLayoutWidget) self.label_4.setObjectName(u"label_4") self.verticalLayout_3.addWidget(self.label_4) self.DCT_masg = QLineEdit(self.horizontalLayoutWidget) self.DCT_masg.setObjectName(u"DCT_masg") self.verticalLayout_3.addWidget(self.DCT_masg) self.horizontalLayout_2.addLayout(self.verticalLayout_3) self.verticalLayout = QVBoxLayout() self.verticalLayout.setObjectName(u"verticalLayout") self.label_3 = QLabel(self.horizontalLayoutWidget) self.label_3.setObjectName(u"label_3") self.verticalLayout.addWidget(self.label_3) self.LSB_encode = QPushButton(self.horizontalLayoutWidget) self.LSB_encode.setObjectName(u"LSB_encode") self.verticalLayout.addWidget(self.LSB_encode) self.LSB_decode = QPushButton(self.horizontalLayoutWidget) self.LSB_decode.setObjectName(u"LSB_decode") self.verticalLayout.addWidget(self.LSB_decode) self.lsb_encode_msg = QLabel(self.horizontalLayoutWidget) self.lsb_encode_msg.setObjectName(u"lsb_encode_msg") self.verticalLayout.addWidget(self.lsb_encode_msg) self.LSB_msg = QLineEdit(self.horizontalLayoutWidget) self.LSB_msg.setObjectName(u"LSB_msg") self.verticalLayout.addWidget(self.LSB_msg) self.horizontalLayout_2.addLayout(self.verticalLayout) self.verticalLayoutWidget_3 = QWidget(self.centralwidget) self.verticalLayoutWidget_3.setObjectName(u"verticalLayoutWidget_3") self.verticalLayoutWidget_3.setGeometry(QRect(20, 650, 981, 51)) self.verticalLayout_2 = QVBoxLayout(self.verticalLayoutWidget_3) self.verticalLayout_2.setObjectName(u"verticalLayout_2") self.verticalLayout_2.setContentsMargins(0, 0, 0, 0) self.label_6 = QLabel(self.verticalLayoutWidget_3) self.label_6.setObjectName(u"label_6") self.verticalLayout_2.addWidget(self.label_6) self.progressBar = QProgressBar(self.verticalLayoutWidget_3) self.progressBar.setObjectName(u"progressBar") self.progressBar.setValue(0) self.verticalLayout_2.addWidget(self.progressBar) MainWindow.setCentralWidget(self.centralwidget) self.menubar = QMenuBar(MainWindow) self.menubar.setObjectName(u"menubar") self.menubar.setGeometry(QRect(0, 0, 1024, 21)) MainWindow.setMenuBar(self.menubar) self.statusbar = QStatusBar(MainWindow) self.statusbar.setObjectName(u"statusbar") MainWindow.setStatusBar(self.statusbar) self.retranslateUi(MainWindow) # bind functions self.picture_button.clicked.connect(self.open_file) self.LSB_encode.clicked.connect(self.call_lsb_encode) self.LSB_decode.clicked.connect(self.call_lsb_decode) self.DCT_encode.clicked.connect(self.call_dct_encode) self.DCT_decode.clicked.connect(self.call_dct_decode) # end bind functions() self.hide_progress_bar() self.disable_Methods(True) QMetaObject.connectSlotsByName(MainWindow) # setupUi def retranslateUi(self, MainWindow): MainWindow.setWindowTitle( QCoreApplication.translate("MainWindow", u"Watermarking tool", None)) # self.picture_label.setText(QCoreApplication.translate("MainWindow", u"TextLabel", None)) self.picture_button.setText( QCoreApplication.translate("MainWindow", u"Select picture", None)) self.label_2.setText( QCoreApplication.translate("MainWindow", u"DCT", None)) self.DCT_encode.setText( QCoreApplication.translate("MainWindow", u"encode", None)) self.DCT_decode.setText( QCoreApplication.translate("MainWindow", u"decode", None)) self.label_4.setText( QCoreApplication.translate("MainWindow", u"coeficient:", None)) self.DCT_masg.setText( QCoreApplication.translate("MainWindow", u"1000, 0.1", None)) self.label_3.setText( QCoreApplication.translate("MainWindow", u"LSB", None)) self.LSB_encode.setText( QCoreApplication.translate("MainWindow", u"encode", None)) self.LSB_decode.setText( QCoreApplication.translate("MainWindow", u"decode", None)) self.lsb_encode_msg.setText( QCoreApplication.translate("MainWindow", u"LSB msg:", None)) self.LSB_msg.setText( QCoreApplication.translate("MainWindow", u"secret", None)) self.label_6.setText( QCoreApplication.translate("MainWindow", u"Work in progress:", None)) # retranslateUi # def bindFunctions(self): def load_picture(self): pixmap = QPixmap(self.file_name[0]) if pixmap.width() > pixmap.height(): self.picture_label.setPixmap( pixmap.scaledToWidth(self.picture_label.width())) else: self.picture_label.setPixmap( pixmap.scaledToHeight(self.picture_label.height())) def open_file(self): self.hide_progress_bar() self.file_name = QFileDialog.getOpenFileName( None, "Open Image", "", "Image Files (*.png *.jpg *.bmp)") self.load_picture() self.disable_Methods(False) def method_LSB_encode(self, progress_callback): self.disable_Methods(True) progress_callback.emit(10) msg = self.LSB_msg.text() image = cv2.imread(self.file_name[0]) watermarker = LSBWatermarker(image=image, mode='encode-message', message=msg, filename='result.png') progress_callback.emit(50) self.file_name = ["result.png", ""] watermarker.run() progress_callback.emit(90) self.load_picture() self.disable_Methods(False) progress_callback.emit(100) def method_LSB_decode(self, progress_callback): self.disable_Methods(True) self.LSB_msg.setText("") progress_callback.emit(10) image = cv2.imread(self.file_name[0]) watermarker = LSBWatermarker(image=image, mode='decode-message') progress_callback.emit(50) watermarker.run() self.disable_Methods(False) progress_callback.emit(90) # self.show_decoded_msg(watermarker.decoded_msg) if watermarker.decoded_msg == "Provided file has no message encoded!": self.LSB_msg.setText(watermarker.decoded_msg) else: self.LSB_msg.setText("Decoded: " + watermarker.decoded_msg) progress_callback.emit(100) def method_DCT_encode(self, progress_callback): self.disable_Methods(True) progress_callback.emit(10) msg = self.DCT_masg.text().split(",") try: self.num_of_co = int(msg[0]) self.alpha = float(msg[1]) self.watermarker = WatermarkDCT(self.file_name[0], num_of_co=self.num_of_co, alpha=self.alpha) progress_callback.emit(50) self.watermarker.encode_watermark() self.file_name = ["result_DCT.png", ""] self.DCT_masg.setText("Picture is watermarked?:" + str(self.watermarker.detect_watermark())) except Exception as e: print(e) self.DCT_masg.setText("Error: wrong parameters: example 1000, 0.1") finally: progress_callback.emit(90) self.load_picture() self.disable_Methods(False) progress_callback.emit(100) def method_DCT_decode(self, progress_callback): self.disable_Methods(True) progress_callback.emit(10) try: if self.watermarker is None: self.watermarker = WatermarkDCT(self.file_name[0], num_of_co=self.num_of_co, alpha=self.alpha) progress_callback.emit(50) self.DCT_masg.setText( "Picture is watermarked?:" + str(self.watermarker.detect_watermark(self.file_name[0]))) except Exception as e: print(e) self.DCT_masg.setText("Error: Unable to check the picture.") finally: progress_callback.emit(90) self.load_picture() self.disable_Methods(False) progress_callback.emit(100) def show_decoded_msg(self, msg): msgBox = QMessageBox() msgBox.setWindowTitle("Decoded message:") msgBox.setText(msg) msgBox.exec_() def thread_complete(self): print("THREAD COMPLETE!") def progress_fn(self, n): self.progressBar.setValue(n) def print_output(self, s): print(s) def call_lsb_encode(self): self.show_progress_bar() self.call_function(self.method_LSB_encode) def call_lsb_decode(self): self.show_progress_bar() self.call_function(self.method_LSB_decode) def call_dct_encode(self): self.show_progress_bar() self.call_function(self.method_DCT_encode) def call_dct_decode(self): self.show_progress_bar() self.call_function(self.method_DCT_decode) def call_function(self, fn): worker = Worker( fn) # Any other args, kwargs are passed to the run function worker.signals.result.connect(self.print_output) worker.signals.finished.connect(self.thread_complete) worker.signals.progress.connect(self.progress_fn) # Execute self.threadpool.start(worker) def hide_progress_bar(self): self.progressBar.setValue(0) self.progressBar.setVisible(False) self.label_6.setVisible(False) def show_progress_bar(self): self.progressBar.setValue(0) self.progressBar.setVisible(True) self.label_6.setVisible(True) def disable_Methods(self, disable): self.LSB_encode.setDisabled(disable) self.LSB_decode.setDisabled(disable) self.DCT_decode.setDisabled(disable) self.DCT_encode.setDisabled(disable)
class MainWindow(QMainWindow): def __init__(self, *args, **kwargs): super(MainWindow, self).__init__(*args, **kwargs) self.setupUi(self) self.translator = Translator() self.destTextEdit.setReadOnly(True) if GOOGLE_TRANSLATE_AVAILABLE: self.srcLanguage.addItems(tuple(LANGUAGES.keys())) self.srcLanguage.currentTextChanged[str].connect( self.update_src_language) self.srcLanguage.setCurrentText('English') else: self.srcLanguage.hide() self.translateButton.pressed.connect(self.translate) self.show() def setupUi(self, MainWindow): MainWindow.setObjectName("MainWindow") MainWindow.resize(721, 333) self.centralwidget = QWidget(MainWindow) self.centralwidget.setObjectName("centralwidget") self.horizontalLayout = QHBoxLayout(self.centralwidget) self.horizontalLayout.setObjectName("horizontalLayout") self.verticalLayout = QVBoxLayout() self.verticalLayout.setObjectName("verticalLayout") self.srcLanguage = QComboBox(self.centralwidget) self.srcLanguage.setObjectName("srcLanguage") self.verticalLayout.addWidget(self.srcLanguage) self.srcTextEdit = QTextEdit(self.centralwidget) self.srcTextEdit.setObjectName("srcTextEdit") self.verticalLayout.addWidget(self.srcTextEdit) self.horizontalLayout.addLayout(self.verticalLayout) self.verticalLayout_3 = QVBoxLayout() self.verticalLayout_3.setObjectName("verticalLayout_3") self.translateButton = QPushButton(self.centralwidget) self.translateButton.setMinimumSize(QSize(75, 50)) self.translateButton.setMaximumSize(QSize(75, 50)) self.translateButton.setText("") icon = QIcon() icon.addPixmap(QPixmap("images/flag.png"), QIcon.Normal, QIcon.Off) self.translateButton.setIcon(icon) self.translateButton.setIconSize(QSize(75, 50)) self.translateButton.setObjectName("translateButton") self.verticalLayout_3.addWidget(self.translateButton) self.horizontalLayout.addLayout(self.verticalLayout_3) self.verticalLayout_2 = QVBoxLayout() self.verticalLayout_2.setObjectName("verticalLayout_2") self.destTextEdit = QTextEdit(self.centralwidget) self.destTextEdit.setObjectName("destTextEdit") self.verticalLayout_2.addWidget(self.destTextEdit) self.horizontalLayout.addLayout(self.verticalLayout_2) MainWindow.setCentralWidget(self.centralwidget) self.menubar = QMenuBar(MainWindow) self.menubar.setGeometry(QRect(0, 0, 721, 22)) self.menubar.setObjectName("menubar") MainWindow.setMenuBar(self.menubar) self.retranslateUi(MainWindow) QMetaObject.connectSlotsByName(MainWindow) def retranslateUi(self, MainWindow): _translate = QCoreApplication.translate MainWindow.setWindowTitle(_translate("MainWindow", "Translataarrr")) self.translateButton.setToolTip(_translate("MainWindow", "Translate")) def update_src_language(self, l): self.language_src = LANGUAGES[l] def google_translate(self, text): params = dict(dest='en', text=text) if self.language_src: params['src'] = self.language_src try: tr = self.translator.translate(**params) except Exception: self.destTextEdit.setPlainText( 'Google translate error :(. Try translating from English') return False else: return tr.text def translate(self): # Perform pre-translation to English via Google Translate. if self.language_src != 'en': text = self.google_translate(self.srcTextEdit.toPlainText()) if not text: return False # Already in English. else: text = self.srcTextEdit.toPlainText() # Perform translation to piraat. r = requests.get( 'http://api.funtranslations.com/translate/pirate.json?%s' % parse.urlencode({'text': text})) data = json.loads(r.text) if 'error' in data: self.destTextEdit.setPlainText("%s\n\n%s" % (data['error']['message'], text)) else: self.destTextEdit.setPlainText(data['contents']['translated'])
class Ui_Add_Window(object): def setupUi(self, Add_Window): Add_Window.setObjectName("Add_Window") Add_Window.resize(598, 276) Add_Window.setFixedSize(Add_Window.size()) self.centralwidget = QWidget(Add_Window) self.centralwidget.setObjectName("centralwidget") self.addTxt = QLineEdit(self.centralwidget) self.addTxt.setGeometry(QRect(20, 40, 551, 51)) self.addTxt.setObjectName("addTxt") self.cv_file_name = QLineEdit(self.centralwidget) self.cv_file_name.setGeometry(QRect(20, 120, 551, 51)) self.cv_file_name.setObjectName("cv_file_name") self.cv_file_name.setPlaceholderText("Example: file.docx") self.addBtn = QPushButton(self.centralwidget) self.addBtn.setGeometry(QRect(20, 200, 551, 51)) self.addBtn.setObjectName("addBtn") Add_Window.setCentralWidget(self.centralwidget) self.menubar = QMenuBar(Add_Window) self.menubar.setGeometry(QRect(0, 0, 598, 22)) self.menubar.setObjectName("menubar") Add_Window.setMenuBar(self.menubar) self.statusbar = QStatusBar(Add_Window) self.statusbar.setObjectName("statusbar") Add_Window.setStatusBar(self.statusbar) self.retranslateUi(Add_Window) QMetaObject.connectSlotsByName(Add_Window) self.addBtn.clicked.connect(self.Add) def retranslateUi(self, Add_Window): _translate = QCoreApplication.translate Add_Window.setWindowTitle(_translate("Add_Window", "Add")) self.addTxt.setPlaceholderText(_translate("Add_Window", "Add new CV")) self.addBtn.setText(_translate("Add_Window", "Add")) def Add(self): self.add_txt = self.addTxt.text() self.cv_filename_txt = self.cv_file_name.text() self.conn = sqlite3.connect('cv.db') self.cur = self.conn.cursor() # TODO: Fix the error system def error(error_message): error_msgbox = QMessageBox() error_msgbox.setIcon(QMessageBox.Information) error_msgbox.setWindowTitle("Oh no!") error_msgbox.setText("Error!") error_msgbox.setInformativeText(error_message) error_msgbox.setStandardButtons(QMessageBox.Close) error_msgbox.exec_() if self.add_txt == '' and self.cv_file_name == '': error("One or both text fields are empty.") if self.add_txt != '' and self.cv_file_name != '': if "." in self.cv_filename_txt: timeofcreation = datetime.now() self.cur.execute( "INSERT INTO user (cvname, cvfilename, date) VALUES(?,?,?);", (str(self.add_txt), str( self.cv_filename_txt), str(timeofcreation))) self.conn.commit() added_msg = QMessageBox() added_msg.setIcon(QMessageBox.Information) added_msg.setText("Hooray!") added_msg.setWindowTitle("Success!") added_msg.setInformativeText( "Your CV has been successfully added to the database.") added_msg.setStandardButtons(QMessageBox.Ok) added_msg.exec_() else: error("Add a valid filename")
class MainWindow(QMainWindow): def __init__(self, *args, **kwargs): super(MainWindow, self).__init__(*args, **kwargs) self.setupUi(self) # Setup numbers. for n in range(0, 10): getattr(self, 'pushButton_n%s' % n).pressed.connect(lambda v=n: self.input_number(v)) # Setup operations. self.pushButton_add.pressed.connect(lambda: self.operation(operator.add)) self.pushButton_sub.pressed.connect(lambda: self.operation(operator.sub)) self.pushButton_mul.pressed.connect(lambda: self.operation(operator.mul)) self.pushButton_div.pressed.connect(lambda: self.operation(operator.truediv)) # operator.div for Python2.7 self.pushButton_pc.pressed.connect(self.operation_pc) self.pushButton_eq.pressed.connect(self.equals) # Setup actions self.actionReset.triggered.connect(self.reset) self.pushButton_ac.pressed.connect(self.reset) self.actionExit.triggered.connect(self.close) self.pushButton_m.pressed.connect(self.memory_store) self.pushButton_mr.pressed.connect(self.memory_recall) self.memory = 0 self.reset() self.show() def setupUi(self, MainWindow): MainWindow.setObjectName("MainWindow") MainWindow.resize(484, 433) self.centralWidget = QWidget(MainWindow) sizePolicy = QSizePolicy(QSizePolicy.Maximum, QSizePolicy.Maximum) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.centralWidget.sizePolicy().hasHeightForWidth()) self.centralWidget.setSizePolicy(sizePolicy) self.centralWidget.setObjectName("centralWidget") self.verticalLayout_2 = QVBoxLayout(self.centralWidget) self.verticalLayout_2.setContentsMargins(11, 11, 11, 11) self.verticalLayout_2.setSpacing(6) self.verticalLayout_2.setObjectName("verticalLayout_2") self.verticalLayout = QVBoxLayout() self.verticalLayout.setSpacing(6) self.verticalLayout.setObjectName("verticalLayout") self.lcdNumber = QLCDNumber(self.centralWidget) self.lcdNumber.setDigitCount(10) self.lcdNumber.setObjectName("lcdNumber") self.verticalLayout.addWidget(self.lcdNumber) self.gridLayout = QGridLayout() self.gridLayout.setSpacing(6) self.gridLayout.setObjectName("gridLayout") self.pushButton_n4 = QPushButton(self.centralWidget) self.pushButton_n4.setMinimumSize(QSize(0, 50)) font = QFont() font.setPointSize(27) font.setBold(True) font.setWeight(75) self.pushButton_n4.setFont(font) self.pushButton_n4.setStyleSheet("QPushButton {\n" "color: #1976D2;\n" "}") self.pushButton_n4.setObjectName("pushButton_n4") self.gridLayout.addWidget(self.pushButton_n4, 3, 0, 1, 1) self.pushButton_n1 = QPushButton(self.centralWidget) self.pushButton_n1.setMinimumSize(QSize(0, 50)) font = QFont() font.setPointSize(27) font.setBold(True) font.setWeight(75) self.pushButton_n1.setFont(font) self.pushButton_n1.setStyleSheet("QPushButton {\n" "color: #1976D2;\n" "}") self.pushButton_n1.setObjectName("pushButton_n1") self.gridLayout.addWidget(self.pushButton_n1, 4, 0, 1, 1) self.pushButton_n8 = QPushButton(self.centralWidget) self.pushButton_n8.setMinimumSize(QSize(0, 50)) font = QFont() font.setPointSize(27) font.setBold(True) font.setWeight(75) self.pushButton_n8.setFont(font) self.pushButton_n8.setStyleSheet("QPushButton {\n" "color: #1976D2;\n" "}") self.pushButton_n8.setObjectName("pushButton_n8") self.gridLayout.addWidget(self.pushButton_n8, 2, 1, 1, 1) self.pushButton_mul = QPushButton(self.centralWidget) self.pushButton_mul.setMinimumSize(QSize(0, 50)) font = QFont() font.setPointSize(27) font.setBold(False) font.setWeight(50) self.pushButton_mul.setFont(font) self.pushButton_mul.setObjectName("pushButton_mul") self.gridLayout.addWidget(self.pushButton_mul, 2, 3, 1, 1) self.pushButton_n7 = QPushButton(self.centralWidget) self.pushButton_n7.setMinimumSize(QSize(0, 50)) font = QFont() font.setPointSize(27) font.setBold(True) font.setWeight(75) self.pushButton_n7.setFont(font) self.pushButton_n7.setStyleSheet("QPushButton {\n" "color: #1976D2;\n" "}") self.pushButton_n7.setObjectName("pushButton_n7") self.gridLayout.addWidget(self.pushButton_n7, 2, 0, 1, 1) self.pushButton_n6 = QPushButton(self.centralWidget) self.pushButton_n6.setMinimumSize(QSize(0, 50)) font = QFont() font.setPointSize(27) font.setBold(True) font.setWeight(75) self.pushButton_n6.setFont(font) self.pushButton_n6.setStyleSheet("QPushButton {\n" "color: #1976D2;\n" "}") self.pushButton_n6.setObjectName("pushButton_n6") self.gridLayout.addWidget(self.pushButton_n6, 3, 2, 1, 1) self.pushButton_n5 = QPushButton(self.centralWidget) self.pushButton_n5.setMinimumSize(QSize(0, 50)) font = QFont() font.setPointSize(27) font.setBold(True) font.setWeight(75) self.pushButton_n5.setFont(font) self.pushButton_n5.setStyleSheet("QPushButton {\n" "color: #1976D2;\n" "}") self.pushButton_n5.setObjectName("pushButton_n5") self.gridLayout.addWidget(self.pushButton_n5, 3, 1, 1, 1) self.pushButton_n0 = QPushButton(self.centralWidget) self.pushButton_n0.setMinimumSize(QSize(0, 50)) font = QFont() font.setPointSize(27) font.setBold(True) font.setWeight(75) self.pushButton_n0.setFont(font) self.pushButton_n0.setStyleSheet("QPushButton {\n" "color: #1976D2;\n" "}") self.pushButton_n0.setObjectName("pushButton_n0") self.gridLayout.addWidget(self.pushButton_n0, 5, 0, 1, 1) self.pushButton_n2 = QPushButton(self.centralWidget) self.pushButton_n2.setMinimumSize(QSize(0, 50)) font = QFont() font.setPointSize(27) font.setBold(True) font.setWeight(75) self.pushButton_n2.setFont(font) self.pushButton_n2.setStyleSheet("QPushButton {\n" "color: #1976D2;\n" "}") self.pushButton_n2.setObjectName("pushButton_n2") self.gridLayout.addWidget(self.pushButton_n2, 4, 1, 1, 1) self.pushButton_n9 = QPushButton(self.centralWidget) self.pushButton_n9.setMinimumSize(QSize(0, 50)) font = QFont() font.setPointSize(27) font.setBold(True) font.setWeight(75) self.pushButton_n9.setFont(font) self.pushButton_n9.setStyleSheet("QPushButton {\n" "color: #1976D2;\n" "}") self.pushButton_n9.setObjectName("pushButton_n9") self.gridLayout.addWidget(self.pushButton_n9, 2, 2, 1, 1) self.pushButton_n3 = QPushButton(self.centralWidget) self.pushButton_n3.setMinimumSize(QSize(0, 50)) font = QFont() font.setPointSize(27) font.setBold(True) font.setWeight(75) self.pushButton_n3.setFont(font) self.pushButton_n3.setStyleSheet("QPushButton {\n" "color: #1976D2;\n" "}") self.pushButton_n3.setObjectName("pushButton_n3") self.gridLayout.addWidget(self.pushButton_n3, 4, 2, 1, 1) self.pushButton_div = QPushButton(self.centralWidget) self.pushButton_div.setMinimumSize(QSize(0, 50)) font = QFont() font.setPointSize(27) font.setBold(False) font.setWeight(50) self.pushButton_div.setFont(font) self.pushButton_div.setObjectName("pushButton_div") self.gridLayout.addWidget(self.pushButton_div, 1, 3, 1, 1) self.pushButton_sub = QPushButton(self.centralWidget) self.pushButton_sub.setMinimumSize(QSize(0, 50)) font = QFont() font.setPointSize(27) font.setBold(False) font.setWeight(50) self.pushButton_sub.setFont(font) self.pushButton_sub.setObjectName("pushButton_sub") self.gridLayout.addWidget(self.pushButton_sub, 3, 3, 1, 1) self.pushButton_add = QPushButton(self.centralWidget) self.pushButton_add.setMinimumSize(QSize(0, 50)) font = QFont() font.setPointSize(27) font.setBold(False) font.setWeight(50) self.pushButton_add.setFont(font) self.pushButton_add.setObjectName("pushButton_add") self.gridLayout.addWidget(self.pushButton_add, 4, 3, 1, 1) self.pushButton_ac = QPushButton(self.centralWidget) self.pushButton_ac.setMinimumSize(QSize(0, 50)) font = QFont() font.setPointSize(27) font.setBold(False) font.setWeight(50) self.pushButton_ac.setFont(font) self.pushButton_ac.setStyleSheet("QPushButton {\n" " color: #f44336;\n" "}") self.pushButton_ac.setObjectName("pushButton_ac") self.gridLayout.addWidget(self.pushButton_ac, 1, 0, 1, 1) self.pushButton_mr = QPushButton(self.centralWidget) self.pushButton_mr.setMinimumSize(QSize(0, 50)) font = QFont() font.setPointSize(27) font.setBold(False) font.setWeight(50) self.pushButton_mr.setFont(font) self.pushButton_mr.setStyleSheet("QPushButton {\n" " color: #FFC107;\n" "}") self.pushButton_mr.setObjectName("pushButton_mr") self.gridLayout.addWidget(self.pushButton_mr, 1, 2, 1, 1) self.pushButton_m = QPushButton(self.centralWidget) self.pushButton_m.setMinimumSize(QSize(0, 50)) font = QFont() font.setPointSize(27) font.setBold(False) font.setWeight(50) self.pushButton_m.setFont(font) self.pushButton_m.setStyleSheet("QPushButton {\n" " color: #FFC107;\n" "}") self.pushButton_m.setObjectName("pushButton_m") self.gridLayout.addWidget(self.pushButton_m, 1, 1, 1, 1) self.pushButton_pc = QPushButton(self.centralWidget) self.pushButton_pc.setMinimumSize(QSize(0, 50)) font = QFont() font.setPointSize(27) font.setBold(False) font.setWeight(50) self.pushButton_pc.setFont(font) self.pushButton_pc.setObjectName("pushButton_pc") self.gridLayout.addWidget(self.pushButton_pc, 5, 1, 1, 1) self.pushButton_eq = QPushButton(self.centralWidget) self.pushButton_eq.setMinimumSize(QSize(0, 50)) font = QFont() font.setPointSize(27) font.setBold(True) font.setWeight(75) self.pushButton_eq.setFont(font) self.pushButton_eq.setStyleSheet("QPushButton {\n" "color: #4CAF50;\n" "}") self.pushButton_eq.setObjectName("pushButton_eq") self.gridLayout.addWidget(self.pushButton_eq, 5, 2, 1, 2) self.verticalLayout.addLayout(self.gridLayout) self.verticalLayout_2.addLayout(self.verticalLayout) MainWindow.setCentralWidget(self.centralWidget) self.menuBar = QMenuBar(MainWindow) self.menuBar.setGeometry(QRect(0, 0, 484, 22)) self.menuBar.setObjectName("menuBar") self.menuFile = QMenu(self.menuBar) self.menuFile.setObjectName("menuFile") MainWindow.setMenuBar(self.menuBar) self.statusBar = QStatusBar(MainWindow) self.statusBar.setObjectName("statusBar") MainWindow.setStatusBar(self.statusBar) self.actionExit = QAction(MainWindow) self.actionExit.setObjectName("actionExit") self.actionReset = QAction(MainWindow) self.actionReset.setObjectName("actionReset") self.menuFile.addAction(self.actionReset) self.menuFile.addAction(self.actionExit) self.menuBar.addAction(self.menuFile.menuAction()) self.retranslateUi(MainWindow) QMetaObject.connectSlotsByName(MainWindow) def retranslateUi(self, MainWindow): _translate = QCoreApplication.translate MainWindow.setWindowTitle(_translate("MainWindow", "Calculon")) self.pushButton_n4.setText(_translate("MainWindow", "4")) self.pushButton_n4.setShortcut(_translate("MainWindow", "4")) self.pushButton_n1.setText(_translate("MainWindow", "1")) self.pushButton_n1.setShortcut(_translate("MainWindow", "1")) self.pushButton_n8.setText(_translate("MainWindow", "8")) self.pushButton_n8.setShortcut(_translate("MainWindow", "8")) self.pushButton_mul.setText(_translate("MainWindow", "x")) self.pushButton_mul.setShortcut(_translate("MainWindow", "*")) self.pushButton_n7.setText(_translate("MainWindow", "7")) self.pushButton_n7.setShortcut(_translate("MainWindow", "7")) self.pushButton_n6.setText(_translate("MainWindow", "6")) self.pushButton_n6.setShortcut(_translate("MainWindow", "6")) self.pushButton_n5.setText(_translate("MainWindow", "5")) self.pushButton_n5.setShortcut(_translate("MainWindow", "5")) self.pushButton_n0.setText(_translate("MainWindow", "0")) self.pushButton_n0.setShortcut(_translate("MainWindow", "0")) self.pushButton_n2.setText(_translate("MainWindow", "2")) self.pushButton_n2.setShortcut(_translate("MainWindow", "2")) self.pushButton_n9.setText(_translate("MainWindow", "9")) self.pushButton_n9.setShortcut(_translate("MainWindow", "9")) self.pushButton_n3.setText(_translate("MainWindow", "3")) self.pushButton_n3.setShortcut(_translate("MainWindow", "3")) self.pushButton_div.setText(_translate("MainWindow", "รท")) self.pushButton_div.setShortcut(_translate("MainWindow", "/")) self.pushButton_sub.setText(_translate("MainWindow", "-")) self.pushButton_sub.setShortcut(_translate("MainWindow", "-")) self.pushButton_add.setText(_translate("MainWindow", "+")) self.pushButton_add.setShortcut(_translate("MainWindow", "+")) self.pushButton_ac.setText(_translate("MainWindow", "AC")) self.pushButton_ac.setShortcut(_translate("MainWindow", "Esc")) self.pushButton_mr.setText(_translate("MainWindow", "MR")) self.pushButton_mr.setShortcut(_translate("MainWindow", "R")) self.pushButton_m.setText(_translate("MainWindow", "M")) self.pushButton_m.setShortcut(_translate("MainWindow", "M")) self.pushButton_pc.setText(_translate("MainWindow", "%")) self.pushButton_pc.setShortcut(_translate("MainWindow", "%")) self.pushButton_eq.setText(_translate("MainWindow", "=")) self.pushButton_eq.setShortcut(_translate("MainWindow", "Return")) self.menuFile.setTitle(_translate("MainWindow", "File")) self.actionExit.setText(_translate("MainWindow", "Exit")) self.actionExit.setShortcut(_translate("MainWindow", "Ctrl+Q")) self.actionReset.setText(_translate("MainWindow", "Reset")) self.actionReset.setShortcut(_translate("MainWindow", "Ctrl+R")) def display(self): self.lcdNumber.display(self.stack[-1]) def reset(self): self.state = READY self.stack = [0] self.last_operation = None self.current_op = None self.display() def memory_store(self): self.memory = self.lcdNumber.value() def memory_recall(self): self.state = INPUT self.stack[-1] = self.memory self.display() def input_number(self, v): if self.state == READY: self.state = INPUT self.stack[-1] = v else: self.stack[-1] = self.stack[-1] * 10 + v self.display() def operation(self, op): if self.current_op: # Complete the current operation self.equals() self.stack.append(0) self.state = INPUT self.current_op = op def operation_pc(self): self.state = INPUT self.stack[-1] *= 0.01 self.display() def equals(self): # Support to allow '=' to repeat previous operation # if no further input has been added. if self.state == READY and self.last_operation: s, self.current_op = self.last_operation self.stack.append(s) if self.current_op: self.last_operation = self.stack[-1], self.current_op try: self.stack = [self.current_op(*self.stack)] except Exception: self.lcdNumber.display('Err') self.stack = [0] else: self.current_op = None self.state = READY self.display()