diff --git a/Mahdi's Project b/Mahdi's Project new file mode 160000 index 0000000..983aeef --- /dev/null +++ b/Mahdi's Project @@ -0,0 +1 @@ +Subproject commit 983aeefe75234dcc78ae9aed307051e2e01b7754 diff --git a/Other Students' Projects/1/.idea/.gitignore b/Other Students' Projects/1/.idea/.gitignore new file mode 100644 index 0000000..7d43356 --- /dev/null +++ b/Other Students' Projects/1/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Datasource local storage ignored files +/../../../../../../:\University\2nd Term\Others Homeworks\Amir T\.idea/dataSources/ +/dataSources.local.xml +# Editor-based HTTP Client requests +/httpRequests/ diff --git a/Other Students' Projects/1/.idea/Amir T.iml b/Other Students' Projects/1/.idea/Amir T.iml new file mode 100644 index 0000000..d0876a7 --- /dev/null +++ b/Other Students' Projects/1/.idea/Amir T.iml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/Other Students' Projects/1/.idea/inspectionProfiles/Project_Default.xml b/Other Students' Projects/1/.idea/inspectionProfiles/Project_Default.xml new file mode 100644 index 0000000..6eeafb9 --- /dev/null +++ b/Other Students' Projects/1/.idea/inspectionProfiles/Project_Default.xml @@ -0,0 +1,24 @@ + + + + \ No newline at end of file diff --git a/Other Students' Projects/1/.idea/inspectionProfiles/profiles_settings.xml b/Other Students' Projects/1/.idea/inspectionProfiles/profiles_settings.xml new file mode 100644 index 0000000..105ce2d --- /dev/null +++ b/Other Students' Projects/1/.idea/inspectionProfiles/profiles_settings.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/Other Students' Projects/1/.idea/misc.xml b/Other Students' Projects/1/.idea/misc.xml new file mode 100644 index 0000000..a2e120d --- /dev/null +++ b/Other Students' Projects/1/.idea/misc.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/Other Students' Projects/1/.idea/modules.xml b/Other Students' Projects/1/.idea/modules.xml new file mode 100644 index 0000000..bfeba8f --- /dev/null +++ b/Other Students' Projects/1/.idea/modules.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/Other Students' Projects/1/MainPage.py b/Other Students' Projects/1/MainPage.py new file mode 100644 index 0000000..a51c779 --- /dev/null +++ b/Other Students' Projects/1/MainPage.py @@ -0,0 +1,546 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file '.\MainPage.ui' +# +# Created by: PyQt5 UI code generator 5.15.4 +# +# WARNING: Any manual changes made to this file will be lost when pyuic5 is +# run again. Do not edit this file unless you know what you are doing. + + +from PyQt5 import QtCore, QtGui, QtWidgets + + +class Ui_MainWindow(object): + def setupUi(self, MainWindow): + MainWindow.setObjectName("MainWindow") + MainWindow.resize(611, 680) + MainWindow.setMinimumSize(QtCore.QSize(611, 680)) + MainWindow.setMaximumSize(QtCore.QSize(611, 680)) + MainWindow.setStyleSheet("background-color: #2F3032") + self.centralwidget = QtWidgets.QWidget(MainWindow) + self.centralwidget.setObjectName("centralwidget") + self.label = QtWidgets.QLabel(self.centralwidget) + self.label.setGeometry(QtCore.QRect(10, 10, 591, 61)) + font = QtGui.QFont() + font.setFamily("Tw Cen MT Condensed Extra Bold") + font.setPointSize(28) + self.label.setFont(font) + self.label.setCursor(QtGui.QCursor(QtCore.Qt.OpenHandCursor)) + self.label.setStyleSheet("color:#F0F0F0") + self.label.setAlignment(QtCore.Qt.AlignCenter) + self.label.setObjectName("label") + self.tabWidget = QtWidgets.QTabWidget(self.centralwidget) + self.tabWidget.setGeometry(QtCore.QRect(10, 90, 591, 571)) + font = QtGui.QFont() + font.setPointSize(11) + self.tabWidget.setFont(font) + self.tabWidget.setStyleSheet("background-color: #FDF5E6") + self.tabWidget.setTabPosition(QtWidgets.QTabWidget.West) + self.tabWidget.setObjectName("tabWidget") + self.tab_1 = QtWidgets.QWidget() + self.tab_1.setObjectName("tab_1") + self.pushButton_MainRemove = QtWidgets.QPushButton(self.tab_1) + self.pushButton_MainRemove.setGeometry(QtCore.QRect(220, 70, 131, 41)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.pushButton_MainRemove.setFont(font) + self.pushButton_MainRemove.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) + self.pushButton_MainRemove.setStyleSheet("background-color:#2F3032; color:white") + self.pushButton_MainRemove.setObjectName("pushButton_MainRemove") + self.pushButton_MainAdd = QtWidgets.QPushButton(self.tab_1) + self.pushButton_MainAdd.setGeometry(QtCore.QRect(70, 70, 131, 41)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.pushButton_MainAdd.setFont(font) + self.pushButton_MainAdd.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) + self.pushButton_MainAdd.setStyleSheet("background-color:#2F3032; color:white") + self.pushButton_MainAdd.setObjectName("pushButton_MainAdd") + self.label_first = QtWidgets.QLabel(self.tab_1) + self.label_first.setGeometry(QtCore.QRect(20, 260, 140, 40)) + font = QtGui.QFont() + font.setPointSize(11) + font.setBold(True) + font.setWeight(75) + self.label_first.setFont(font) + self.label_first.setStyleSheet("border:0.15em solid #2F3032; border-radius:0.5em") + self.label_first.setAlignment(QtCore.Qt.AlignCenter) + self.label_first.setObjectName("label_first") + self.label_last = QtWidgets.QLabel(self.tab_1) + self.label_last.setGeometry(QtCore.QRect(20, 310, 140, 40)) + font = QtGui.QFont() + font.setPointSize(11) + font.setBold(True) + font.setWeight(75) + self.label_last.setFont(font) + self.label_last.setStyleSheet("border:0.15em solid #2F3032; border-radius:0.5em") + self.label_last.setAlignment(QtCore.Qt.AlignCenter) + self.label_last.setObjectName("label_last") + self.label_phone = QtWidgets.QLabel(self.tab_1) + self.label_phone.setGeometry(QtCore.QRect(20, 410, 140, 40)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.label_phone.setFont(font) + self.label_phone.setStyleSheet("border:0.15em solid #2F3032; border-radius:0.5em") + self.label_phone.setAlignment(QtCore.Qt.AlignCenter) + self.label_phone.setObjectName("label_phone") + self.label_email = QtWidgets.QLabel(self.tab_1) + self.label_email.setGeometry(QtCore.QRect(20, 360, 140, 40)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.label_email.setFont(font) + self.label_email.setStyleSheet("border:0.15em solid #2F3032; border-radius:0.5em") + self.label_email.setAlignment(QtCore.Qt.AlignCenter) + self.label_email.setObjectName("label_email") + self.lineEdit_first = QtWidgets.QLineEdit(self.tab_1) + self.lineEdit_first.setGeometry(QtCore.QRect(170, 260, 371, 40)) + self.lineEdit_first.setStyleSheet("border:0.15em solid #2F3032; border-radius:0.5em") + self.lineEdit_first.setObjectName("lineEdit_first") + self.lineEdit_last = QtWidgets.QLineEdit(self.tab_1) + self.lineEdit_last.setGeometry(QtCore.QRect(170, 310, 371, 40)) + self.lineEdit_last.setStyleSheet("border:0.15em solid #2F3032; border-radius:0.5em") + self.lineEdit_last.setObjectName("lineEdit_last") + self.lineEdit_phone = QtWidgets.QLineEdit(self.tab_1) + self.lineEdit_phone.setGeometry(QtCore.QRect(170, 410, 371, 40)) + self.lineEdit_phone.setStyleSheet("border:0.15em solid #2F3032; border-radius:0.5em") + self.lineEdit_phone.setObjectName("lineEdit_phone") + self.lineEdit_email = QtWidgets.QLineEdit(self.tab_1) + self.lineEdit_email.setGeometry(QtCore.QRect(170, 360, 371, 40)) + self.lineEdit_email.setStyleSheet("border:0.15em solid #2F3032; border-radius:0.5em") + self.lineEdit_email.setObjectName("lineEdit_email") + self.pushButton_MainUpdate = QtWidgets.QPushButton(self.tab_1) + self.pushButton_MainUpdate.setGeometry(QtCore.QRect(370, 70, 131, 41)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.pushButton_MainUpdate.setFont(font) + self.pushButton_MainUpdate.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) + self.pushButton_MainUpdate.setStyleSheet("background-color:#2F3032; color:white") + self.pushButton_MainUpdate.setObjectName("pushButton_MainUpdate") + self.label_select = QtWidgets.QLabel(self.tab_1) + self.label_select.setGeometry(QtCore.QRect(20, 210, 140, 40)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.label_select.setFont(font) + self.label_select.setStyleSheet("border:0.15em solid #2F3032; border-radius:0.5em") + self.label_select.setAlignment(QtCore.Qt.AlignCenter) + self.label_select.setObjectName("label_select") + self.comboBox_select = QtWidgets.QComboBox(self.tab_1) + self.comboBox_select.setGeometry(QtCore.QRect(170, 210, 141, 41)) + self.comboBox_select.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) + self.comboBox_select.setStyleSheet("background-color:#2F3032; color:white") + self.comboBox_select.setObjectName("comboBox_select") + self.pushButton_apply = QtWidgets.QPushButton(self.tab_1) + self.pushButton_apply.setGeometry(QtCore.QRect(410, 210, 61, 41)) + font = QtGui.QFont() + font.setPointSize(8) + font.setBold(True) + font.setWeight(75) + self.pushButton_apply.setFont(font) + self.pushButton_apply.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) + self.pushButton_apply.setStyleSheet("background-color:#2F3032; color:white") + self.pushButton_apply.setObjectName("pushButton_apply") + self.pushButton_save = QtWidgets.QPushButton(self.tab_1) + self.pushButton_save.setGeometry(QtCore.QRect(480, 210, 61, 41)) + font = QtGui.QFont() + font.setPointSize(8) + font.setBold(True) + font.setWeight(75) + self.pushButton_save.setFont(font) + self.pushButton_save.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) + self.pushButton_save.setStyleSheet("background-color:#2F3032; color:white") + self.pushButton_save.setObjectName("pushButton_save") + self.label_option = QtWidgets.QLabel(self.tab_1) + self.label_option.setGeometry(QtCore.QRect(10, 10, 541, 40)) + font = QtGui.QFont() + font.setPointSize(12) + font.setBold(True) + font.setWeight(75) + self.label_option.setFont(font) + self.label_option.setStyleSheet("border:0.15em solid #2F3032; border-radius:0.5em") + self.label_option.setAlignment(QtCore.Qt.AlignCenter) + self.label_option.setObjectName("label_option") + self.label_change = QtWidgets.QLabel(self.tab_1) + self.label_change.setGeometry(QtCore.QRect(10, 150, 541, 40)) + font = QtGui.QFont() + font.setPointSize(12) + font.setBold(True) + font.setWeight(75) + self.label_change.setFont(font) + self.label_change.setStyleSheet("border:0.15em solid #2F3032; border-radius:0.5em") + self.label_change.setAlignment(QtCore.Qt.AlignCenter) + self.label_change.setObjectName("label_change") + self.label_error1 = QtWidgets.QLabel(self.tab_1) + self.label_error1.setGeometry(QtCore.QRect(10, 539, 541, 21)) + font = QtGui.QFont() + font.setPointSize(8) + font.setBold(True) + font.setWeight(75) + self.label_error1.setFont(font) + self.label_error1.setStyleSheet("border:0.15em solid #F92672; border-radius:0.5em; color: red") + self.label_error1.setText("") + self.label_error1.setAlignment(QtCore.Qt.AlignCenter) + self.label_error1.setWordWrap(False) + self.label_error1.setObjectName("label_error1") + self.tabWidget.addTab(self.tab_1, "") + self.tab_2 = QtWidgets.QWidget() + self.tab_2.setObjectName("tab_2") + self.tableWidget = QtWidgets.QTableWidget(self.tab_2) + self.tableWidget.setGeometry(QtCore.QRect(10, 110, 541, 451)) + self.tableWidget.setStyleSheet("border:0.05em solid #2F3032") + self.tableWidget.setObjectName("tableWidget") + self.tableWidget.setColumnCount(4) + self.tableWidget.setRowCount(0) + item = QtWidgets.QTableWidgetItem() + self.tableWidget.setHorizontalHeaderItem(0, item) + item = QtWidgets.QTableWidgetItem() + self.tableWidget.setHorizontalHeaderItem(1, item) + item = QtWidgets.QTableWidgetItem() + self.tableWidget.setHorizontalHeaderItem(2, item) + item = QtWidgets.QTableWidgetItem() + self.tableWidget.setHorizontalHeaderItem(3, item) + self.tableWidget.horizontalHeader().setCascadingSectionResizes(False) + self.tableWidget.horizontalHeader().setDefaultSectionSize(123) + self.tableWidget.horizontalHeader().setMinimumSectionSize(36) + self.tableWidget.horizontalHeader().setSortIndicatorShown(False) + self.tableWidget.horizontalHeader().setStretchLastSection(True) + self.label_sort = QtWidgets.QLabel(self.tab_2) + self.label_sort.setGeometry(QtCore.QRect(10, 70, 81, 31)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.label_sort.setFont(font) + self.label_sort.setStyleSheet("border:0.15em solid #2F3032; border-radius:0.5em") + self.label_sort.setAlignment(QtCore.Qt.AlignCenter) + self.label_sort.setObjectName("label_sort") + self.pushButton_firstname = QtWidgets.QPushButton(self.tab_2) + self.pushButton_firstname.setGeometry(QtCore.QRect(110, 70, 84, 31)) + font = QtGui.QFont() + font.setBold(True) + font.setWeight(75) + self.pushButton_firstname.setFont(font) + self.pushButton_firstname.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) + self.pushButton_firstname.setStyleSheet("background-color:#2F3032; color:white") + self.pushButton_firstname.setObjectName("pushButton_firstname") + self.pushButton_lastname = QtWidgets.QPushButton(self.tab_2) + self.pushButton_lastname.setGeometry(QtCore.QRect(210, 70, 84, 31)) + font = QtGui.QFont() + font.setBold(True) + font.setWeight(75) + self.pushButton_lastname.setFont(font) + self.pushButton_lastname.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) + self.pushButton_lastname.setStyleSheet("background-color:#2F3032; color:white") + self.pushButton_lastname.setObjectName("pushButton_lastname") + self.label_list = QtWidgets.QLabel(self.tab_2) + self.label_list.setGeometry(QtCore.QRect(10, 10, 541, 40)) + font = QtGui.QFont() + font.setPointSize(12) + font.setBold(True) + font.setWeight(75) + self.label_list.setFont(font) + self.label_list.setStyleSheet("border:0.15em solid #2F3032; border-radius:0.5em") + self.label_list.setAlignment(QtCore.Qt.AlignCenter) + self.label_list.setObjectName("label_list") + self.tabWidget.addTab(self.tab_2, "") + self.tab_3 = QtWidgets.QWidget() + self.tab_3.setObjectName("tab_3") + self.pushButton_extract = QtWidgets.QPushButton(self.tab_3) + self.pushButton_extract.setGeometry(QtCore.QRect(430, 70, 111, 41)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.pushButton_extract.setFont(font) + self.pushButton_extract.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) + self.pushButton_extract.setStyleSheet("background-color:#2F3032; color:white") + self.pushButton_extract.setObjectName("pushButton_extract") + self.textEdit_input = QtWidgets.QTextEdit(self.tab_3) + self.textEdit_input.setGeometry(QtCore.QRect(20, 120, 521, 141)) + font = QtGui.QFont() + font.setPointSize(10) + self.textEdit_input.setFont(font) + self.textEdit_input.viewport().setProperty("cursor", QtGui.QCursor(QtCore.Qt.IBeamCursor)) + self.textEdit_input.setStyleSheet("border:0.15em solid #2F3032; border-radius:0.5em") + self.textEdit_input.setObjectName("textEdit_input") + self.label_input = QtWidgets.QLabel(self.tab_3) + self.label_input.setGeometry(QtCore.QRect(20, 70, 61, 40)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.label_input.setFont(font) + self.label_input.setStyleSheet("border:0.15em solid #2F3032; border-radius:0.5em") + self.label_input.setAlignment(QtCore.Qt.AlignCenter) + self.label_input.setObjectName("label_input") + self.label_output = QtWidgets.QLabel(self.tab_3) + self.label_output.setGeometry(QtCore.QRect(20, 290, 61, 40)) + font = QtGui.QFont() + font.setPointSize(9) + font.setBold(True) + font.setWeight(75) + self.label_output.setFont(font) + self.label_output.setStyleSheet("border:0.15em solid #2F3032; border-radius:0.5em") + self.label_output.setAlignment(QtCore.Qt.AlignCenter) + self.label_output.setObjectName("label_output") + self.textEdit_output1 = QtWidgets.QTextEdit(self.tab_3) + self.textEdit_output1.setGeometry(QtCore.QRect(20, 340, 241, 111)) + font = QtGui.QFont() + font.setPointSize(10) + self.textEdit_output1.setFont(font) + self.textEdit_output1.viewport().setProperty("cursor", QtGui.QCursor(QtCore.Qt.ArrowCursor)) + self.textEdit_output1.setStyleSheet("border:0.15em solid #2F3032; border-radius:0.5em") + self.textEdit_output1.setObjectName("textEdit_output1") + self.textEdit_output2 = QtWidgets.QTextEdit(self.tab_3) + self.textEdit_output2.setGeometry(QtCore.QRect(300, 340, 241, 111)) + font = QtGui.QFont() + font.setPointSize(10) + self.textEdit_output2.setFont(font) + self.textEdit_output2.viewport().setProperty("cursor", QtGui.QCursor(QtCore.Qt.ArrowCursor)) + self.textEdit_output2.setStyleSheet("border:0.15em solid #2F3032; border-radius:0.5em") + self.textEdit_output2.setObjectName("textEdit_output2") + self.label_extract = QtWidgets.QLabel(self.tab_3) + self.label_extract.setGeometry(QtCore.QRect(10, 10, 541, 40)) + font = QtGui.QFont() + font.setPointSize(12) + font.setBold(True) + font.setWeight(75) + self.label_extract.setFont(font) + self.label_extract.setStyleSheet("border:0.15em solid #2F3032; border-radius:0.5em") + self.label_extract.setAlignment(QtCore.Qt.AlignCenter) + self.label_extract.setObjectName("label_extract") + self.label_error2 = QtWidgets.QLabel(self.tab_3) + self.label_error2.setGeometry(QtCore.QRect(10, 540, 541, 21)) + font = QtGui.QFont() + font.setPointSize(8) + font.setBold(True) + font.setWeight(75) + self.label_error2.setFont(font) + self.label_error2.setStyleSheet("border:0.15em solid #F92672; border-radius:0.5em; color: red") + self.label_error2.setText("") + self.label_error2.setAlignment(QtCore.Qt.AlignCenter) + self.label_error2.setWordWrap(False) + self.label_error2.setObjectName("label_error2") + self.label_names = QtWidgets.QLabel(self.tab_3) + self.label_names.setGeometry(QtCore.QRect(20, 450, 241, 31)) + font = QtGui.QFont() + font.setPointSize(9) + font.setBold(True) + font.setWeight(75) + self.label_names.setFont(font) + self.label_names.setStyleSheet("border:0.15em solid #2F3032; border-radius:0.5em") + self.label_names.setAlignment(QtCore.Qt.AlignCenter) + self.label_names.setObjectName("label_names") + self.label_numbers = QtWidgets.QLabel(self.tab_3) + self.label_numbers.setGeometry(QtCore.QRect(300, 450, 241, 31)) + font = QtGui.QFont() + font.setPointSize(9) + font.setBold(True) + font.setWeight(75) + self.label_numbers.setFont(font) + self.label_numbers.setStyleSheet("border:0.15em solid #2F3032; border-radius:0.5em") + self.label_numbers.setAlignment(QtCore.Qt.AlignCenter) + self.label_numbers.setObjectName("label_numbers") + self.tabWidget.addTab(self.tab_3, "") + self.tab_31 = QtWidgets.QWidget() + self.tab_31.setObjectName("tab_31") + self.label_site = QtWidgets.QLabel(self.tab_31) + self.label_site.setGeometry(QtCore.QRect(20, 70, 421, 40)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.label_site.setFont(font) + self.label_site.setCursor(QtGui.QCursor(QtCore.Qt.OpenHandCursor)) + self.label_site.setStyleSheet("border:0.15em solid #50C878; border-radius:0.5em") + self.label_site.setAlignment(QtCore.Qt.AlignCenter) + self.label_site.setObjectName("label_site") + self.label_web = QtWidgets.QLabel(self.tab_31) + self.label_web.setGeometry(QtCore.QRect(10, 10, 541, 40)) + font = QtGui.QFont() + font.setPointSize(12) + font.setBold(True) + font.setWeight(75) + self.label_web.setFont(font) + self.label_web.setStyleSheet("border:0.15em solid #2F3032; border-radius:0.5em") + self.label_web.setAlignment(QtCore.Qt.AlignCenter) + self.label_web.setObjectName("label_web") + self.pushButton_get = QtWidgets.QPushButton(self.tab_31) + self.pushButton_get.setGeometry(QtCore.QRect(450, 70, 91, 41)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.pushButton_get.setFont(font) + self.pushButton_get.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) + self.pushButton_get.setStyleSheet("background-color:#2F3032; color:white") + self.pushButton_get.setObjectName("pushButton_get") + self.lineEdit_email_2 = QtWidgets.QLineEdit(self.tab_31) + self.lineEdit_email_2.setGeometry(QtCore.QRect(170, 360, 371, 40)) + self.lineEdit_email_2.setStyleSheet("border:0.15em solid #2F3032; border-radius:0.5em") + self.lineEdit_email_2.setObjectName("lineEdit_email_2") + self.label_last_2 = QtWidgets.QLabel(self.tab_31) + self.label_last_2.setGeometry(QtCore.QRect(20, 310, 140, 40)) + font = QtGui.QFont() + font.setPointSize(11) + font.setBold(True) + font.setWeight(75) + self.label_last_2.setFont(font) + self.label_last_2.setStyleSheet("border:0.15em solid #2F3032; border-radius:0.5em") + self.label_last_2.setAlignment(QtCore.Qt.AlignCenter) + self.label_last_2.setObjectName("label_last_2") + self.label_first_2 = QtWidgets.QLabel(self.tab_31) + self.label_first_2.setGeometry(QtCore.QRect(20, 260, 140, 40)) + font = QtGui.QFont() + font.setPointSize(11) + font.setBold(True) + font.setWeight(75) + self.label_first_2.setFont(font) + self.label_first_2.setStyleSheet("border:0.15em solid #2F3032; border-radius:0.5em") + self.label_first_2.setAlignment(QtCore.Qt.AlignCenter) + self.label_first_2.setObjectName("label_first_2") + self.lineEdit_last_2 = QtWidgets.QLineEdit(self.tab_31) + self.lineEdit_last_2.setGeometry(QtCore.QRect(170, 310, 371, 40)) + self.lineEdit_last_2.setStyleSheet("border:0.15em solid #2F3032; border-radius:0.5em") + self.lineEdit_last_2.setObjectName("lineEdit_last_2") + self.label_phone_2 = QtWidgets.QLabel(self.tab_31) + self.label_phone_2.setGeometry(QtCore.QRect(20, 410, 140, 40)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.label_phone_2.setFont(font) + self.label_phone_2.setStyleSheet("border:0.15em solid #2F3032; border-radius:0.5em") + self.label_phone_2.setAlignment(QtCore.Qt.AlignCenter) + self.label_phone_2.setObjectName("label_phone_2") + self.lineEdit_phone_2 = QtWidgets.QLineEdit(self.tab_31) + self.lineEdit_phone_2.setGeometry(QtCore.QRect(170, 410, 371, 40)) + self.lineEdit_phone_2.setStyleSheet("border:0.15em solid #2F3032; border-radius:0.5em") + self.lineEdit_phone_2.setObjectName("lineEdit_phone_2") + self.lineEdit_first_2 = QtWidgets.QLineEdit(self.tab_31) + self.lineEdit_first_2.setGeometry(QtCore.QRect(170, 260, 371, 40)) + self.lineEdit_first_2.setStyleSheet("border:0.15em solid #2F3032; border-radius:0.5em") + self.lineEdit_first_2.setObjectName("lineEdit_first_2") + self.label_email_2 = QtWidgets.QLabel(self.tab_31) + self.label_email_2.setGeometry(QtCore.QRect(20, 360, 140, 40)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.label_email_2.setFont(font) + self.label_email_2.setStyleSheet("border:0.15em solid #2F3032; border-radius:0.5em") + self.label_email_2.setAlignment(QtCore.Qt.AlignCenter) + self.label_email_2.setObjectName("label_email_2") + self.pushButton_add = QtWidgets.QPushButton(self.tab_31) + self.pushButton_add.setGeometry(QtCore.QRect(480, 210, 61, 41)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.pushButton_add.setFont(font) + self.pushButton_add.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) + self.pushButton_add.setStyleSheet("background-color:#2F3032; color:white") + self.pushButton_add.setObjectName("pushButton_add") + self.label_select_5 = QtWidgets.QLabel(self.tab_31) + self.label_select_5.setGeometry(QtCore.QRect(10, 150, 541, 40)) + font = QtGui.QFont() + font.setPointSize(12) + font.setBold(True) + font.setWeight(75) + self.label_select_5.setFont(font) + self.label_select_5.setStyleSheet("border:0.15em solid #2F3032; border-radius:0.5em") + self.label_select_5.setAlignment(QtCore.Qt.AlignCenter) + self.label_select_5.setObjectName("label_select_5") + self.label_error3 = QtWidgets.QLabel(self.tab_31) + self.label_error3.setGeometry(QtCore.QRect(10, 540, 541, 21)) + font = QtGui.QFont() + font.setPointSize(8) + font.setBold(True) + font.setWeight(75) + self.label_error3.setFont(font) + self.label_error3.setStyleSheet("border:0.15em solid #F92672; border-radius:0.5em; color: red") + self.label_error3.setText("") + self.label_error3.setAlignment(QtCore.Qt.AlignCenter) + self.label_error3.setWordWrap(False) + self.label_error3.setObjectName("label_error3") + self.tabWidget.addTab(self.tab_31, "") + self.line = QtWidgets.QFrame(self.centralwidget) + self.line.setGeometry(QtCore.QRect(10, 70, 591, 16)) + self.line.setStyleSheet("color:#FDF5E6") + self.line.setFrameShadow(QtWidgets.QFrame.Plain) + self.line.setFrameShape(QtWidgets.QFrame.HLine) + self.line.setObjectName("line") + MainWindow.setCentralWidget(self.centralwidget) + + self.retranslateUi(MainWindow) + self.tabWidget.setCurrentIndex(0) + QtCore.QMetaObject.connectSlotsByName(MainWindow) + + def retranslateUi(self, MainWindow): + _translate = QtCore.QCoreApplication.translate + MainWindow.setWindowTitle(_translate("MainWindow", "Contact Manager System")) + self.label.setText(_translate("MainWindow", "Contact Manager System")) + self.pushButton_MainRemove.setText(_translate("MainWindow", "Remove")) + self.pushButton_MainAdd.setText(_translate("MainWindow", "Add")) + self.label_first.setText(_translate("MainWindow", "First Name")) + self.label_last.setText(_translate("MainWindow", "Last Name")) + self.label_phone.setText(_translate("MainWindow", "Phone Number")) + self.label_email.setText(_translate("MainWindow", "Email Address")) + self.pushButton_MainUpdate.setText(_translate("MainWindow", "Update")) + self.label_select.setText(_translate("MainWindow", "Select Contact")) + self.pushButton_apply.setText(_translate("MainWindow", "Apply")) + self.pushButton_save.setText(_translate("MainWindow", "Save")) + self.label_option.setText(_translate("MainWindow", "Choose one option")) + self.label_change.setText(_translate("MainWindow", "Choose contact change")) + self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_1), _translate("MainWindow", "Contacts")) + item = self.tableWidget.horizontalHeaderItem(0) + item.setText(_translate("MainWindow", "First Name")) + item = self.tableWidget.horizontalHeaderItem(1) + item.setText(_translate("MainWindow", "Last Name")) + item = self.tableWidget.horizontalHeaderItem(2) + item.setText(_translate("MainWindow", "Phone Number")) + item = self.tableWidget.horizontalHeaderItem(3) + item.setText(_translate("MainWindow", "Email Address")) + self.label_sort.setText(_translate("MainWindow", "Sort by")) + self.pushButton_firstname.setText(_translate("MainWindow", "First Name")) + self.pushButton_lastname.setText(_translate("MainWindow", "Last Name")) + self.label_list.setText(_translate("MainWindow", "Contact List")) + self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_2), _translate("MainWindow", "List")) + self.pushButton_extract.setText(_translate("MainWindow", "Extract")) + self.label_input.setText(_translate("MainWindow", "Input")) + self.label_output.setText(_translate("MainWindow", "Output")) + self.label_extract.setText(_translate("MainWindow", "Enter text to extract into names and phones")) + self.label_names.setText(_translate("MainWindow", "Names")) + self.label_numbers.setText(_translate("MainWindow", "Numbers")) + self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_3), _translate("MainWindow", "Find")) + self.label_site.setText(_translate("MainWindow", "www.fakenamegenerator.com")) + self.label_web.setText(_translate("MainWindow", "Web Page Address")) + self.pushButton_get.setText(_translate("MainWindow", "Get Data")) + self.label_last_2.setText(_translate("MainWindow", "Last Name")) + self.label_first_2.setText(_translate("MainWindow", "First Name")) + self.label_phone_2.setText(_translate("MainWindow", "Phone Number")) + self.label_email_2.setText(_translate("MainWindow", "Email Address")) + self.pushButton_add.setText(_translate("MainWindow", "Add")) + self.label_select_5.setText(_translate("MainWindow", "Change information or click Add")) + self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_31), _translate("MainWindow", "Web")) + + +if __name__ == "__main__": + import sys + app = QtWidgets.QApplication(sys.argv) + MainWindow = QtWidgets.QMainWindow() + ui = Ui_MainWindow() + ui.setupUi(MainWindow) + MainWindow.show() + sys.exit(app.exec_()) diff --git a/Other Students' Projects/1/MainPage.ui b/Other Students' Projects/1/MainPage.ui new file mode 100644 index 0000000..5d7ba19 --- /dev/null +++ b/Other Students' Projects/1/MainPage.ui @@ -0,0 +1,1252 @@ + + + MainWindow + + + + 0 + 0 + 611 + 680 + + + + + 611 + 680 + + + + + 611 + 680 + + + + Contact Manager System + + + background-color: #2F3032 + + + + + + 10 + 10 + 591 + 61 + + + + + Tw Cen MT Condensed Extra Bold + 28 + + + + OpenHandCursor + + + color:#F0F0F0 + + + Contact Manager System + + + Qt::AlignCenter + + + + + + 10 + 90 + 591 + 571 + + + + + 11 + + + + background-color: #FDF5E6 + + + QTabWidget::West + + + 0 + + + + Contacts + + + + + 220 + 70 + 131 + 41 + + + + + 10 + 75 + true + + + + PointingHandCursor + + + background-color:#2F3032; color:white + + + Remove + + + + + + 70 + 70 + 131 + 41 + + + + + 10 + 75 + true + + + + PointingHandCursor + + + background-color:#2F3032; color:white + + + Add + + + + + + 20 + 260 + 140 + 40 + + + + + 11 + 75 + true + + + + border:0.15em solid #2F3032; border-radius:0.5em + + + First Name + + + Qt::AlignCenter + + + + + + 20 + 310 + 140 + 40 + + + + + 11 + 75 + true + + + + border:0.15em solid #2F3032; border-radius:0.5em + + + Last Name + + + Qt::AlignCenter + + + + + + 20 + 410 + 140 + 40 + + + + + 10 + 75 + true + + + + border:0.15em solid #2F3032; border-radius:0.5em + + + Phone Number + + + Qt::AlignCenter + + + + + + 20 + 360 + 140 + 40 + + + + + 10 + 75 + true + + + + border:0.15em solid #2F3032; border-radius:0.5em + + + Email Address + + + Qt::AlignCenter + + + + + + 170 + 260 + 371 + 40 + + + + border:0.15em solid #2F3032; border-radius:0.5em + + + + + + 170 + 310 + 371 + 40 + + + + border:0.15em solid #2F3032; border-radius:0.5em + + + + + + 170 + 410 + 371 + 40 + + + + border:0.15em solid #2F3032; border-radius:0.5em + + + + + + 170 + 360 + 371 + 40 + + + + border:0.15em solid #2F3032; border-radius:0.5em + + + + + + 370 + 70 + 131 + 41 + + + + + 10 + 75 + true + + + + PointingHandCursor + + + background-color:#2F3032; color:white + + + Update + + + + + + 20 + 210 + 140 + 40 + + + + + 10 + 75 + true + + + + border:0.15em solid #2F3032; border-radius:0.5em + + + Select Contact + + + Qt::AlignCenter + + + + + + 170 + 210 + 141 + 41 + + + + PointingHandCursor + + + background-color:#2F3032; color:white + + + + + + 410 + 210 + 61 + 41 + + + + + 8 + 75 + true + + + + PointingHandCursor + + + background-color:#2F3032; color:white + + + Apply + + + + + + 480 + 210 + 61 + 41 + + + + + 8 + 75 + true + + + + PointingHandCursor + + + background-color:#2F3032; color:white + + + Save + + + + + + 10 + 10 + 541 + 40 + + + + + 12 + 75 + true + + + + border:0.15em solid #2F3032; border-radius:0.5em + + + Choose one option + + + Qt::AlignCenter + + + + + + 10 + 150 + 541 + 40 + + + + + 12 + 75 + true + + + + border:0.15em solid #2F3032; border-radius:0.5em + + + Choose contact change + + + Qt::AlignCenter + + + + + + 10 + 539 + 541 + 21 + + + + + 8 + 75 + true + + + + border:0.15em solid #F92672; border-radius:0.5em; color: red + + + + + + Qt::AlignCenter + + + false + + + + + + List + + + + + 10 + 110 + 541 + 451 + + + + border:0.05em solid #2F3032 + + + false + + + 36 + + + 123 + + + false + + + true + + + + First Name + + + + + Last Name + + + + + Phone Number + + + + + Email Address + + + + + + + 10 + 70 + 81 + 31 + + + + + 10 + 75 + true + + + + border:0.15em solid #2F3032; border-radius:0.5em + + + Sort by + + + Qt::AlignCenter + + + + + + 110 + 70 + 84 + 31 + + + + + 75 + true + + + + PointingHandCursor + + + background-color:#2F3032; color:white + + + First Name + + + + + + 210 + 70 + 84 + 31 + + + + + 75 + true + + + + PointingHandCursor + + + background-color:#2F3032; color:white + + + Last Name + + + + + + 10 + 10 + 541 + 40 + + + + + 12 + 75 + true + + + + border:0.15em solid #2F3032; border-radius:0.5em + + + Contact List + + + Qt::AlignCenter + + + + + + Find + + + + + 430 + 70 + 111 + 41 + + + + + 10 + 75 + true + + + + PointingHandCursor + + + background-color:#2F3032; color:white + + + Extract + + + + + + 20 + 120 + 521 + 141 + + + + + 10 + + + + IBeamCursor + + + border:0.15em solid #2F3032; border-radius:0.5em + + + + + + 20 + 70 + 61 + 40 + + + + + 10 + 75 + true + + + + border:0.15em solid #2F3032; border-radius:0.5em + + + Input + + + Qt::AlignCenter + + + + + + 20 + 290 + 61 + 40 + + + + + 9 + 75 + true + + + + border:0.15em solid #2F3032; border-radius:0.5em + + + Output + + + Qt::AlignCenter + + + + + + 20 + 340 + 241 + 111 + + + + + 10 + + + + ArrowCursor + + + border:0.15em solid #2F3032; border-radius:0.5em + + + + + + 300 + 340 + 241 + 111 + + + + + 10 + + + + ArrowCursor + + + border:0.15em solid #2F3032; border-radius:0.5em + + + + + + 10 + 10 + 541 + 40 + + + + + 12 + 75 + true + + + + border:0.15em solid #2F3032; border-radius:0.5em + + + Enter text to extract into names and phones + + + Qt::AlignCenter + + + + + + 10 + 540 + 541 + 21 + + + + + 8 + 75 + true + + + + border:0.15em solid #F92672; border-radius:0.5em; color: red + + + + + + Qt::AlignCenter + + + false + + + + + + 20 + 450 + 241 + 31 + + + + + 9 + 75 + true + + + + border:0.15em solid #2F3032; border-radius:0.5em + + + Names + + + Qt::AlignCenter + + + + + + 300 + 450 + 241 + 31 + + + + + 9 + 75 + true + + + + border:0.15em solid #2F3032; border-radius:0.5em + + + Numbers + + + Qt::AlignCenter + + + + + + Web + + + + + 20 + 70 + 421 + 40 + + + + + 10 + 75 + true + + + + OpenHandCursor + + + border:0.15em solid #50C878; border-radius:0.5em + + + www.fakenamegenerator.com + + + Qt::AlignCenter + + + + + + 10 + 10 + 541 + 40 + + + + + 12 + 75 + true + + + + border:0.15em solid #2F3032; border-radius:0.5em + + + Web Page Address + + + Qt::AlignCenter + + + + + + 450 + 70 + 91 + 41 + + + + + 10 + 75 + true + + + + PointingHandCursor + + + background-color:#2F3032; color:white + + + Get Data + + + + + + 170 + 360 + 371 + 40 + + + + border:0.15em solid #2F3032; border-radius:0.5em + + + + + + 20 + 310 + 140 + 40 + + + + + 11 + 75 + true + + + + border:0.15em solid #2F3032; border-radius:0.5em + + + Last Name + + + Qt::AlignCenter + + + + + + 20 + 260 + 140 + 40 + + + + + 11 + 75 + true + + + + border:0.15em solid #2F3032; border-radius:0.5em + + + First Name + + + Qt::AlignCenter + + + + + + 170 + 310 + 371 + 40 + + + + border:0.15em solid #2F3032; border-radius:0.5em + + + + + + 20 + 410 + 140 + 40 + + + + + 10 + 75 + true + + + + border:0.15em solid #2F3032; border-radius:0.5em + + + Phone Number + + + Qt::AlignCenter + + + + + + 170 + 410 + 371 + 40 + + + + border:0.15em solid #2F3032; border-radius:0.5em + + + + + + 170 + 260 + 371 + 40 + + + + border:0.15em solid #2F3032; border-radius:0.5em + + + + + + 20 + 360 + 140 + 40 + + + + + 10 + 75 + true + + + + border:0.15em solid #2F3032; border-radius:0.5em + + + Email Address + + + Qt::AlignCenter + + + + + + 480 + 210 + 61 + 41 + + + + + 10 + 75 + true + + + + PointingHandCursor + + + background-color:#2F3032; color:white + + + Add + + + + + + 10 + 150 + 541 + 40 + + + + + 12 + 75 + true + + + + border:0.15em solid #2F3032; border-radius:0.5em + + + Change information or click Add + + + Qt::AlignCenter + + + + + + 10 + 540 + 541 + 21 + + + + + 8 + 75 + true + + + + border:0.15em solid #F92672; border-radius:0.5em; color: red + + + + + + Qt::AlignCenter + + + false + + + + + + + + 10 + 70 + 591 + 16 + + + + color:#FDF5E6 + + + QFrame::Plain + + + Qt::Horizontal + + + + + + + diff --git a/Other Students' Projects/1/Persentation.docx b/Other Students' Projects/1/Persentation.docx new file mode 100644 index 0000000..5654362 Binary files /dev/null and b/Other Students' Projects/1/Persentation.docx differ diff --git a/Other Students' Projects/1/database.txt b/Other Students' Projects/1/database.txt new file mode 100644 index 0000000..71e7e7d --- /dev/null +++ b/Other Students' Projects/1/database.txt @@ -0,0 +1 @@ +[{"first name": "Marvin H.", "last name": "Deleon", "email": "MarvinHDeleon@jourrapide.com", "phone": "+1954-693-8325"}, {"first name": "Jodi H.", "last name": "McLeod", "email": "JodiHMcLeod@rhyta.com", "phone": "+1708-372-9360"}, {"first name": "Joseph S.", "last name": "Bullock", "email": "JosephSBullock@armyspy.com", "phone": "+1810-740-6019"}] \ No newline at end of file diff --git a/Other Students' Projects/1/keep.txt b/Other Students' Projects/1/keep.txt new file mode 100644 index 0000000..5d82c01 --- /dev/null +++ b/Other Students' Projects/1/keep.txt @@ -0,0 +1,15 @@ +libraries: + pip install pyqt5-tools + pip install PyQt5 + pip install requests + pip install beautifulsoup4 + pip install dicttoxml + +Designer: + C:\Program Files\Python37\Lib\site-packages\qt5_applications\Qt\bin\designer.exe + +Ui to Py: + Pyuic5 -x -o .\MainPage.py .\MainPage.ui + +Py to exe: + pyinstaller .\main.py --name mainCMS --onefile --noconsole diff --git a/Other Students' Projects/1/main.py b/Other Students' Projects/1/main.py new file mode 100644 index 0000000..d7c8054 --- /dev/null +++ b/Other Students' Projects/1/main.py @@ -0,0 +1,397 @@ +import json +from dicttoxml import dicttoxml +from xml.dom.minidom import parseString +import requests +from bs4 import BeautifulSoup +from MainPage import Ui_MainWindow +from PyQt5 import QtCore, QtWidgets +import sys +import re + +# Hidpi scaling +QtWidgets.QApplication.setAttribute(QtCore.Qt.AA_EnableHighDpiScaling, True) +# use Hidpi icons +QtWidgets.QApplication.setAttribute(QtCore.Qt.AA_UseHighDpiPixmaps, True) + + +class ContactsManager(Ui_MainWindow): + def setupUi(self, MainWindow): + super().setupUi(MainWindow) + + def retranslateUi(self, MainWindow): + super().retranslateUi(MainWindow) + + def Defaults(self): + self.Database = [] + self.loadToProgram() + self.ToDo = "" + + self.label_select.setVisible(False) + self.label_change.setVisible(False) + self.label_first.setVisible(False) + self.label_last.setVisible(False) + self.label_email.setVisible(False) + self.label_phone.setVisible(False) + self.lineEdit_first.setVisible(False) + self.lineEdit_last.setVisible(False) + self.lineEdit_email.setVisible(False) + self.lineEdit_phone.setVisible(False) + self.comboBox_select.setVisible(False) + self.pushButton_apply.setVisible(False) + self.pushButton_save.setVisible(False) + self.label_error1.setVisible(False) + self.label_error2.setVisible(False) + self.label_error3.setVisible(False) + + self.DatabaseToCombo() + self.comboBox_select.setCurrentIndex(-1) + self.DatabaseToTable() + + def BtnMainAdd(self): + self.label_error1.setVisible(False) + self.label_select.setVisible(False) + self.comboBox_select.setVisible(False) + self.label_change.setVisible(True) + self.label_first.setVisible(True) + self.label_last.setVisible(True) + self.label_email.setVisible(True) + self.label_phone.setVisible(True) + self.lineEdit_first.setVisible(True) + self.lineEdit_last.setVisible(True) + self.lineEdit_email.setVisible(True) + self.lineEdit_phone.setVisible(True) + self.pushButton_apply.setVisible(True) + self.pushButton_save.setVisible(True) + + self.ToDo = "add" + self.comboBox_select.setCurrentIndex(-1) + self.EmptyLineEdits1() + + def BtnMainRemove(self): + self.label_error1.setVisible(False) + self.label_first.setVisible(False) + self.label_last.setVisible(False) + self.label_email.setVisible(False) + self.label_phone.setVisible(False) + self.lineEdit_first.setVisible(False) + self.lineEdit_last.setVisible(False) + self.lineEdit_email.setVisible(False) + self.lineEdit_phone.setVisible(False) + self.label_select.setVisible(True) + self.comboBox_select.setVisible(True) + self.label_change.setVisible(True) + self.pushButton_apply.setVisible(True) + self.pushButton_save.setVisible(True) + + self.ToDo = "remove" + self.comboBox_select.setCurrentIndex(-1) + self.EmptyLineEdits1() + + def BtnMainUpdate(self): + self.label_error1.setVisible(False) + self.label_select.setVisible(True) + self.label_change.setVisible(True) + self.label_first.setVisible(True) + self.label_last.setVisible(True) + self.label_email.setVisible(True) + self.label_phone.setVisible(True) + self.lineEdit_first.setVisible(True) + self.lineEdit_last.setVisible(True) + self.lineEdit_email.setVisible(True) + self.lineEdit_phone.setVisible(True) + self.comboBox_select.setVisible(True) + self.pushButton_apply.setVisible(True) + self.pushButton_save.setVisible(True) + + self.ToDo = "update" + self.comboBox_select.setCurrentIndex(-1) + self.EmptyLineEdits1() + + def BtnApply(self): + if self.ToDo == "add": + self.label_error1.setVisible(False) + fname = self.lineEdit_first.text() + lname = self.lineEdit_last.text() + email = self.lineEdit_email.text() + phone = self.lineEdit_phone.text() + + if fname != '': + if self.EmailVarify(email) == True: + self.Database.append({ + "first name": fname, + "last name": lname, + "email": email, + "phone": phone + }) + self.DatabaseToCombo() + self.DatabaseToTable() + self.EmptyLineEdits1() + else: + self.label_error1.setVisible(True) + self.label_error1.setText("Email Address is invalid") + + else: + self.label_error1.setVisible(True) + self.label_error1.setText("Enter a name at least") + + elif self.ToDo == "remove": + toDelete = self.comboBox_select.currentIndex() + if toDelete == -1: + self.label_error1.setVisible(True) + self.label_error1.setText("No contact selected") + + else: + self.label_error1.setVisible(False) + self.Database.pop(toDelete) + self.DatabaseToCombo() + self.DatabaseToTable() + self.EmptyLineEdits1() + + else: + toUpdate = self.comboBox_select.currentIndex() + if toUpdate == -1: + self.label_error1.setVisible(True) + self.label_error1.setText("No contact selected") + + else: + self.label_error1.setVisible(False) + + fname = self.lineEdit_first.text() + lname = self.lineEdit_last.text() + email = self.lineEdit_email.text() + phone = self.lineEdit_phone.text() + + if fname != '': + if self.EmailVarify(email) == True: + self.Database[toUpdate] = { + "first name": fname, + "last name": lname, + "email": email, + "phone": phone + } + + self.DatabaseToCombo() + self.DatabaseToTable() + self.comboBox_select.setCurrentIndex(-1) + self.EmptyLineEdits1() + + else: + self.label_error1.setVisible(True) + self.label_error1.setText("Email Address is invalid") + else: + self.label_error1.setVisible(True) + self.label_error1.setText("Enter a name at least") + + def BtnSortFirstName(self): + self.SortContact("first name") + + def BtnSortLastName(self): + self.SortContact("last name") + + def BtnExtract(self): + self.textEdit_output1.clear() + self.textEdit_output2.clear() + + text = self.textEdit_input.toPlainText() + if text != "": + self.label_error2.setVisible(False) + + name, phone = self.ContactExtract(text) + + final_name = '\n'.join(map(str, name)) + final_phone = '\n'.join(map(str, phone)) + + if final_name: + self.textEdit_output1.setText(final_name) + else: + self.textEdit_output1.setText("No contact name were found !") + + if final_phone: + self.textEdit_output2.setText(final_phone) + else: + self.textEdit_output2.setText("No number were found !") + + else: + self.label_error2.setVisible(True) + self.label_error2.setText("Input is empty") + + def DatabaseToCombo(self): + self.comboBox_select.clear() + if len(self.Database) > 0: + tempList = [] + + for i in self.Database: + tempList.append(i['first name'] + " " + i['last name']) + + self.comboBox_select.addItems(tempList) + + def EmptyLineEdits1(self): + self.lineEdit_first.clear() + self.lineEdit_last.clear() + self.lineEdit_email.clear() + self.lineEdit_phone.clear() + + def EmptyLineEdits2(self): + self.lineEdit_first_2.clear() + self.lineEdit_last_2.clear() + self.lineEdit_email_2.clear() + self.lineEdit_phone_2.clear() + + def ComboEditLine(self): + toEditLine = self.comboBox_select.currentIndex() + + if self.ToDo == "update": + self.lineEdit_first.setText(self.Database[toEditLine]["first name"]) + self.lineEdit_last.setText(self.Database[toEditLine]["last name"]) + self.lineEdit_email.setText(self.Database[toEditLine]["email"]) + self.lineEdit_phone.setText(self.Database[toEditLine]["phone"]) + + def DatabaseToTable(self, database=[]): + if database == []: + database = self.Database + + self.tableWidget.setRowCount(0) + for i in range(len(database)): + self.tableWidget.insertRow(i) + self.tableWidget.setItem(i, 0, QtWidgets.QTableWidgetItem(database[i]['first name'])) + self.tableWidget.setItem(i, 1, QtWidgets.QTableWidgetItem(database[i]['last name'])) + self.tableWidget.setItem(i, 2, QtWidgets.QTableWidgetItem(database[i]['phone'])) + self.tableWidget.setItem(i, 3, QtWidgets.QTableWidgetItem(database[i]['email'])) + + def ContactExtract(self, text): + names = re.findall(r'[@]([\w]+)', text) + phones = re.findall(r'[#]([\d]+)', text) + + return names, phones + + def EmailVarify(self, email): + tempList = re.findall(r"(^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$)", email) + + if email == "": + return True + elif tempList == []: + return False + else: + return True + + def WebScrap(self): + try: + self.label_error3.setVisible(False) + response = requests.get('https://www.fakenamegenerator.com/', headers={'user-agent': 'Sth here'}) + soup = BeautifulSoup(response.text, 'html.parser') + + names = [str(i).replace("

", "").replace("

", "") for i in soup.find_all("h3")][0].split() + firstname = names[0] + " " + names[1] + lastname = names[2] + + phones = [str(i).replace("
", "").replace("
", "") for i in soup.find_all("dd")] + phone = "+" + phones[4] + phones[3] + email = phones[8].split()[0] + + self.lineEdit_first_2.setText(firstname) + self.lineEdit_last_2.setText(lastname) + self.lineEdit_email_2.setText(email) + self.lineEdit_phone_2.setText(phone) + + except: + self.label_error3.setVisible(True) + self.label_error3.setText("No connection to internet") + + def WebAdd(self): + fname = self.lineEdit_first_2.text() + if fname != '': + self.label_error3.setVisible(False) + fname = self.lineEdit_first_2.text() + lname = self.lineEdit_last_2.text() + email = self.lineEdit_email_2.text() + phone = self.lineEdit_phone_2.text() + + if self.EmailVarify(email) == True: + self.Database.append({ + "first name": fname, + "last name": lname, + "email": email, + "phone": phone + }) + self.DatabaseToCombo() + self.DatabaseToTable() + self.EmptyLineEdits2() + else: + self.label_error3.setVisible(True) + self.label_error3.setText("Email Address is invalid") + + else: + self.label_error3.setVisible(True) + self.label_error3.setText("Enter a name at least") + + def SortContact(self, sort): + tempList = [i for i in sorted(self.Database, key=lambda obj: obj[sort])] + self.DatabaseToTable(tempList) + + def SaveToFile(self): + messageBox = QtWidgets.QMessageBox() + messageBox.setWindowTitle('Save as ...') + messageBox.setIcon(QtWidgets.QMessageBox.Question) + messageBox.setText('What format would you like to save your file ?') + messageBox.setStandardButtons(QtWidgets.QMessageBox.Yes | QtWidgets.QMessageBox.No | QtWidgets.QMessageBox.Save) + + buttonJson = messageBox.button(QtWidgets.QMessageBox.Yes) + buttonJson.setText('Json') + buttonXML = messageBox.button(QtWidgets.QMessageBox.No) + buttonXML.setText('XML') + buttonTXT = messageBox.button(QtWidgets.QMessageBox.Save) + buttonTXT.setText('TXT') + + messageBox.exec_() + + if messageBox.clickedButton() == buttonJson: + file = open('database.json', 'w') + json.dump(self.Database, file) + file.close() + + elif messageBox.clickedButton() == buttonXML: + dom = parseString(dicttoxml(self.Database, attr_type=False)) + file = open("database.xml", 'w') + makePrrety = dom.toprettyxml() + file.write(makePrrety) + file.close() + + else: + file = open('database.txt', 'w') + file.write(json.dumps(self.Database)) + file.close() + + def loadToProgram(self): + try: + file = open("database.txt", 'r') + self.Database = json.loads(file.read()) + file.close() + + except: + file = open("database.txt", 'w') + file.close() + + +if __name__ == "__main__": + app = QtWidgets.QApplication(sys.argv) + app.setStyle(QtWidgets.QStyleFactory.create("Fusion")) + MainWindow = QtWidgets.QMainWindow() + + ui = ContactsManager() + ui.setupUi(MainWindow) + ui.Defaults() + + ui.pushButton_MainAdd.clicked.connect(ui.BtnMainAdd) + ui.pushButton_MainRemove.clicked.connect(ui.BtnMainRemove) + ui.pushButton_MainUpdate.clicked.connect(ui.BtnMainUpdate) + ui.pushButton_apply.clicked.connect(ui.BtnApply) + ui.pushButton_save.clicked.connect(ui.SaveToFile) + ui.comboBox_select.currentIndexChanged.connect(ui.ComboEditLine) + ui.pushButton_firstname.clicked.connect(ui.BtnSortFirstName) + ui.pushButton_lastname.clicked.connect(ui.BtnSortLastName) + ui.pushButton_extract.clicked.connect(ui.BtnExtract) + ui.pushButton_get.clicked.connect(ui.WebScrap) + ui.pushButton_add.clicked.connect(ui.WebAdd) + + MainWindow.show() + sys.exit(app.exec_()) diff --git a/Other Students' Projects/10/.idea/Prozhe.iml b/Other Students' Projects/10/.idea/Prozhe.iml new file mode 100644 index 0000000..d0876a7 --- /dev/null +++ b/Other Students' Projects/10/.idea/Prozhe.iml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/Other Students' Projects/10/.idea/inspectionProfiles/Project_Default.xml b/Other Students' Projects/10/.idea/inspectionProfiles/Project_Default.xml new file mode 100644 index 0000000..6eeafb9 --- /dev/null +++ b/Other Students' Projects/10/.idea/inspectionProfiles/Project_Default.xml @@ -0,0 +1,24 @@ + + + + \ No newline at end of file diff --git a/Other Students' Projects/10/.idea/inspectionProfiles/profiles_settings.xml b/Other Students' Projects/10/.idea/inspectionProfiles/profiles_settings.xml new file mode 100644 index 0000000..105ce2d --- /dev/null +++ b/Other Students' Projects/10/.idea/inspectionProfiles/profiles_settings.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/Other Students' Projects/10/.idea/modules.xml b/Other Students' Projects/10/.idea/modules.xml new file mode 100644 index 0000000..c4482b6 --- /dev/null +++ b/Other Students' Projects/10/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/Other Students' Projects/10/CMS.py b/Other Students' Projects/10/CMS.py new file mode 100644 index 0000000..b8eb232 --- /dev/null +++ b/Other Students' Projects/10/CMS.py @@ -0,0 +1,817 @@ +from PyQt5 import QtCore, QtGui, QtWidgets +import sys +import ast +import re +import json +import requests +from bs4 import BeautifulSoup + +# Hidpi scaling +QtWidgets.QApplication.setAttribute(QtCore.Qt.AA_EnableHighDpiScaling, True) +# use Hidpi icons +QtWidgets.QApplication.setAttribute(QtCore.Qt.AA_UseHighDpiPixmaps, True) + + +class Ui_MainWindow(object): + def setupUi(self, MainWindow): + MainWindow.setObjectName("MainWindow") + MainWindow.resize(524, 641) + self.centralwidget = QtWidgets.QWidget(MainWindow) + self.centralwidget.setObjectName("centralwidget") + self.label = QtWidgets.QLabel(self.centralwidget) + self.label.setGeometry(QtCore.QRect(10, 10, 400, 40)) + font = QtGui.QFont() + font.setPointSize(16) + self.label.setFont(font) + self.label.setObjectName("label") + self.pushButton_find = QtWidgets.QPushButton(self.centralwidget) + self.pushButton_find.setGeometry(QtCore.QRect(110, 440, 311, 61)) + font = QtGui.QFont() + font.setPointSize(13) + self.pushButton_find.setFont(font) + self.pushButton_find.setStyleSheet("") + self.pushButton_find.setObjectName("pushButton_find") + self.pushButton_change = QtWidgets.QPushButton(self.centralwidget) + self.pushButton_change.setGeometry(QtCore.QRect(110, 100, 311, 71)) + font = QtGui.QFont() + font.setPointSize(17) + self.pushButton_change.setFont(font) + self.pushButton_change.setStyleSheet("") + self.pushButton_change.setObjectName("pushButton_change") + self.pushButton_contacts = QtWidgets.QPushButton(self.centralwidget) + self.pushButton_contacts.setGeometry(QtCore.QRect(110, 180, 311, 71)) + font = QtGui.QFont() + font.setPointSize(17) + self.pushButton_contacts.setFont(font) + self.pushButton_contacts.setStyleSheet("") + self.pushButton_contacts.setObjectName("pushButton_contacts") + self.label_2 = QtWidgets.QLabel(self.centralwidget) + self.label_2.setGeometry(QtCore.QRect(10, 60, 400, 40)) + font = QtGui.QFont() + font.setPointSize(16) + font.setBold(True) + font.setWeight(75) + self.label_2.setFont(font) + self.label_2.setObjectName("label_2") + self.label_3 = QtWidgets.QLabel(self.centralwidget) + self.label_3.setGeometry(QtCore.QRect(10, 400, 400, 40)) + font = QtGui.QFont() + font.setPointSize(16) + font.setBold(True) + font.setWeight(75) + self.label_3.setFont(font) + self.label_3.setObjectName("label_3") + self.pushButton_txt = QtWidgets.QPushButton(self.centralwidget) + self.pushButton_txt.setGeometry(QtCore.QRect(110, 300, 150, 71)) + font = QtGui.QFont() + font.setPointSize(17) + self.pushButton_txt.setFont(font) + self.pushButton_txt.setStyleSheet("") + self.pushButton_txt.setObjectName("pushButton_txt") + self.label_done = QtWidgets.QLabel(self.centralwidget) + self.label_done.setGeometry(QtCore.QRect(430, 330, 91, 30)) + font = QtGui.QFont() + font.setPointSize(10) + self.label_done.setFont(font) + self.label_done.setText("") + self.label_done.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignTop) + self.label_done.setWordWrap(True) + self.label_done.setObjectName("label_done") + self.pushButton_web = QtWidgets.QPushButton(self.centralwidget) + self.pushButton_web.setGeometry(QtCore.QRect(110, 510, 311, 61)) + font = QtGui.QFont() + font.setPointSize(13) + self.pushButton_web.setFont(font) + self.pushButton_web.setStyleSheet("") + self.pushButton_web.setObjectName("pushButton_web") + self.label_4 = QtWidgets.QLabel(self.centralwidget) + self.label_4.setGeometry(QtCore.QRect(10, 270, 91, 30)) + font = QtGui.QFont() + font.setPointSize(14) + self.label_4.setFont(font) + self.label_4.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignTop) + self.label_4.setWordWrap(True) + self.label_4.setObjectName("label_4") + self.pushButton_json = QtWidgets.QPushButton(self.centralwidget) + self.pushButton_json.setGeometry(QtCore.QRect(270, 300, 150, 71)) + font = QtGui.QFont() + font.setPointSize(17) + self.pushButton_json.setFont(font) + self.pushButton_json.setStyleSheet("") + self.pushButton_json.setObjectName("pushButton_json") + MainWindow.setCentralWidget(self.centralwidget) + self.menubar = QtWidgets.QMenuBar(MainWindow) + self.menubar.setGeometry(QtCore.QRect(0, 0, 524, 25)) + self.menubar.setObjectName("menubar") + MainWindow.setMenuBar(self.menubar) + self.statusbar = QtWidgets.QStatusBar(MainWindow) + self.statusbar.setObjectName("statusbar") + MainWindow.setStatusBar(self.statusbar) + + self.retranslateUi(MainWindow) + QtCore.QMetaObject.connectSlotsByName(MainWindow) + MainWindow.setTabOrder(self.pushButton_change, self.pushButton_contacts) + MainWindow.setTabOrder(self.pushButton_contacts, self.pushButton_txt) + MainWindow.setTabOrder(self.pushButton_txt, self.pushButton_json) + MainWindow.setTabOrder(self.pushButton_json, self.pushButton_find) + MainWindow.setTabOrder(self.pushButton_find, self.pushButton_web) + + def retranslateUi(self, MainWindow): + _translate = QtCore.QCoreApplication.translate + MainWindow.setWindowTitle(_translate("MainWindow", "Main")) + self.label.setText(_translate("MainWindow", "Contacts Manager System:")) + self.pushButton_find.setText(_translate("MainWindow", "Find Contact Name and Phone")) + self.pushButton_change.setText(_translate("MainWindow", "Change Contacts")) + self.pushButton_contacts.setText(_translate("MainWindow", "Contacts List")) + self.label_2.setText(_translate("MainWindow", "Faz 1:")) + self.label_3.setText(_translate("MainWindow", "Faz 2:")) + self.pushButton_txt.setText(_translate("MainWindow", "TXT")) + self.pushButton_web.setText(_translate("MainWindow", "Web Scraping")) + self.label_4.setText(_translate("MainWindow", "Save As:")) + self.pushButton_json.setText(_translate("MainWindow", "JSON")) + +class Ui_Change(object): + def setupUi(self, Change): + Change.setObjectName("Change") + Change.resize(524, 514) + self.pushButton = QtWidgets.QPushButton(Change) + self.pushButton.setGeometry(QtCore.QRect(360, 420, 141, 71)) + font = QtGui.QFont() + font.setPointSize(15) + self.pushButton.setFont(font) + self.pushButton.setObjectName("pushButton") + self.label_4 = QtWidgets.QLabel(Change) + self.label_4.setGeometry(QtCore.QRect(20, 300, 111, 30)) + font = QtGui.QFont() + font.setPointSize(10) + self.label_4.setFont(font) + self.label_4.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignTop) + self.label_4.setWordWrap(True) + self.label_4.setObjectName("label_4") + self.label_5 = QtWidgets.QLabel(Change) + self.label_5.setGeometry(QtCore.QRect(20, 340, 111, 30)) + font = QtGui.QFont() + font.setPointSize(10) + self.label_5.setFont(font) + self.label_5.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignTop) + self.label_5.setWordWrap(True) + self.label_5.setObjectName("label_5") + self.lineEdit_phone = QtWidgets.QLineEdit(Change) + self.lineEdit_phone.setGeometry(QtCore.QRect(140, 340, 361, 30)) + self.lineEdit_phone.setObjectName("lineEdit_phone") + self.lineEdit_id = QtWidgets.QLineEdit(Change) + self.lineEdit_id.setGeometry(QtCore.QRect(140, 180, 271, 30)) + self.lineEdit_id.setObjectName("lineEdit_id") + self.lineEditName = QtWidgets.QLineEdit(Change) + self.lineEditName.setGeometry(QtCore.QRect(140, 220, 361, 30)) + self.lineEditName.setObjectName("lineEditName") + self.label_6 = QtWidgets.QLabel(Change) + self.label_6.setGeometry(QtCore.QRect(20, 180, 121, 30)) + font = QtGui.QFont() + font.setPointSize(9) + self.label_6.setFont(font) + self.label_6.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignTop) + self.label_6.setWordWrap(True) + self.label_6.setObjectName("label_6") + self.radioButton = QtWidgets.QRadioButton(Change) + self.radioButton.setGeometry(QtCore.QRect(20, 70, 88, 19)) + font = QtGui.QFont() + font.setPointSize(10) + self.radioButton.setFont(font) + self.radioButton.setChecked(True) + self.radioButton.setObjectName("radioButton") + self.radioButton_2 = QtWidgets.QRadioButton(Change) + self.radioButton_2.setGeometry(QtCore.QRect(20, 100, 88, 19)) + font = QtGui.QFont() + font.setPointSize(10) + self.radioButton_2.setFont(font) + self.radioButton_2.setObjectName("radioButton_2") + self.lineEdit_Family = QtWidgets.QLineEdit(Change) + self.lineEdit_Family.setGeometry(QtCore.QRect(140, 260, 361, 30)) + self.lineEdit_Family.setObjectName("lineEdit_Family") + self.radioButton_3 = QtWidgets.QRadioButton(Change) + self.radioButton_3.setGeometry(QtCore.QRect(20, 130, 88, 19)) + font = QtGui.QFont() + font.setPointSize(10) + self.radioButton_3.setFont(font) + self.radioButton_3.setObjectName("radioButton_3") + self.label_2 = QtWidgets.QLabel(Change) + self.label_2.setGeometry(QtCore.QRect(20, 220, 91, 30)) + font = QtGui.QFont() + font.setPointSize(10) + self.label_2.setFont(font) + self.label_2.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignTop) + self.label_2.setWordWrap(True) + self.label_2.setObjectName("label_2") + self.label_3 = QtWidgets.QLabel(Change) + self.label_3.setGeometry(QtCore.QRect(20, 260, 91, 30)) + font = QtGui.QFont() + font.setPointSize(10) + self.label_3.setFont(font) + self.label_3.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignTop) + self.label_3.setWordWrap(True) + self.label_3.setObjectName("label_3") + self.label = QtWidgets.QLabel(Change) + self.label.setGeometry(QtCore.QRect(10, 10, 400, 40)) + font = QtGui.QFont() + font.setPointSize(16) + self.label.setFont(font) + self.label.setObjectName("label") + self.lineEdit_email = QtWidgets.QLineEdit(Change) + self.lineEdit_email.setGeometry(QtCore.QRect(140, 300, 361, 30)) + self.lineEdit_email.setObjectName("lineEdit_email") + self.label_errorshow = QtWidgets.QLabel(Change) + self.label_errorshow.setGeometry(QtCore.QRect(20, 380, 481, 30)) + font = QtGui.QFont() + font.setPointSize(10) + self.label_errorshow.setFont(font) + self.label_errorshow.setText("") + self.label_errorshow.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignTop) + self.label_errorshow.setWordWrap(True) + self.label_errorshow.setObjectName("label_errorshow") + self.pushButton_open = QtWidgets.QPushButton(Change) + self.pushButton_open.setGeometry(QtCore.QRect(420, 180, 81, 31)) + font = QtGui.QFont() + font.setPointSize(12) + self.pushButton_open.setFont(font) + self.pushButton_open.setObjectName("pushButton_open") + + self.retranslateUi(Change) + QtCore.QMetaObject.connectSlotsByName(Change) + Change.setTabOrder(self.radioButton, self.radioButton_2) + Change.setTabOrder(self.radioButton_2, self.radioButton_3) + Change.setTabOrder(self.radioButton_3, self.lineEdit_id) + Change.setTabOrder(self.lineEdit_id, self.pushButton_open) + Change.setTabOrder(self.pushButton_open, self.lineEditName) + Change.setTabOrder(self.lineEditName, self.lineEdit_Family) + Change.setTabOrder(self.lineEdit_Family, self.lineEdit_email) + Change.setTabOrder(self.lineEdit_email, self.lineEdit_phone) + Change.setTabOrder(self.lineEdit_phone, self.pushButton) + + def retranslateUi(self, Change): + _translate = QtCore.QCoreApplication.translate + Change.setWindowTitle(_translate("Change", "Dialog")) + self.pushButton.setText(_translate("Change", "Add")) + self.label_4.setText(_translate("Change", "Email Address:")) + self.label_5.setText(_translate("Change", "Phone Number:")) + self.label_6.setText(_translate("Change", "Id Sort by Name:")) + self.radioButton.setText(_translate("Change", "Add")) + self.radioButton_2.setText(_translate("Change", "Remove")) + self.radioButton_3.setText(_translate("Change", "Change")) + self.label_2.setText(_translate("Change", "Name:")) + self.label_3.setText(_translate("Change", "Family Name:")) + self.label.setText(_translate("Change", "What do you want to do ?")) + self.pushButton_open.setText(_translate("Change", "open")) + +class Ui_List(object): + def setupUi(self, List): + List.setObjectName("List") + List.resize(524, 641) + self.textBrowser = QtWidgets.QTextBrowser(List) + self.textBrowser.setGeometry(QtCore.QRect(10, 95, 501, 531)) + self.textBrowser.setObjectName("textBrowser") + self.label = QtWidgets.QLabel(List) + self.label.setGeometry(QtCore.QRect(10, 10, 400, 41)) + font = QtGui.QFont() + font.setPointSize(16) + self.label.setFont(font) + self.label.setObjectName("label") + self.radioButton_Family = QtWidgets.QRadioButton(List) + self.radioButton_Family.setGeometry(QtCore.QRect(180, 60, 121, 19)) + font = QtGui.QFont() + font.setPointSize(10) + self.radioButton_Family.setFont(font) + self.radioButton_Family.setObjectName("radioButton_Family") + self.radioButton_name = QtWidgets.QRadioButton(List) + self.radioButton_name.setGeometry(QtCore.QRect(80, 60, 88, 19)) + font = QtGui.QFont() + font.setPointSize(10) + self.radioButton_name.setFont(font) + self.radioButton_name.setChecked(True) + self.radioButton_name.setObjectName("radioButton_name") + self.label_2 = QtWidgets.QLabel(List) + self.label_2.setGeometry(QtCore.QRect(20, 50, 71, 41)) + font = QtGui.QFont() + font.setPointSize(10) + self.label_2.setFont(font) + self.label_2.setObjectName("label_2") + + self.retranslateUi(List) + QtCore.QMetaObject.connectSlotsByName(List) + List.setTabOrder(self.radioButton_name, self.radioButton_Family) + List.setTabOrder(self.radioButton_Family, self.textBrowser) + + def retranslateUi(self, List): + _translate = QtCore.QCoreApplication.translate + List.setWindowTitle(_translate("List", "Dialog")) + self.label.setText(_translate("List", "Contacts List:")) + self.radioButton_Family.setText(_translate("List", "Family Name")) + self.radioButton_name.setText(_translate("List", "Name")) + self.label_2.setText(_translate("List", "Sort:")) + +class Ui_Texts(object): + def setupUi(self, Texts): + Texts.setObjectName("Texts") + Texts.resize(524, 641) + self.textBrowser = QtWidgets.QTextBrowser(Texts) + self.textBrowser.setGeometry(QtCore.QRect(20, 390, 491, 231)) + self.textBrowser.setObjectName("textBrowser") + self.pushButton = QtWidgets.QPushButton(Texts) + self.pushButton.setGeometry(QtCore.QRect(370, 300, 141, 71)) + font = QtGui.QFont() + font.setPointSize(16) + self.pushButton.setFont(font) + self.pushButton.setObjectName("pushButton") + self.label = QtWidgets.QLabel(Texts) + self.label.setGeometry(QtCore.QRect(20, 10, 400, 40)) + font = QtGui.QFont() + font.setPointSize(13) + self.label.setFont(font) + self.label.setObjectName("label") + self.textEdit = QtWidgets.QTextEdit(Texts) + self.textEdit.setGeometry(QtCore.QRect(20, 50, 491, 231)) + self.textEdit.setObjectName("textEdit") + self.label_2 = QtWidgets.QLabel(Texts) + self.label_2.setGeometry(QtCore.QRect(20, 350, 400, 40)) + font = QtGui.QFont() + font.setPointSize(14) + self.label_2.setFont(font) + self.label_2.setObjectName("label_2") + + self.retranslateUi(Texts) + QtCore.QMetaObject.connectSlotsByName(Texts) + Texts.setTabOrder(self.textEdit, self.pushButton) + Texts.setTabOrder(self.pushButton, self.textBrowser) + + def retranslateUi(self, Texts): + _translate = QtCore.QCoreApplication.translate + Texts.setWindowTitle(_translate("Texts", "Dialog")) + self.pushButton.setText(_translate("Texts", "Find")) + self.label.setText(_translate("Texts", "Enter Text:")) + self.label_2.setText(_translate("Texts", "Names and Phone Numbers:")) + +class Ui_web(object): + def setupUi(self, web): + web.setObjectName("web") + web.resize(524, 425) + self.lineEdit_email = QtWidgets.QLineEdit(web) + self.lineEdit_email.setGeometry(QtCore.QRect(140, 170, 361, 30)) + self.lineEdit_email.setObjectName("lineEdit_email") + self.pushButton = QtWidgets.QPushButton(web) + self.pushButton.setGeometry(QtCore.QRect(360, 330, 141, 71)) + font = QtGui.QFont() + font.setPointSize(15) + self.pushButton.setFont(font) + self.pushButton.setObjectName("pushButton") + self.label_2 = QtWidgets.QLabel(web) + self.label_2.setGeometry(QtCore.QRect(20, 90, 91, 30)) + font = QtGui.QFont() + font.setPointSize(10) + self.label_2.setFont(font) + self.label_2.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignTop) + self.label_2.setWordWrap(True) + self.label_2.setObjectName("label_2") + self.lineEdit_Family = QtWidgets.QLineEdit(web) + self.lineEdit_Family.setGeometry(QtCore.QRect(140, 130, 361, 30)) + self.lineEdit_Family.setObjectName("lineEdit_Family") + self.label_3 = QtWidgets.QLabel(web) + self.label_3.setGeometry(QtCore.QRect(20, 130, 91, 30)) + font = QtGui.QFont() + font.setPointSize(10) + self.label_3.setFont(font) + self.label_3.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignTop) + self.label_3.setWordWrap(True) + self.label_3.setObjectName("label_3") + self.lineEdit_phone = QtWidgets.QLineEdit(web) + self.lineEdit_phone.setGeometry(QtCore.QRect(140, 210, 361, 30)) + self.lineEdit_phone.setObjectName("lineEdit_phone") + self.label_errorshow = QtWidgets.QLabel(web) + self.label_errorshow.setGeometry(QtCore.QRect(20, 250, 491, 30)) + font = QtGui.QFont() + font.setPointSize(10) + self.label_errorshow.setFont(font) + self.label_errorshow.setText("") + self.label_errorshow.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignTop) + self.label_errorshow.setWordWrap(True) + self.label_errorshow.setObjectName("label_errorshow") + self.label_4 = QtWidgets.QLabel(web) + self.label_4.setGeometry(QtCore.QRect(20, 170, 111, 30)) + font = QtGui.QFont() + font.setPointSize(10) + self.label_4.setFont(font) + self.label_4.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignTop) + self.label_4.setWordWrap(True) + self.label_4.setObjectName("label_4") + self.label_5 = QtWidgets.QLabel(web) + self.label_5.setGeometry(QtCore.QRect(20, 210, 111, 30)) + font = QtGui.QFont() + font.setPointSize(10) + self.label_5.setFont(font) + self.label_5.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignTop) + self.label_5.setWordWrap(True) + self.label_5.setObjectName("label_5") + self.lineEditName = QtWidgets.QLineEdit(web) + self.lineEditName.setGeometry(QtCore.QRect(140, 90, 361, 30)) + self.lineEditName.setObjectName("lineEditName") + self.label = QtWidgets.QLabel(web) + self.label.setGeometry(QtCore.QRect(10, 20, 400, 40)) + font = QtGui.QFont() + font.setPointSize(16) + self.label.setFont(font) + self.label.setObjectName("label") + self.pushButton_2 = QtWidgets.QPushButton(web) + self.pushButton_2.setGeometry(QtCore.QRect(210, 330, 141, 71)) + font = QtGui.QFont() + font.setPointSize(15) + self.pushButton_2.setFont(font) + self.pushButton_2.setObjectName("pushButton_2") + + self.retranslateUi(web) + QtCore.QMetaObject.connectSlotsByName(web) + web.setTabOrder(self.lineEditName, self.lineEdit_Family) + web.setTabOrder(self.lineEdit_Family, self.lineEdit_email) + web.setTabOrder(self.lineEdit_email, self.lineEdit_phone) + web.setTabOrder(self.lineEdit_phone, self.pushButton_2) + web.setTabOrder(self.pushButton_2, self.pushButton) + + def retranslateUi(self, web): + _translate = QtCore.QCoreApplication.translate + web.setWindowTitle(_translate("web", "Web Scraping")) + self.pushButton.setText(_translate("web", "Add")) + self.label_2.setText(_translate("web", "Name:")) + self.label_3.setText(_translate("web", "Family Name:")) + self.label_4.setText(_translate("web", "Email Address:")) + self.label_5.setText(_translate("web", "Phone Number:")) + self.label.setText(_translate("web", "Click to get data from site:")) + self.pushButton_2.setText(_translate("web", "Get Data")) + +class CMS(Ui_MainWindow): + def __init__(self): + global myGlist + myGlist = [] + + def setupUi(self, MainWindow): + super().setupUi(MainWindow) + + def retranslateUi(self, MainWindow): + super().retranslateUi(MainWindow) + + def Load(self): + global myGlist + try: + contactsFile = open("MyContact.txt", "r") + for i in contactsFile.readlines(): + myGlist.append(ast.literal_eval(i)) + contactsFile.close() + except: + contactsFile = open("MyContact.txt", "w") + contactsFile.write("\n".join(myGlist)) + contactsFile.close() + myGlist = [] + + def ChangeContacts(self): + self.label_done.setText("") + global myGlist + appC = QtWidgets.QDialog() + GUIC = Ui_Change() + GUIC.setupUi(appC) + + myList = myGlist + myList = [i for i in sorted(myList, key=lambda item: item['Name: '])] + + def email(email_address): + if email_address == "": + return True + else: + regex = '^[a-z0-9]+[\._]?[a-z0-9]+[@][a-z0-9]+[.][a-z0-9]{2,3}$' + + if re.search(regex, email_address): + return True + else: + return False + + def saveClicked(): + global myGlist + myList = myGlist + myList = [i for i in sorted(myList, key=lambda item: item['Name: '])] + + GUIC.label_errorshow.setText("") + + if GUIC.radioButton.isChecked(): + if email(GUIC.lineEdit_email.text().lower()) == True: + adder = {'Name: ': GUIC.lineEditName.text().capitalize(), + 'Family Name: ': GUIC.lineEdit_Family.text().capitalize(), + 'Email Address: ': GUIC.lineEdit_email.text(), + 'Phone Number: ': GUIC.lineEdit_phone.text() + } + + myList.append(adder) + GUIC.lineEdit_id.setText("") + GUIC.lineEditName.setText("") + GUIC.lineEdit_Family.setText("") + GUIC.lineEdit_email.setText("") + GUIC.lineEdit_phone.setText("") + + else: + GUIC.label_errorshow.setText("Email Address is invalid !") + + elif GUIC.radioButton_2.isChecked(): + if GUIC.lineEdit_id.text().isdigit() == False: + GUIC.label_errorshow.setText("Invalid input for id, it should be numberic") + elif GUIC.lineEdit_id.text() == "": + GUIC.label_errorshow.setText("Enter a id to remove a contact") + elif not 0 <= int(GUIC.lineEdit_id.text()) < len(myList): + GUIC.label_errorshow.setText("Invalid input for id, can't find such id") + else: + del myList[int(GUIC.lineEdit_id.text())] + GUIC.lineEdit_id.setText("") + GUIC.lineEditName.setText("") + GUIC.lineEdit_Family.setText("") + GUIC.lineEdit_email.setText("") + GUIC.lineEdit_phone.setText("") + + elif GUIC.radioButton_3.isChecked(): + if GUIC.lineEdit_id.text().isdigit() == False: + GUIC.label_errorshow.setText("Invalid input for id, it should be numberic") + elif GUIC.lineEdit_id.text() == "": + GUIC.label_errorshow.setText("Enter a id to remove a contact") + elif not 0 <= int(GUIC.lineEdit_id.text()) < len(myList): + GUIC.label_errorshow.setText("Invalid input for id, can't find such id") + else: + if email(GUIC.lineEdit_email.text().lower()) == True: + myList[int(GUIC.lineEdit_id.text())] = {'Name: ': GUIC.lineEditName.text().capitalize(), + 'Family Name: ': GUIC.lineEdit_Family.text().capitalize(), + 'Email Address: ': GUIC.lineEdit_email.text(), + 'Phone Number: ': GUIC.lineEdit_phone.text() + } + + GUIC.lineEdit_id.setText("") + GUIC.lineEditName.setText("") + GUIC.lineEdit_Family.setText("") + GUIC.lineEdit_email.setText("") + GUIC.lineEdit_phone.setText("") + + else: + GUIC.label_errorshow.setText("Email Address is invalid !") + + myList = [i for i in sorted(myList, key=lambda item: item['Name: '])] + myGlist = myList + + def add(): + GUIC.lineEdit_id.setEnabled(False) + GUIC.pushButton_open.setEnabled(False) + GUIC.pushButton.setText("Add") + + def remove(): + GUIC.lineEdit_id.setEnabled(True) + GUIC.pushButton_open.setEnabled(True) + GUIC.pushButton.setText("Remove") + + def change(): + GUIC.lineEdit_id.setEnabled(True) + GUIC.pushButton_open.setEnabled(True) + GUIC.pushButton.setText("Change") + + def open(): + global myGlist + myList = myGlist + myList = [i for i in sorted(myList, key=lambda item: item['Name: '])] + + GUIC.label_errorshow.setText("") + id = GUIC.lineEdit_id.text() + + if id != "": + if GUIC.lineEdit_id.text().isdigit() == False: + GUIC.label_errorshow.setText("Invalid input for id, it should be numberic") + elif GUIC.lineEdit_id.text() == "": + GUIC.label_errorshow.setText("Enter a id to remove a contact") + elif not 0 <= int(GUIC.lineEdit_id.text()) < len(myList): + GUIC.label_errorshow.setText("Invalid input for id, can't find such id") + else: + GUIC.lineEditName.setText(myList[int(id)]["Name: "]) + GUIC.lineEdit_Family.setText(myList[int(id)]["Family Name: "]) + GUIC.lineEdit_email.setText(myList[int(id)]["Email Address: "]) + GUIC.lineEdit_phone.setText(myList[int(id)]["Phone Number: "]) + + else: + GUIC.lineEditName.setText("") + GUIC.lineEdit_Family.setText("") + GUIC.lineEdit_email.setText("") + GUIC.lineEdit_phone.setText("") + + GUIC.lineEdit_id.setEnabled(False) + GUIC.pushButton_open.setEnabled(False) + GUIC.radioButton.clicked.connect(add) + GUIC.radioButton_2.clicked.connect(remove) + GUIC.radioButton_3.clicked.connect(change) + GUIC.pushButton.clicked.connect(saveClicked) + GUIC.pushButton_open.clicked.connect(open) + + appC.show() + appC.exec_() + + def ListContacts(self): + self.label_done.setText("") + global myGlist + appL = QtWidgets.QDialog() + GUIL = Ui_List() + GUIL.setupUi(appL) + + myList = myGlist + + def name_sort(): + myList = myGlist + sort = [i for i in sorted(myList, key=lambda item: item['Name: '])] + + printer = [] + + x = 0 + for i in sort: + temp = [] + for j in list(i.keys()): + temp.append(j + i[j]) + printer.append("ID: " + str(x) + ",\n" + ",\n".join(temp)) + x += 1 + + GUIL.textBrowser.setText("\n\n".join(printer)) + + def family_sost(): + myList = myGlist + sort = [i for i in sorted(myList, key=lambda item: item['Family Name: '])] + + printer = [] + + x = 0 + for i in sort: + temp = [] + for j in list(i.keys()): + temp.append(j + i[j]) + printer.append("ID: " + str(x) + ",\n" + ",\n".join(temp)) + x += 1 + + GUIL.textBrowser.setText("\n\n".join(printer)) + + name_sort() + GUIL.radioButton_name.clicked.connect(name_sort) + GUIL.radioButton_Family.clicked.connect(family_sost) + + appL.show() + appL.exec_() + + def Web(self): + self.label_done.setText("") + global myGlist + self.label_done.setText("") + appW = QtWidgets.QDialog() + GUIW = Ui_web() + GUIW.setupUi(appW) + + def email(email_address): + if email_address == "": + return True + else: + regex = '^[a-z0-9]+[\._]?[a-z0-9]+[@][a-z0-9]+[.][a-z0-9]{2,3}$' + + if re.search(regex, email_address): + return True + else: + return False + + def saveClicked(): + global myGlist + myList = myGlist + myList = [i for i in sorted(myList, key=lambda item: item['Name: '])] + + GUIW.label_errorshow.setText("") + + if email(GUIW.lineEdit_email.text().lower()) == True: + adder = {'Name: ': GUIW.lineEditName.text().capitalize(), + 'Family Name: ': GUIW.lineEdit_Family.text().capitalize(), + 'Email Address: ': GUIW.lineEdit_email.text(), + 'Phone Number: ': GUIW.lineEdit_phone.text() + } + + myList.append(adder) + GUIW.lineEditName.setText("") + GUIW.lineEdit_Family.setText("") + GUIW.lineEdit_email.setText("") + GUIW.lineEdit_phone.setText("") + + else: + GUIW.label_errorshow.setText("Email Address is invalid !") + + myList = [i for i in sorted(myList, key=lambda item: item['Name: '])] + myGlist = myList + + def scraping(): + url = "https://www.fakenamegenerator.com/" + + mylist = [] + + try: + HEADERS = ({'User-Agent': 'Mozilla/4.0 (X11; Windows x86_64)'}) + + page = requests.get(url, headers=HEADERS) + soup = BeautifulSoup(page.content, "html.parser") + + name = [] + info = [] + + for item in soup.select("dl.dl-horizontal"): + info.append(item.get_text()) + + for item in soup.select("div.address"): + name.append(item.get_text()) + + email = info[8][:info[8].index(" ")].replace("\nEmail Address\n", "") + phone = "+" + (info[4].replace("Country code", "") + " " + info[3].replace("Phone", "")).replace("\n", "") + + name = name[0][:name[0].index("\n\n")].replace("\n", "").split() + fname = " ".join((name[:2])) + family = name[-1] + + mylist = [fname, family, email, phone] + return mylist + + except: + return mylist + + def getData(): + QtWidgets.QApplication.processEvents() + myList = scraping() + if myList != []: + GUIW.label_errorshow.setText("") + GUIW.lineEditName.setText(myList[0]) + GUIW.lineEdit_Family.setText(myList[1]) + GUIW.lineEdit_email.setText(myList[2]) + GUIW.lineEdit_phone.setText(myList[3]) + else: + GUIW.label_errorshow.setText("Internet Connection Lost.") + + GUIW.pushButton.clicked.connect(saveClicked) + GUIW.pushButton_2.clicked.connect(getData) + + appW.show() + appW.exec_() + + def Text(self): + self.label_done.setText("") + appT = QtWidgets.QDialog() + GUIT = Ui_Texts() + GUIT.setupUi(appT) + + def NamePhone(): + text = GUIT.textEdit.toPlainText() + + phones = re.findall('[#]+([0-9]+)', text) + names = re.findall('[@]+([A-Za-z]+)', text) + + if names == []: + names = ["No names !"] + if phones == []: + phones = ["No phones !"] + + printer = "Names:\n" + "\n".join(names) + "\n\nPhones:\n" + "\n".join(phones) + + GUIT.textBrowser.setText(printer) + + GUIT.pushButton.clicked.connect(NamePhone) + + appT.show() + appT.exec_() + + def TXTfile(self): + global myGlist + file = open("MyContact.txt", "w") + file.write("\n".join([str(i) for i in myGlist])) + self.label_done.setText("Done") + file.close() + + def JSONfile(self): + global myGlist + file = open("MyContact.json", "w") + + dictionary = {} + for i in myGlist: + dictionary[str(myGlist.index(i))] = i + json.dump(dictionary, file) + file.close() + self.label_done.setText("Done") + + +app = QtWidgets.QApplication(sys.argv) +MainWindow = QtWidgets.QMainWindow() + +GUI = CMS() +GUI.setupUi(MainWindow) +GUI.Load() + +GUI.pushButton_change.clicked.connect(GUI.ChangeContacts) +GUI.pushButton_contacts.clicked.connect(GUI.ListContacts) +GUI.pushButton_txt.clicked.connect(GUI.TXTfile) +GUI.pushButton_json.clicked.connect(GUI.JSONfile) +GUI.pushButton_find.clicked.connect(GUI.Text) +GUI.pushButton_web.clicked.connect(GUI.Web) + +MainWindow.show() +sys.exit(app.exec_()) diff --git a/Other Students' Projects/10/MyContact.json b/Other Students' Projects/10/MyContact.json new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/Other Students' Projects/10/MyContact.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/Other Students' Projects/10/MyContact.txt b/Other Students' Projects/10/MyContact.txt new file mode 100644 index 0000000..ce43850 --- /dev/null +++ b/Other Students' Projects/10/MyContact.txt @@ -0,0 +1,4 @@ +{'Name: ': 'Alvin g.', 'Family Name: ': 'Fowler', 'Email Address: ': 'AlvinGFowler@armyspy.com', 'Phone Number: ': '+1 917-218-3972'} +{'Name: ': 'Geraldine r.', 'Family Name: ': 'Montgomery', 'Email Address: ': 'GeraldineRMontgomery@armyspy.com', 'Phone Number: ': '+1 323-449-7754'} +{'Name: ': 'Martin r.', 'Family Name: ': 'Rodriguez', 'Email Address: ': 'MartinRRodriguez@teleworm.us', 'Phone Number: ': '+1 630-833-6203'} +{'Name: ': 'Virginia p.', 'Family Name: ': 'Dennis', 'Email Address: ': 'VirginiaPDennis@dayrep.com', 'Phone Number: ': '+1 310-703-8583'} \ No newline at end of file diff --git a/Other Students' Projects/10/codekeeper.txt b/Other Students' Projects/10/codekeeper.txt new file mode 100644 index 0000000..c918e94 --- /dev/null +++ b/Other Students' Projects/10/codekeeper.txt @@ -0,0 +1,8 @@ +Pyuic5 -x -o .\List.py .\List.ui +Pyuic5 -x -o .\change.py .\change.ui +Pyuic5 -x -o .\myProzhe.py .\myProzhe.ui +Pyuic5 -x -o .\Text.py .\Text.ui +Pyuic5 -x -o .\Web.py .\Web.ui + + +pyinstaller .\CMS.py --name CMS --onefile --noconsole \ No newline at end of file diff --git a/Other Students' Projects/11/Main.ui b/Other Students' Projects/11/Main.ui new file mode 100644 index 0000000..957d512 --- /dev/null +++ b/Other Students' Projects/11/Main.ui @@ -0,0 +1,1213 @@ + + + MainWindow + + + + 0 + 0 + 797 + 600 + + + + MainWindow + + + background-color:#F0F0F0 + + + + + + 5 + 10 + 781 + 561 + + + + + 13 + 75 + true + + + + background-color:#DADADA + + + QTabWidget::West + + + 0 + + + + Edit + + + + + 160 + 110 + 551 + 41 + + + + + 75 + true + + + + background-color:#536872; color:white + + + + + + 160 + 170 + 551 + 41 + + + + + 75 + true + + + + background-color:#536872; color:white + + + + + + 40 + 170 + 101 + 41 + + + + + 10 + 75 + true + + + + background-color:#536872; color:white + + + Name: + + + Qt::AlignCenter + + + + + + 40 + 230 + 101 + 41 + + + + + 10 + 75 + true + + + + background-color:#536872; color:white + + + Family: + + + Qt::AlignCenter + + + + + + 160 + 230 + 551 + 41 + + + + + 75 + true + + + + background-color:#536872; color:white + + + + + + + + + 160 + 290 + 551 + 41 + + + + + 75 + true + + + + background-color:#536872; color:white + + + + + + 40 + 290 + 101 + 41 + + + + + 10 + 75 + true + + + + background-color:#536872; color:white + + + Phone: + + + Qt::AlignCenter + + + + + + 40 + 350 + 101 + 41 + + + + + 10 + 75 + true + + + + background-color:#536872; color:white + + + Email: + + + Qt::AlignCenter + + + + + + 160 + 350 + 551 + 41 + + + + + 75 + true + + + + background-color:#536872; color:white + + + + + + 40 + 410 + 101 + 41 + + + + + 10 + 75 + true + + + + background-color:#536872; color:white + + + Extra: + + + Qt::AlignCenter + + + + + + 160 + 410 + 551 + 41 + + + + + 75 + true + + + + background-color:#536872; color:white + + + + + + 40 + 110 + 101 + 41 + + + + + 10 + 75 + true + + + + background-color:#536872; color:white + + + Contact + + + Qt::AlignCenter + + + + + + 430 + 470 + 71 + 51 + + + + + 9 + 75 + true + + + + PointingHandCursor + + + background-color:#53689E; color:white + + + Change + + + + + + 340 + 470 + 71 + 51 + + + + + 9 + 75 + true + + + + PointingHandCursor + + + background-color:#53689E; color:white + + + Remove + + + + + + 250 + 470 + 71 + 51 + + + + + 9 + 75 + true + + + + PointingHandCursor + + + background-color:#53689E; color:white + + + Add + + + + + + 30 + 40 + 691 + 41 + + + + + 12 + 75 + true + + + + background-color:#536872; color:white + + + Add contact or change and remove by selecting from combobox. + + + Qt::AlignCenter + + + + + + 10 + 530 + 721 + 21 + + + + + 9 + 75 + true + + + + color:red + + + + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + List + + + + + 30 + 40 + 691 + 41 + + + + + 12 + 75 + true + + + + background-color:#536872; color:white + + + Contacts List + + + Qt::AlignCenter + + + + + + 110 + 110 + 611 + 421 + + + + 120 + + + false + + + true + + + + Name + + + + + Family + + + + + Phone + + + + + Email + + + + + Extra + + + + + + + 30 + 110 + 71 + 41 + + + + + 11 + 75 + true + + + + background-color:#536872; color:white + + + Sort By + + + Qt::AlignCenter + + + + + + 30 + 160 + 71 + 41 + + + + + 9 + 75 + true + + + + PointingHandCursor + + + background-color:#53689E; color:white + + + Name + + + + + + 30 + 210 + 71 + 41 + + + + + 9 + 75 + true + + + + PointingHandCursor + + + background-color:#53689E; color:white + + + Family + + + + + + Web + + + + + 40 + 350 + 101 + 41 + + + + + 10 + 75 + true + + + + background-color:#536872; color:white + + + Email: + + + Qt::AlignCenter + + + + + + 40 + 290 + 101 + 41 + + + + + 10 + 75 + true + + + + background-color:#536872; color:white + + + Phone: + + + Qt::AlignCenter + + + + + + 160 + 350 + 551 + 41 + + + + + 75 + true + + + + background-color:#536872; color:white + + + true + + + + + + 160 + 290 + 551 + 41 + + + + + 75 + true + + + + background-color:#536872; color:white + + + true + + + + + + 160 + 170 + 551 + 41 + + + + + 75 + true + + + + background-color:#536872; color:white + + + true + + + + + + 40 + 410 + 101 + 41 + + + + + 10 + 75 + true + + + + background-color:#536872; color:white + + + Extra: + + + Qt::AlignCenter + + + + + + 40 + 230 + 101 + 41 + + + + + 10 + 75 + true + + + + background-color:#536872; color:white + + + Family: + + + Qt::AlignCenter + + + + + + 160 + 230 + 551 + 41 + + + + + 75 + true + + + + background-color:#536872; color:white + + + + + + true + + + + + + 640 + 470 + 71 + 51 + + + + + 9 + 75 + true + + + + PointingHandCursor + + + background-color:#53689E; color:white + + + Connect + + + + + + 160 + 410 + 551 + 41 + + + + + 75 + true + + + + background-color:#536872; color:white + + + true + + + + + + 40 + 170 + 101 + 41 + + + + + 10 + 75 + true + + + + background-color:#536872; color:white + + + Name: + + + Qt::AlignCenter + + + + + + 30 + 40 + 691 + 41 + + + + + 12 + 75 + true + + + + background-color:#536872; color:white + + + Click Connect to get data and add it to database + + + Qt::AlignCenter + + + + + + 40 + 110 + 101 + 41 + + + + + 10 + 75 + true + + + + background-color:#536872; color:white + + + Website: + + + Qt::AlignCenter + + + + + + 160 + 110 + 551 + 41 + + + + + 10 + 75 + true + + + + background-color:#536872; color:#F4CA16 + + + https://www.fakenamegenerator.com + + + Qt::AlignCenter + + + true + + + + + + 10 + 530 + 721 + 21 + + + + + 9 + 75 + true + + + + color:red + + + + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + Find + + + + + 30 + 40 + 691 + 41 + + + + + 12 + 75 + true + + + + background-color:#536872; color:white + + + Contact Finder + + + Qt::AlignCenter + + + + + + 41 + 149 + 279 + 391 + + + + + 12 + + + + QFrame::NoFrame + + + false + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:12pt; font-weight:400; font-style:normal;"> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p></body></html> + + + Type ... + + + + + + 340 + 300 + 71 + 51 + + + + + 15 + 75 + true + + + + PointingHandCursor + + + background-color:#53689E; color:white + + + Find + + + + + + 430 + 110 + 281 + 201 + + + + + + + 430 + 330 + 281 + 211 + + + + + + + 40 + 110 + 71 + 41 + + + + + 12 + 75 + true + + + + background-color:#536872; color:white + + + Text: + + + Qt::AlignCenter + + + + + + 430 + 110 + 71 + 41 + + + + + 12 + 75 + true + + + + background-color:#536872; color:white + + + Phone: + + + Qt::AlignCenter + + + + + + 430 + 330 + 71 + 41 + + + + + 12 + 75 + true + + + + background-color:#536872; color:white + + + Name: + + + Qt::AlignCenter + + + + + true + + + + 40 + 110 + 281 + 431 + + + + + 12 + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:12pt; font-weight:400; font-style:normal;"> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p></body></html> + + + textBrowser_4 + label_16 + textBrowser + pushButton_Find + textBrowser_2 + textBrowser_3 + label_18 + label_19 + label_20 + + + + + + + + diff --git a/Other Students' Projects/2/.idea/.gitignore b/Other Students' Projects/2/.idea/.gitignore new file mode 100644 index 0000000..f011bbc --- /dev/null +++ b/Other Students' Projects/2/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Datasource local storage ignored files +/../../../../../../:\University\2nd Term\Others Homeworks\Kowsar\.idea/dataSources/ +/dataSources.local.xml +# Editor-based HTTP Client requests +/httpRequests/ diff --git a/Other Students' Projects/2/.idea/Kowsar.iml b/Other Students' Projects/2/.idea/Kowsar.iml new file mode 100644 index 0000000..d0876a7 --- /dev/null +++ b/Other Students' Projects/2/.idea/Kowsar.iml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/Other Students' Projects/2/.idea/inspectionProfiles/Project_Default.xml b/Other Students' Projects/2/.idea/inspectionProfiles/Project_Default.xml new file mode 100644 index 0000000..6eeafb9 --- /dev/null +++ b/Other Students' Projects/2/.idea/inspectionProfiles/Project_Default.xml @@ -0,0 +1,24 @@ + + + + \ No newline at end of file diff --git a/Other Students' Projects/2/.idea/inspectionProfiles/profiles_settings.xml b/Other Students' Projects/2/.idea/inspectionProfiles/profiles_settings.xml new file mode 100644 index 0000000..105ce2d --- /dev/null +++ b/Other Students' Projects/2/.idea/inspectionProfiles/profiles_settings.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/Other Students' Projects/2/.idea/misc.xml b/Other Students' Projects/2/.idea/misc.xml new file mode 100644 index 0000000..a2e120d --- /dev/null +++ b/Other Students' Projects/2/.idea/misc.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/Other Students' Projects/2/.idea/modules.xml b/Other Students' Projects/2/.idea/modules.xml new file mode 100644 index 0000000..ad4e133 --- /dev/null +++ b/Other Students' Projects/2/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/Other Students' Projects/2/Contacts.cms b/Other Students' Projects/2/Contacts.cms new file mode 100644 index 0000000..482c0e3 Binary files /dev/null and b/Other Students' Projects/2/Contacts.cms differ diff --git a/Other Students' Projects/2/Contacts.json b/Other Students' Projects/2/Contacts.json new file mode 100644 index 0000000..0637a08 --- /dev/null +++ b/Other Students' Projects/2/Contacts.json @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/Other Students' Projects/2/Contacts.txt b/Other Students' Projects/2/Contacts.txt new file mode 100644 index 0000000..0637a08 --- /dev/null +++ b/Other Students' Projects/2/Contacts.txt @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/Other Students' Projects/2/Program.py b/Other Students' Projects/2/Program.py new file mode 100644 index 0000000..86865bd --- /dev/null +++ b/Other Students' Projects/2/Program.py @@ -0,0 +1,862 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file '.\Program.ui' +# +# Created by: PyQt5 UI code generator 5.15.4 +# +# WARNING: Any manual changes made to this file will be lost when pyuic5 is +# run again. Do not edit this file unless you know what you are doing. + + +from PyQt5 import QtCore, QtGui, QtWidgets + + +class Ui_MainWin(object): + def setupUi(self, MainWin): + MainWin.setObjectName("MainWin") + MainWin.resize(789, 639) + MainWin.setStyleSheet("background-color:#FFD663") + self.centralwidget = QtWidgets.QWidget(MainWin) + self.centralwidget.setObjectName("centralwidget") + self.tabWidget = QtWidgets.QTabWidget(self.centralwidget) + self.tabWidget.setGeometry(QtCore.QRect(0, 0, 781, 551)) + font = QtGui.QFont() + font.setPointSize(10) + self.tabWidget.setFont(font) + self.tabWidget.setTabShape(QtWidgets.QTabWidget.Rounded) + self.tabWidget.setDocumentMode(True) + self.tabWidget.setTabBarAutoHide(False) + self.tabWidget.setObjectName("tabWidget") + self.tab = QtWidgets.QWidget() + self.tab.setObjectName("tab") + self.label_name = QtWidgets.QLabel(self.tab) + self.label_name.setGeometry(QtCore.QRect(30, 190, 111, 41)) + font = QtGui.QFont() + font.setPointSize(9) + font.setBold(True) + font.setWeight(75) + self.label_name.setFont(font) + self.label_name.setStyleSheet("background-color:#3A96DD;color:white;border-radius:0.5em") + self.label_name.setAlignment(QtCore.Qt.AlignCenter) + self.label_name.setObjectName("label_name") + self.label_name2 = QtWidgets.QLabel(self.tab) + self.label_name2.setGeometry(QtCore.QRect(30, 260, 111, 41)) + font = QtGui.QFont() + font.setPointSize(9) + font.setBold(True) + font.setWeight(75) + self.label_name2.setFont(font) + self.label_name2.setStyleSheet("background-color:#3A96DD;color:white;border-radius:0.5em") + self.label_name2.setAlignment(QtCore.Qt.AlignCenter) + self.label_name2.setObjectName("label_name2") + self.lineEdit_name = QtWidgets.QLineEdit(self.tab) + self.lineEdit_name.setGeometry(QtCore.QRect(150, 190, 591, 41)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.lineEdit_name.setFont(font) + self.lineEdit_name.setStyleSheet("background-color:#3A96DD;color:white;border-radius:0.5em") + self.lineEdit_name.setText("") + self.lineEdit_name.setAlignment(QtCore.Qt.AlignCenter) + self.lineEdit_name.setClearButtonEnabled(True) + self.lineEdit_name.setObjectName("lineEdit_name") + self.label_email = QtWidgets.QLabel(self.tab) + self.label_email.setGeometry(QtCore.QRect(30, 330, 111, 41)) + font = QtGui.QFont() + font.setPointSize(9) + font.setBold(True) + font.setWeight(75) + self.label_email.setFont(font) + self.label_email.setStyleSheet("background-color:#3A96DD;color:white;border-radius:0.5em") + self.label_email.setAlignment(QtCore.Qt.AlignCenter) + self.label_email.setObjectName("label_email") + self.label_telephone = QtWidgets.QLabel(self.tab) + self.label_telephone.setGeometry(QtCore.QRect(30, 400, 111, 41)) + font = QtGui.QFont() + font.setPointSize(9) + font.setBold(True) + font.setWeight(75) + self.label_telephone.setFont(font) + self.label_telephone.setStyleSheet("background-color:#3A96DD;color:white;border-radius:0.5em") + self.label_telephone.setAlignment(QtCore.Qt.AlignCenter) + self.label_telephone.setObjectName("label_telephone") + self.pushButton_add = QtWidgets.QPushButton(self.tab) + self.pushButton_add.setGeometry(QtCore.QRect(640, 460, 101, 51)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.pushButton_add.setFont(font) + self.pushButton_add.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) + self.pushButton_add.setStyleSheet("background-color:#353E70;color:white;border-radius:0.5em") + self.pushButton_add.setObjectName("pushButton_add") + self.lineEdit_name2 = QtWidgets.QLineEdit(self.tab) + self.lineEdit_name2.setGeometry(QtCore.QRect(150, 260, 591, 41)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.lineEdit_name2.setFont(font) + self.lineEdit_name2.setStyleSheet("background-color:#3A96DD;color:white;border-radius:0.5em") + self.lineEdit_name2.setText("") + self.lineEdit_name2.setAlignment(QtCore.Qt.AlignCenter) + self.lineEdit_name2.setClearButtonEnabled(True) + self.lineEdit_name2.setObjectName("lineEdit_name2") + self.lineEdit_email = QtWidgets.QLineEdit(self.tab) + self.lineEdit_email.setGeometry(QtCore.QRect(150, 330, 591, 41)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.lineEdit_email.setFont(font) + self.lineEdit_email.setStyleSheet("background-color:#3A96DD;color:white;border-radius:0.5em") + self.lineEdit_email.setText("") + self.lineEdit_email.setAlignment(QtCore.Qt.AlignCenter) + self.lineEdit_email.setClearButtonEnabled(True) + self.lineEdit_email.setObjectName("lineEdit_email") + self.lineEdit_telephone = QtWidgets.QLineEdit(self.tab) + self.lineEdit_telephone.setGeometry(QtCore.QRect(150, 400, 591, 41)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.lineEdit_telephone.setFont(font) + self.lineEdit_telephone.setStyleSheet("background-color:#3A96DD;color:white;border-radius:0.5em") + self.lineEdit_telephone.setText("") + self.lineEdit_telephone.setAlignment(QtCore.Qt.AlignCenter) + self.lineEdit_telephone.setClearButtonEnabled(True) + self.lineEdit_telephone.setObjectName("lineEdit_telephone") + self.pushButton_change = QtWidgets.QPushButton(self.tab) + self.pushButton_change.setGeometry(QtCore.QRect(530, 460, 101, 51)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.pushButton_change.setFont(font) + self.pushButton_change.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) + self.pushButton_change.setStyleSheet("background-color:#353E70;color:white;border-radius:0.5em") + self.pushButton_change.setObjectName("pushButton_change") + self.pushButton_remove = QtWidgets.QPushButton(self.tab) + self.pushButton_remove.setGeometry(QtCore.QRect(420, 460, 101, 51)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.pushButton_remove.setFont(font) + self.pushButton_remove.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) + self.pushButton_remove.setStyleSheet("background-color:#353E70;color:white;border-radius:0.5em") + self.pushButton_remove.setObjectName("pushButton_remove") + self.comboBox_select = QtWidgets.QComboBox(self.tab) + self.comboBox_select.setGeometry(QtCore.QRect(150, 120, 591, 41)) + font = QtGui.QFont() + font.setBold(True) + font.setWeight(75) + self.comboBox_select.setFont(font) + self.comboBox_select.setStyleSheet("background-color:#3A96DD;color:white;border-radius:0.5em") + self.comboBox_select.setObjectName("comboBox_select") + self.label_select = QtWidgets.QLabel(self.tab) + self.label_select.setGeometry(QtCore.QRect(30, 120, 111, 41)) + font = QtGui.QFont() + font.setPointSize(9) + font.setBold(True) + font.setWeight(75) + self.label_select.setFont(font) + self.label_select.setStyleSheet("background-color:#3A96DD;color:white;border-radius:0.5em") + self.label_select.setAlignment(QtCore.Qt.AlignCenter) + self.label_select.setObjectName("label_select") + self.label_tab1 = QtWidgets.QLabel(self.tab) + self.label_tab1.setGeometry(QtCore.QRect(20, 30, 731, 61)) + font = QtGui.QFont() + font.setPointSize(12) + font.setBold(True) + font.setWeight(75) + self.label_tab1.setFont(font) + self.label_tab1.setStyleSheet("background-color:#559B7B;color:white;border-radius:1em") + self.label_tab1.setAlignment(QtCore.Qt.AlignCenter) + self.label_tab1.setObjectName("label_tab1") + self.tabWidget.addTab(self.tab, "") + self.tab_2 = QtWidgets.QWidget() + self.tab_2.setObjectName("tab_2") + self.label_tab2 = QtWidgets.QLabel(self.tab_2) + self.label_tab2.setGeometry(QtCore.QRect(30, 20, 721, 41)) + font = QtGui.QFont() + font.setPointSize(13) + font.setBold(True) + font.setWeight(75) + self.label_tab2.setFont(font) + self.label_tab2.setStyleSheet("background-color:#559B7B;color:white;border-radius:1em") + self.label_tab2.setAlignment(QtCore.Qt.AlignCenter) + self.label_tab2.setObjectName("label_tab2") + self.pushButton_sort_name2 = QtWidgets.QPushButton(self.tab_2) + self.pushButton_sort_name2.setGeometry(QtCore.QRect(200, 80, 71, 41)) + font = QtGui.QFont() + font.setPointSize(7) + font.setBold(True) + font.setWeight(75) + self.pushButton_sort_name2.setFont(font) + self.pushButton_sort_name2.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) + self.pushButton_sort_name2.setStyleSheet("background-color:#353E70;color:white;border-radius:0.5em") + self.pushButton_sort_name2.setObjectName("pushButton_sort_name2") + self.pushButton_sort_name = QtWidgets.QPushButton(self.tab_2) + self.pushButton_sort_name.setGeometry(QtCore.QRect(120, 80, 71, 41)) + font = QtGui.QFont() + font.setPointSize(7) + font.setBold(True) + font.setWeight(75) + self.pushButton_sort_name.setFont(font) + self.pushButton_sort_name.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) + self.pushButton_sort_name.setStyleSheet("background-color:#353E70;color:white;border-radius:0.5em") + self.pushButton_sort_name.setObjectName("pushButton_sort_name") + self.label_sort = QtWidgets.QLabel(self.tab_2) + self.label_sort.setGeometry(QtCore.QRect(40, 80, 71, 41)) + font = QtGui.QFont() + font.setPointSize(9) + font.setBold(True) + font.setWeight(75) + self.label_sort.setFont(font) + self.label_sort.setStyleSheet("background-color:#3A96DD;color:white;border-radius:0.5em") + self.label_sort.setAlignment(QtCore.Qt.AlignCenter) + self.label_sort.setObjectName("label_sort") + self.tableWidget_sort = QtWidgets.QTableWidget(self.tab_2) + self.tableWidget_sort.setGeometry(QtCore.QRect(40, 130, 701, 381)) + self.tableWidget_sort.setObjectName("tableWidget_sort") + self.tableWidget_sort.setColumnCount(4) + self.tableWidget_sort.setRowCount(0) + item = QtWidgets.QTableWidgetItem() + self.tableWidget_sort.setHorizontalHeaderItem(0, item) + item = QtWidgets.QTableWidgetItem() + self.tableWidget_sort.setHorizontalHeaderItem(1, item) + item = QtWidgets.QTableWidgetItem() + self.tableWidget_sort.setHorizontalHeaderItem(2, item) + item = QtWidgets.QTableWidgetItem() + self.tableWidget_sort.setHorizontalHeaderItem(3, item) + self.tableWidget_sort.horizontalHeader().setDefaultSectionSize(165) + self.tableWidget_sort.horizontalHeader().setStretchLastSection(True) + self.tabWidget.addTab(self.tab_2, "") + self.tab_3 = QtWidgets.QWidget() + self.tab_3.setObjectName("tab_3") + self.tableWidget_search = QtWidgets.QTableWidget(self.tab_3) + self.tableWidget_search.setGeometry(QtCore.QRect(40, 140, 701, 371)) + self.tableWidget_search.setObjectName("tableWidget_search") + self.tableWidget_search.setColumnCount(4) + self.tableWidget_search.setRowCount(0) + item = QtWidgets.QTableWidgetItem() + self.tableWidget_search.setHorizontalHeaderItem(0, item) + item = QtWidgets.QTableWidgetItem() + self.tableWidget_search.setHorizontalHeaderItem(1, item) + item = QtWidgets.QTableWidgetItem() + self.tableWidget_search.setHorizontalHeaderItem(2, item) + item = QtWidgets.QTableWidgetItem() + self.tableWidget_search.setHorizontalHeaderItem(3, item) + self.tableWidget_search.horizontalHeader().setDefaultSectionSize(165) + self.tableWidget_search.horizontalHeader().setStretchLastSection(True) + self.label_tab3 = QtWidgets.QLabel(self.tab_3) + self.label_tab3.setGeometry(QtCore.QRect(30, 20, 721, 41)) + font = QtGui.QFont() + font.setPointSize(13) + font.setBold(True) + font.setWeight(75) + self.label_tab3.setFont(font) + self.label_tab3.setStyleSheet("background-color:#559B7B;color:white;border-radius:1em") + self.label_tab3.setAlignment(QtCore.Qt.AlignCenter) + self.label_tab3.setObjectName("label_tab3") + self.lineEdit_search = QtWidgets.QLineEdit(self.tab_3) + self.lineEdit_search.setGeometry(QtCore.QRect(40, 80, 541, 41)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.lineEdit_search.setFont(font) + self.lineEdit_search.setStyleSheet("background-color:#3A96DD;color:white;border-radius:0.5em") + self.lineEdit_search.setText("") + self.lineEdit_search.setAlignment(QtCore.Qt.AlignCenter) + self.lineEdit_search.setClearButtonEnabled(True) + self.lineEdit_search.setObjectName("lineEdit_search") + self.comboBox_search = QtWidgets.QComboBox(self.tab_3) + self.comboBox_search.setGeometry(QtCore.QRect(590, 80, 91, 41)) + font = QtGui.QFont() + font.setBold(True) + font.setWeight(75) + self.comboBox_search.setFont(font) + self.comboBox_search.setStyleSheet("background-color:#3A96DD;color:white;border-radius:0.5em") + self.comboBox_search.setSizeAdjustPolicy(QtWidgets.QComboBox.AdjustToContentsOnFirstShow) + self.comboBox_search.setMinimumContentsLength(10) + self.comboBox_search.setObjectName("comboBox_search") + self.comboBox_search.addItem("") + self.comboBox_search.addItem("") + self.comboBox_search.addItem("") + self.comboBox_search.addItem("") + self.pushButton_search = QtWidgets.QPushButton(self.tab_3) + self.pushButton_search.setGeometry(QtCore.QRect(690, 80, 51, 41)) + font = QtGui.QFont() + font.setPointSize(15) + font.setBold(True) + font.setWeight(75) + self.pushButton_search.setFont(font) + self.pushButton_search.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) + self.pushButton_search.setStyleSheet("background-color:#353E70;color:white;border-radius:0.5em") + self.pushButton_search.setObjectName("pushButton_search") + self.tabWidget.addTab(self.tab_3, "") + self.tab_4 = QtWidgets.QWidget() + self.tab_4.setObjectName("tab_4") + self.lineEdit_Wname = QtWidgets.QLineEdit(self.tab_4) + self.lineEdit_Wname.setGeometry(QtCore.QRect(150, 190, 591, 41)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.lineEdit_Wname.setFont(font) + self.lineEdit_Wname.setStyleSheet("background-color:#3A96DD;color:white;border-radius:0.5em") + self.lineEdit_Wname.setText("") + self.lineEdit_Wname.setAlignment(QtCore.Qt.AlignCenter) + self.lineEdit_Wname.setClearButtonEnabled(True) + self.lineEdit_Wname.setObjectName("lineEdit_Wname") + self.label_Wname = QtWidgets.QLabel(self.tab_4) + self.label_Wname.setGeometry(QtCore.QRect(30, 190, 111, 41)) + font = QtGui.QFont() + font.setPointSize(9) + font.setBold(True) + font.setWeight(75) + self.label_Wname.setFont(font) + self.label_Wname.setStyleSheet("background-color:#3A96DD;color:white;border-radius:0.5em") + self.label_Wname.setAlignment(QtCore.Qt.AlignCenter) + self.label_Wname.setObjectName("label_Wname") + self.label_Wname2 = QtWidgets.QLabel(self.tab_4) + self.label_Wname2.setGeometry(QtCore.QRect(30, 260, 111, 41)) + font = QtGui.QFont() + font.setPointSize(9) + font.setBold(True) + font.setWeight(75) + self.label_Wname2.setFont(font) + self.label_Wname2.setStyleSheet("background-color:#3A96DD;color:white;border-radius:0.5em") + self.label_Wname2.setAlignment(QtCore.Qt.AlignCenter) + self.label_Wname2.setObjectName("label_Wname2") + self.lineEdit_Wname2 = QtWidgets.QLineEdit(self.tab_4) + self.lineEdit_Wname2.setGeometry(QtCore.QRect(150, 260, 591, 41)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.lineEdit_Wname2.setFont(font) + self.lineEdit_Wname2.setStyleSheet("background-color:#3A96DD;color:white;border-radius:0.5em") + self.lineEdit_Wname2.setText("") + self.lineEdit_Wname2.setAlignment(QtCore.Qt.AlignCenter) + self.lineEdit_Wname2.setClearButtonEnabled(True) + self.lineEdit_Wname2.setObjectName("lineEdit_Wname2") + self.label_Wemail = QtWidgets.QLabel(self.tab_4) + self.label_Wemail.setGeometry(QtCore.QRect(30, 330, 111, 41)) + font = QtGui.QFont() + font.setPointSize(9) + font.setBold(True) + font.setWeight(75) + self.label_Wemail.setFont(font) + self.label_Wemail.setStyleSheet("background-color:#3A96DD;color:white;border-radius:0.5em") + self.label_Wemail.setAlignment(QtCore.Qt.AlignCenter) + self.label_Wemail.setObjectName("label_Wemail") + self.lineEdit_Wemail = QtWidgets.QLineEdit(self.tab_4) + self.lineEdit_Wemail.setGeometry(QtCore.QRect(150, 330, 591, 41)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.lineEdit_Wemail.setFont(font) + self.lineEdit_Wemail.setStyleSheet("background-color:#3A96DD;color:white;border-radius:0.5em") + self.lineEdit_Wemail.setText("") + self.lineEdit_Wemail.setAlignment(QtCore.Qt.AlignCenter) + self.lineEdit_Wemail.setClearButtonEnabled(True) + self.lineEdit_Wemail.setObjectName("lineEdit_Wemail") + self.label_Wtelephone = QtWidgets.QLabel(self.tab_4) + self.label_Wtelephone.setGeometry(QtCore.QRect(30, 400, 111, 41)) + font = QtGui.QFont() + font.setPointSize(9) + font.setBold(True) + font.setWeight(75) + self.label_Wtelephone.setFont(font) + self.label_Wtelephone.setStyleSheet("background-color:#3A96DD;color:white;border-radius:0.5em") + self.label_Wtelephone.setAlignment(QtCore.Qt.AlignCenter) + self.label_Wtelephone.setObjectName("label_Wtelephone") + self.lineEdit_Wtelephone = QtWidgets.QLineEdit(self.tab_4) + self.lineEdit_Wtelephone.setGeometry(QtCore.QRect(150, 400, 591, 41)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.lineEdit_Wtelephone.setFont(font) + self.lineEdit_Wtelephone.setStyleSheet("background-color:#3A96DD;color:white;border-radius:0.5em") + self.lineEdit_Wtelephone.setText("") + self.lineEdit_Wtelephone.setAlignment(QtCore.Qt.AlignCenter) + self.lineEdit_Wtelephone.setClearButtonEnabled(True) + self.lineEdit_Wtelephone.setObjectName("lineEdit_Wtelephone") + self.pushButton_Wrecivie = QtWidgets.QPushButton(self.tab_4) + self.pushButton_Wrecivie.setGeometry(QtCore.QRect(530, 460, 101, 51)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.pushButton_Wrecivie.setFont(font) + self.pushButton_Wrecivie.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) + self.pushButton_Wrecivie.setStyleSheet("background-color:#353E70;color:white;border-radius:0.5em") + self.pushButton_Wrecivie.setObjectName("pushButton_Wrecivie") + self.pushButton_Wadd = QtWidgets.QPushButton(self.tab_4) + self.pushButton_Wadd.setGeometry(QtCore.QRect(640, 460, 101, 51)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.pushButton_Wadd.setFont(font) + self.pushButton_Wadd.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) + self.pushButton_Wadd.setStyleSheet("background-color:#353E70;color:white;border-radius:0.5em") + self.pushButton_Wadd.setObjectName("pushButton_Wadd") + self.label_tab4 = QtWidgets.QLabel(self.tab_4) + self.label_tab4.setGeometry(QtCore.QRect(20, 30, 731, 61)) + font = QtGui.QFont() + font.setPointSize(13) + font.setBold(True) + font.setWeight(75) + self.label_tab4.setFont(font) + self.label_tab4.setStyleSheet("background-color:#559B7B;color:white;border-radius:1em") + self.label_tab4.setAlignment(QtCore.Qt.AlignCenter) + self.label_tab4.setObjectName("label_tab4") + self.label_web = QtWidgets.QLabel(self.tab_4) + self.label_web.setGeometry(QtCore.QRect(30, 120, 111, 41)) + font = QtGui.QFont() + font.setPointSize(9) + font.setBold(True) + font.setWeight(75) + self.label_web.setFont(font) + self.label_web.setStyleSheet("background-color:#977A55;color:white;border-radius:0.5em") + self.label_web.setAlignment(QtCore.Qt.AlignCenter) + self.label_web.setObjectName("label_web") + self.lineEdit_website = QtWidgets.QLineEdit(self.tab_4) + self.lineEdit_website.setGeometry(QtCore.QRect(150, 120, 591, 41)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.lineEdit_website.setFont(font) + self.lineEdit_website.setStyleSheet("background-color:#977A55;color:white;border-radius:0.5em") + self.lineEdit_website.setAlignment(QtCore.Qt.AlignCenter) + self.lineEdit_website.setReadOnly(True) + self.lineEdit_website.setPlaceholderText("") + self.lineEdit_website.setObjectName("lineEdit_website") + self.tabWidget.addTab(self.tab_4, "") + self.tab_5 = QtWidgets.QWidget() + self.tab_5.setObjectName("tab_5") + self.label_tab5 = QtWidgets.QLabel(self.tab_5) + self.label_tab5.setGeometry(QtCore.QRect(20, 30, 731, 61)) + font = QtGui.QFont() + font.setPointSize(13) + font.setBold(True) + font.setWeight(75) + self.label_tab5.setFont(font) + self.label_tab5.setStyleSheet("background-color:#559B7B;color:white;border-radius:1em") + self.label_tab5.setAlignment(QtCore.Qt.AlignCenter) + self.label_tab5.setObjectName("label_tab5") + self.textEdit_get = QtWidgets.QTextEdit(self.tab_5) + self.textEdit_get.setGeometry(QtCore.QRect(40, 170, 691, 141)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.textEdit_get.setFont(font) + self.textEdit_get.setStyleSheet("background-color:#3A96DD;color:white;border-radius:0.5em") + self.textEdit_get.setFrameShape(QtWidgets.QFrame.NoFrame) + self.textEdit_get.setLineWidth(1) + self.textEdit_get.setObjectName("textEdit_get") + self.textEdit_give = QtWidgets.QTextEdit(self.tab_5) + self.textEdit_give.setGeometry(QtCore.QRect(40, 340, 691, 161)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.textEdit_give.setFont(font) + self.textEdit_give.setStyleSheet("background-color:#3A96DD;color:white;border-radius:0.5em") + self.textEdit_give.setFrameShape(QtWidgets.QFrame.NoFrame) + self.textEdit_give.setLineWidth(1) + self.textEdit_give.setReadOnly(True) + self.textEdit_give.setObjectName("textEdit_give") + self.pushButton_identify = QtWidgets.QPushButton(self.tab_5) + self.pushButton_identify.setGeometry(QtCore.QRect(630, 110, 101, 51)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.pushButton_identify.setFont(font) + self.pushButton_identify.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) + self.pushButton_identify.setStyleSheet("background-color:#353E70;color:white;border-radius:0.5em") + self.pushButton_identify.setObjectName("pushButton_identify") + self.tabWidget.addTab(self.tab_5, "") + self.tab_6 = QtWidgets.QWidget() + self.tab_6.setObjectName("tab_6") + self.label_tab1_2 = QtWidgets.QLabel(self.tab_6) + self.label_tab1_2.setGeometry(QtCore.QRect(20, 40, 731, 61)) + font = QtGui.QFont() + font.setPointSize(12) + font.setBold(True) + font.setWeight(75) + self.label_tab1_2.setFont(font) + self.label_tab1_2.setStyleSheet("background-color:#559B7B;color:white;border-radius:1em") + self.label_tab1_2.setAlignment(QtCore.Qt.AlignCenter) + self.label_tab1_2.setObjectName("label_tab1_2") + self.label_Wname_2 = QtWidgets.QLabel(self.tab_6) + self.label_Wname_2.setGeometry(QtCore.QRect(30, 140, 111, 41)) + font = QtGui.QFont() + font.setPointSize(9) + font.setBold(True) + font.setWeight(75) + self.label_Wname_2.setFont(font) + self.label_Wname_2.setStyleSheet("background-color:#3A96DD;color:white;border-radius:0.5em") + self.label_Wname_2.setAlignment(QtCore.Qt.AlignCenter) + self.label_Wname_2.setObjectName("label_Wname_2") + self.lineEdit_path = QtWidgets.QLineEdit(self.tab_6) + self.lineEdit_path.setGeometry(QtCore.QRect(150, 140, 591, 41)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.lineEdit_path.setFont(font) + self.lineEdit_path.setStyleSheet("background-color:#3A96DD;color:white;border-radius:0.5em") + self.lineEdit_path.setText("") + self.lineEdit_path.setAlignment(QtCore.Qt.AlignCenter) + self.lineEdit_path.setClearButtonEnabled(True) + self.lineEdit_path.setObjectName("lineEdit_path") + self.label_Wname_3 = QtWidgets.QLabel(self.tab_6) + self.label_Wname_3.setGeometry(QtCore.QRect(30, 210, 111, 41)) + font = QtGui.QFont() + font.setPointSize(9) + font.setBold(True) + font.setWeight(75) + self.label_Wname_3.setFont(font) + self.label_Wname_3.setStyleSheet("background-color:#3A96DD;color:white;border-radius:0.5em") + self.label_Wname_3.setAlignment(QtCore.Qt.AlignCenter) + self.label_Wname_3.setObjectName("label_Wname_3") + self.pushButton_txt = QtWidgets.QPushButton(self.tab_6) + self.pushButton_txt.setGeometry(QtCore.QRect(150, 210, 51, 41)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.pushButton_txt.setFont(font) + self.pushButton_txt.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) + self.pushButton_txt.setStyleSheet("background-color:#353E70;color:white;border-radius:0.5em") + self.pushButton_txt.setObjectName("pushButton_txt") + self.pushButton_cms = QtWidgets.QPushButton(self.tab_6) + self.pushButton_cms.setGeometry(QtCore.QRect(210, 210, 51, 41)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.pushButton_cms.setFont(font) + self.pushButton_cms.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) + self.pushButton_cms.setStyleSheet("background-color:#353E70;color:white;border-radius:0.5em") + self.pushButton_cms.setObjectName("pushButton_cms") + self.pushButton_json = QtWidgets.QPushButton(self.tab_6) + self.pushButton_json.setGeometry(QtCore.QRect(270, 210, 51, 41)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.pushButton_json.setFont(font) + self.pushButton_json.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) + self.pushButton_json.setStyleSheet("background-color:#353E70;color:white;border-radius:0.5em") + self.pushButton_json.setObjectName("pushButton_json") + self.pushButton_xml = QtWidgets.QPushButton(self.tab_6) + self.pushButton_xml.setGeometry(QtCore.QRect(330, 210, 51, 41)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.pushButton_xml.setFont(font) + self.pushButton_xml.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) + self.pushButton_xml.setStyleSheet("background-color:#353E70;color:white;border-radius:0.5em") + self.pushButton_xml.setObjectName("pushButton_xml") + self.tabWidget.addTab(self.tab_6, "") + self.lineEdit_error = QtWidgets.QLineEdit(self.centralwidget) + self.lineEdit_error.setGeometry(QtCore.QRect(10, 556, 761, 25)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.lineEdit_error.setFont(font) + self.lineEdit_error.setStyleSheet("background-color:#FA6E51;color:white;border-radius:0.5em") + self.lineEdit_error.setText("") + self.lineEdit_error.setAlignment(QtCore.Qt.AlignCenter) + self.lineEdit_error.setReadOnly(True) + self.lineEdit_error.setPlaceholderText("") + self.lineEdit_error.setClearButtonEnabled(False) + self.lineEdit_error.setObjectName("lineEdit_error") + MainWin.setCentralWidget(self.centralwidget) + self.menubar = QtWidgets.QMenuBar(MainWin) + self.menubar.setGeometry(QtCore.QRect(0, 0, 789, 29)) + font = QtGui.QFont() + font.setPointSize(11) + self.menubar.setFont(font) + self.menubar.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) + self.menubar.setStyleSheet("background-color:#FCFCFC;") + self.menubar.setDefaultUp(False) + self.menubar.setObjectName("menubar") + self.menuFile = QtWidgets.QMenu(self.menubar) + font = QtGui.QFont() + font.setPointSize(10) + self.menuFile.setFont(font) + self.menuFile.setObjectName("menuFile") + self.menuContacts = QtWidgets.QMenu(self.menubar) + font = QtGui.QFont() + font.setPointSize(10) + self.menuContacts.setFont(font) + self.menuContacts.setTearOffEnabled(False) + self.menuContacts.setObjectName("menuContacts") + self.menuAdd = QtWidgets.QMenu(self.menuContacts) + self.menuAdd.setObjectName("menuAdd") + self.menuShow = QtWidgets.QMenu(self.menuContacts) + self.menuShow.setObjectName("menuShow") + self.menuSearch = QtWidgets.QMenu(self.menubar) + self.menuSearch.setObjectName("menuSearch") + MainWin.setMenuBar(self.menubar) + self.statusbar = QtWidgets.QStatusBar(MainWin) + self.statusbar.setObjectName("statusbar") + MainWin.setStatusBar(self.statusbar) + self.actionOpen_Database = QtWidgets.QAction(MainWin) + font = QtGui.QFont() + font.setPointSize(11) + font.setBold(False) + font.setWeight(50) + self.actionOpen_Database.setFont(font) + self.actionOpen_Database.setIconVisibleInMenu(True) + self.actionOpen_Database.setShortcutVisibleInContextMenu(True) + self.actionOpen_Database.setPriority(QtWidgets.QAction.HighPriority) + self.actionOpen_Database.setObjectName("actionOpen_Database") + self.actionSave_Database = QtWidgets.QAction(MainWin) + self.actionSave_Database.setObjectName("actionSave_Database") + self.actionExit = QtWidgets.QAction(MainWin) + self.actionExit.setObjectName("actionExit") + self.actionOpen_Recents = QtWidgets.QAction(MainWin) + self.actionOpen_Recents.setObjectName("actionOpen_Recents") + self.actionWeb_Scraping = QtWidgets.QAction(MainWin) + self.actionWeb_Scraping.setObjectName("actionWeb_Scraping") + self.actionRemove = QtWidgets.QAction(MainWin) + self.actionRemove.setObjectName("actionRemove") + self.actionChange = QtWidgets.QAction(MainWin) + self.actionChange.setObjectName("actionChange") + self.actionDelete_All = QtWidgets.QAction(MainWin) + self.actionDelete_All.setObjectName("actionDelete_All") + self.actionBy_Name = QtWidgets.QAction(MainWin) + self.actionBy_Name.setObjectName("actionBy_Name") + self.actionBy_Last_Name = QtWidgets.QAction(MainWin) + self.actionBy_Last_Name.setObjectName("actionBy_Last_Name") + self.actionBy_Email_Address = QtWidgets.QAction(MainWin) + self.actionBy_Email_Address.setObjectName("actionBy_Email_Address") + self.actionBy_Phone_Number = QtWidgets.QAction(MainWin) + self.actionBy_Phone_Number.setObjectName("actionBy_Phone_Number") + self.actionContacts_List = QtWidgets.QAction(MainWin) + self.actionContacts_List.setObjectName("actionContacts_List") + self.actionManual = QtWidgets.QAction(MainWin) + self.actionManual.setObjectName("actionManual") + self.actionFrom_Web = QtWidgets.QAction(MainWin) + self.actionFrom_Web.setObjectName("actionFrom_Web") + self.actionIdentify = QtWidgets.QAction(MainWin) + self.actionIdentify.setObjectName("actionIdentify") + self.actionFirst_Name = QtWidgets.QAction(MainWin) + self.actionFirst_Name.setObjectName("actionFirst_Name") + self.actionLast_Name = QtWidgets.QAction(MainWin) + self.actionLast_Name.setObjectName("actionLast_Name") + self.menuFile.addAction(self.actionOpen_Database) + self.menuFile.addAction(self.actionSave_Database) + self.menuFile.addSeparator() + self.menuFile.addAction(self.actionExit) + self.menuAdd.addAction(self.actionManual) + self.menuAdd.addSeparator() + self.menuAdd.addAction(self.actionFrom_Web) + self.menuShow.addAction(self.actionFirst_Name) + self.menuShow.addAction(self.actionLast_Name) + self.menuContacts.addAction(self.menuAdd.menuAction()) + self.menuContacts.addAction(self.actionRemove) + self.menuContacts.addAction(self.actionChange) + self.menuContacts.addSeparator() + self.menuContacts.addAction(self.actionDelete_All) + self.menuContacts.addSeparator() + self.menuContacts.addAction(self.actionContacts_List) + self.menuContacts.addAction(self.menuShow.menuAction()) + self.menuContacts.addSeparator() + self.menuContacts.addAction(self.actionIdentify) + self.menuSearch.addAction(self.actionBy_Name) + self.menuSearch.addAction(self.actionBy_Last_Name) + self.menuSearch.addAction(self.actionBy_Email_Address) + self.menuSearch.addAction(self.actionBy_Phone_Number) + self.menubar.addAction(self.menuFile.menuAction()) + self.menubar.addAction(self.menuContacts.menuAction()) + self.menubar.addAction(self.menuSearch.menuAction()) + + self.retranslateUi(MainWin) + self.tabWidget.setCurrentIndex(0) + self.comboBox_search.setCurrentIndex(0) + self.actionExit.triggered.connect(MainWin.close) + QtCore.QMetaObject.connectSlotsByName(MainWin) + MainWin.setTabOrder(self.tabWidget, self.comboBox_select) + MainWin.setTabOrder(self.comboBox_select, self.lineEdit_name) + MainWin.setTabOrder(self.lineEdit_name, self.lineEdit_name2) + MainWin.setTabOrder(self.lineEdit_name2, self.lineEdit_email) + MainWin.setTabOrder(self.lineEdit_email, self.lineEdit_telephone) + MainWin.setTabOrder(self.lineEdit_telephone, self.pushButton_remove) + MainWin.setTabOrder(self.pushButton_remove, self.pushButton_change) + MainWin.setTabOrder(self.pushButton_change, self.pushButton_add) + MainWin.setTabOrder(self.pushButton_add, self.pushButton_sort_name) + MainWin.setTabOrder(self.pushButton_sort_name, self.pushButton_sort_name2) + MainWin.setTabOrder(self.pushButton_sort_name2, self.tableWidget_sort) + MainWin.setTabOrder(self.tableWidget_sort, self.lineEdit_search) + MainWin.setTabOrder(self.lineEdit_search, self.comboBox_search) + MainWin.setTabOrder(self.comboBox_search, self.pushButton_search) + MainWin.setTabOrder(self.pushButton_search, self.tableWidget_search) + MainWin.setTabOrder(self.tableWidget_search, self.lineEdit_website) + MainWin.setTabOrder(self.lineEdit_website, self.lineEdit_Wname) + MainWin.setTabOrder(self.lineEdit_Wname, self.lineEdit_Wname2) + MainWin.setTabOrder(self.lineEdit_Wname2, self.lineEdit_Wemail) + MainWin.setTabOrder(self.lineEdit_Wemail, self.lineEdit_Wtelephone) + MainWin.setTabOrder(self.lineEdit_Wtelephone, self.pushButton_Wrecivie) + MainWin.setTabOrder(self.pushButton_Wrecivie, self.pushButton_Wadd) + MainWin.setTabOrder(self.pushButton_Wadd, self.textEdit_get) + MainWin.setTabOrder(self.textEdit_get, self.textEdit_give) + MainWin.setTabOrder(self.textEdit_give, self.pushButton_identify) + MainWin.setTabOrder(self.pushButton_identify, self.lineEdit_path) + MainWin.setTabOrder(self.lineEdit_path, self.pushButton_txt) + MainWin.setTabOrder(self.pushButton_txt, self.pushButton_cms) + MainWin.setTabOrder(self.pushButton_cms, self.pushButton_json) + MainWin.setTabOrder(self.pushButton_json, self.pushButton_xml) + MainWin.setTabOrder(self.pushButton_xml, self.lineEdit_error) + + def retranslateUi(self, MainWin): + _translate = QtCore.QCoreApplication.translate + MainWin.setWindowTitle(_translate("MainWin", "MainWindow")) + self.label_name.setText(_translate("MainWin", "First Name")) + self.label_name2.setText(_translate("MainWin", "Last Name")) + self.lineEdit_name.setStatusTip(_translate("MainWin", "First Name")) + self.lineEdit_name.setPlaceholderText(_translate("MainWin", "Type Here ...")) + self.label_email.setText(_translate("MainWin", "Email")) + self.label_telephone.setText(_translate("MainWin", "Telephone")) + self.pushButton_add.setStatusTip(_translate("MainWin", "Add Contact")) + self.pushButton_add.setText(_translate("MainWin", "Add")) + self.lineEdit_name2.setStatusTip(_translate("MainWin", "Last Name")) + self.lineEdit_name2.setPlaceholderText(_translate("MainWin", "Type Here ...")) + self.lineEdit_email.setStatusTip(_translate("MainWin", "Email Address")) + self.lineEdit_email.setPlaceholderText(_translate("MainWin", "Type Here ...")) + self.lineEdit_telephone.setStatusTip(_translate("MainWin", "Telephone Number")) + self.lineEdit_telephone.setPlaceholderText(_translate("MainWin", "Type Here ...")) + self.pushButton_change.setStatusTip(_translate("MainWin", "Change Selected Contact")) + self.pushButton_change.setText(_translate("MainWin", "Change")) + self.pushButton_remove.setStatusTip(_translate("MainWin", "Remove Selected Contact")) + self.pushButton_remove.setText(_translate("MainWin", "Remove")) + self.label_select.setText(_translate("MainWin", "Selection")) + self.label_tab1.setText(_translate("MainWin", "Enter info to add or select a contact to remove or change it\'s information")) + self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab), _translate("MainWin", "Contacts Manager")) + self.label_tab2.setText(_translate("MainWin", "Click a sort button to sort contacts or change it by double click")) + self.pushButton_sort_name2.setStatusTip(_translate("MainWin", "Sort by Last Name")) + self.pushButton_sort_name2.setText(_translate("MainWin", "Last Name")) + self.pushButton_sort_name.setStatusTip(_translate("MainWin", "Sort by First Name")) + self.pushButton_sort_name.setText(_translate("MainWin", "First Name")) + self.label_sort.setText(_translate("MainWin", "Sort")) + self.tableWidget_sort.setStatusTip(_translate("MainWin", "Sort Table")) + item = self.tableWidget_sort.horizontalHeaderItem(0) + item.setText(_translate("MainWin", "First Name")) + item = self.tableWidget_sort.horizontalHeaderItem(1) + item.setText(_translate("MainWin", "Last Name")) + item = self.tableWidget_sort.horizontalHeaderItem(2) + item.setText(_translate("MainWin", "Telephone")) + item = self.tableWidget_sort.horizontalHeaderItem(3) + item.setText(_translate("MainWin", "Email")) + self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_2), _translate("MainWin", "Contacts List")) + item = self.tableWidget_search.horizontalHeaderItem(0) + item.setText(_translate("MainWin", "First Name")) + item = self.tableWidget_search.horizontalHeaderItem(1) + item.setText(_translate("MainWin", "Last Name")) + item = self.tableWidget_search.horizontalHeaderItem(2) + item.setText(_translate("MainWin", "Telephone")) + item = self.tableWidget_search.horizontalHeaderItem(3) + item.setText(_translate("MainWin", "Email")) + self.label_tab3.setText(_translate("MainWin", "Enter a text and click \'Search\'")) + self.lineEdit_search.setStatusTip(_translate("MainWin", "Search")) + self.lineEdit_search.setPlaceholderText(_translate("MainWin", "Type Here To Search ...")) + self.comboBox_search.setStatusTip(_translate("MainWin", "Search by ...")) + self.comboBox_search.setItemText(0, _translate("MainWin", "First Name")) + self.comboBox_search.setItemText(1, _translate("MainWin", "Last Name")) + self.comboBox_search.setItemText(2, _translate("MainWin", "Email")) + self.comboBox_search.setItemText(3, _translate("MainWin", "Telephone")) + self.pushButton_search.setStatusTip(_translate("MainWin", "Click To Search")) + self.pushButton_search.setText(_translate("MainWin", "🔍")) + self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_3), _translate("MainWin", "Sreach")) + self.lineEdit_Wname.setStatusTip(_translate("MainWin", "First Name")) + self.lineEdit_Wname.setPlaceholderText(_translate("MainWin", "Type Here ...")) + self.label_Wname.setText(_translate("MainWin", "First Name")) + self.label_Wname2.setText(_translate("MainWin", "Last Name")) + self.lineEdit_Wname2.setStatusTip(_translate("MainWin", "Last Name")) + self.lineEdit_Wname2.setPlaceholderText(_translate("MainWin", "Type Here ...")) + self.label_Wemail.setText(_translate("MainWin", "Email")) + self.lineEdit_Wemail.setStatusTip(_translate("MainWin", "Email Address")) + self.lineEdit_Wemail.setPlaceholderText(_translate("MainWin", "Type Here ...")) + self.label_Wtelephone.setText(_translate("MainWin", "Telephone")) + self.lineEdit_Wtelephone.setStatusTip(_translate("MainWin", "Telephone Number")) + self.lineEdit_Wtelephone.setPlaceholderText(_translate("MainWin", "Type Here ...")) + self.pushButton_Wrecivie.setStatusTip(_translate("MainWin", "Recieve Data From Web")) + self.pushButton_Wrecivie.setText(_translate("MainWin", "Recieve")) + self.pushButton_Wadd.setStatusTip(_translate("MainWin", "Add To Contacts")) + self.pushButton_Wadd.setText(_translate("MainWin", "Add")) + self.label_tab4.setText(_translate("MainWin", "Click \'Recieve\' to find contact and click \'Add\' to use it in program")) + self.label_web.setText(_translate("MainWin", "Website")) + self.lineEdit_website.setStatusTip(_translate("MainWin", "Website")) + self.lineEdit_website.setText(_translate("MainWin", "www.random-name-generator.com")) + self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_4), _translate("MainWin", "Web Scraping")) + self.label_tab5.setText(_translate("MainWin", "Enter text and click \'Identify\' to find contact and telephone")) + self.textEdit_get.setStatusTip(_translate("MainWin", "Text")) + self.textEdit_get.setPlaceholderText(_translate("MainWin", "Type Here ...")) + self.textEdit_give.setStatusTip(_translate("MainWin", "Results")) + self.textEdit_give.setPlaceholderText(_translate("MainWin", "Results Will Be Here ...")) + self.pushButton_identify.setStatusTip(_translate("MainWin", "Identify Contact Info")) + self.pushButton_identify.setText(_translate("MainWin", "Identify")) + self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_5), _translate("MainWin", "Identify")) + self.label_tab1_2.setText(_translate("MainWin", "Choose the path and format you want to save your database")) + self.label_Wname_2.setText(_translate("MainWin", "Path")) + self.lineEdit_path.setStatusTip(_translate("MainWin", "Path")) + self.lineEdit_path.setPlaceholderText(_translate("MainWin", "Type Here ...")) + self.label_Wname_3.setText(_translate("MainWin", "Format")) + self.pushButton_txt.setStatusTip(_translate("MainWin", "Save as TXT")) + self.pushButton_txt.setText(_translate("MainWin", "TXT")) + self.pushButton_cms.setStatusTip(_translate("MainWin", "Save as CMS")) + self.pushButton_cms.setText(_translate("MainWin", "CMS")) + self.pushButton_json.setStatusTip(_translate("MainWin", "Save as Json")) + self.pushButton_json.setText(_translate("MainWin", "JSON")) + self.pushButton_xml.setStatusTip(_translate("MainWin", "Save as XML")) + self.pushButton_xml.setText(_translate("MainWin", "XML")) + self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_6), _translate("MainWin", "Save")) + self.menuFile.setTitle(_translate("MainWin", "File")) + self.menuContacts.setTitle(_translate("MainWin", "Contacts")) + self.menuAdd.setTitle(_translate("MainWin", "Add")) + self.menuShow.setTitle(_translate("MainWin", "Sort")) + self.menuSearch.setTitle(_translate("MainWin", "Search")) + self.actionOpen_Database.setText(_translate("MainWin", "Open...")) + self.actionSave_Database.setText(_translate("MainWin", "Save As...")) + self.actionExit.setText(_translate("MainWin", "Exit")) + self.actionOpen_Recents.setText(_translate("MainWin", "Open Recents")) + self.actionWeb_Scraping.setText(_translate("MainWin", "Web Scraping")) + self.actionRemove.setText(_translate("MainWin", "Remove")) + self.actionChange.setText(_translate("MainWin", "Change")) + self.actionDelete_All.setText(_translate("MainWin", "Delete All")) + self.actionBy_Name.setText(_translate("MainWin", "By First Name")) + self.actionBy_Last_Name.setText(_translate("MainWin", "By Last Name")) + self.actionBy_Email_Address.setText(_translate("MainWin", "By Email Address")) + self.actionBy_Phone_Number.setText(_translate("MainWin", "By Phone Number")) + self.actionContacts_List.setText(_translate("MainWin", "Contacts List")) + self.actionManual.setText(_translate("MainWin", "Manual")) + self.actionFrom_Web.setText(_translate("MainWin", "From Web")) + self.actionIdentify.setText(_translate("MainWin", "Identify")) + self.actionFirst_Name.setText(_translate("MainWin", "First Name")) + self.actionLast_Name.setText(_translate("MainWin", "Last Name")) + + +if __name__ == "__main__": + import sys + app = QtWidgets.QApplication(sys.argv) + MainWin = QtWidgets.QMainWindow() + ui = Ui_MainWin() + ui.setupUi(MainWin) + MainWin.show() + sys.exit(app.exec_()) diff --git a/Other Students' Projects/2/Program.ui b/Other Students' Projects/2/Program.ui new file mode 100644 index 0000000..b4125fc --- /dev/null +++ b/Other Students' Projects/2/Program.ui @@ -0,0 +1,1830 @@ + + + MainWin + + + + 0 + 0 + 789 + 639 + + + + MainWindow + + + background-color:#FFD663 + + + + + + 0 + 0 + 781 + 551 + + + + + 10 + + + + QTabWidget::Rounded + + + 0 + + + true + + + false + + + + Contacts Manager + + + + + 30 + 190 + 111 + 41 + + + + + 9 + 75 + true + + + + background-color:#3A96DD;color:white;border-radius:0.5em + + + First Name + + + Qt::AlignCenter + + + + + + 30 + 260 + 111 + 41 + + + + + 9 + 75 + true + + + + background-color:#3A96DD;color:white;border-radius:0.5em + + + Last Name + + + Qt::AlignCenter + + + + + + 150 + 190 + 591 + 41 + + + + + 10 + 75 + true + + + + First Name + + + background-color:#3A96DD;color:white;border-radius:0.5em + + + + + + Qt::AlignCenter + + + Type Here ... + + + true + + + + + + 30 + 330 + 111 + 41 + + + + + 9 + 75 + true + + + + background-color:#3A96DD;color:white;border-radius:0.5em + + + Email + + + Qt::AlignCenter + + + + + + 30 + 400 + 111 + 41 + + + + + 9 + 75 + true + + + + background-color:#3A96DD;color:white;border-radius:0.5em + + + Telephone + + + Qt::AlignCenter + + + + + + 640 + 460 + 101 + 51 + + + + + 10 + 75 + true + + + + PointingHandCursor + + + Add Contact + + + background-color:#353E70;color:white;border-radius:0.5em + + + Add + + + + + + 150 + 260 + 591 + 41 + + + + + 10 + 75 + true + + + + Last Name + + + background-color:#3A96DD;color:white;border-radius:0.5em + + + + + + Qt::AlignCenter + + + Type Here ... + + + true + + + + + + 150 + 330 + 591 + 41 + + + + + 10 + 75 + true + + + + Email Address + + + background-color:#3A96DD;color:white;border-radius:0.5em + + + + + + Qt::AlignCenter + + + Type Here ... + + + true + + + + + + 150 + 400 + 591 + 41 + + + + + 10 + 75 + true + + + + Telephone Number + + + background-color:#3A96DD;color:white;border-radius:0.5em + + + + + + Qt::AlignCenter + + + Type Here ... + + + true + + + + + + 530 + 460 + 101 + 51 + + + + + 10 + 75 + true + + + + PointingHandCursor + + + Change Selected Contact + + + background-color:#353E70;color:white;border-radius:0.5em + + + Change + + + + + + 420 + 460 + 101 + 51 + + + + + 10 + 75 + true + + + + PointingHandCursor + + + Remove Selected Contact + + + background-color:#353E70;color:white;border-radius:0.5em + + + Remove + + + + + + 150 + 120 + 591 + 41 + + + + + 75 + true + + + + background-color:#3A96DD;color:white;border-radius:0.5em + + + + + + 30 + 120 + 111 + 41 + + + + + 9 + 75 + true + + + + background-color:#3A96DD;color:white;border-radius:0.5em + + + Selection + + + Qt::AlignCenter + + + + + + 20 + 30 + 731 + 61 + + + + + 12 + 75 + true + + + + background-color:#559B7B;color:white;border-radius:1em + + + Enter info to add or select a contact to remove or change it's information + + + Qt::AlignCenter + + + + + + Contacts List + + + + + 30 + 20 + 721 + 41 + + + + + 13 + 75 + true + + + + background-color:#559B7B;color:white;border-radius:1em + + + Click a sort button to sort contacts or change it by double click + + + Qt::AlignCenter + + + + + + 200 + 80 + 71 + 41 + + + + + 7 + 75 + true + + + + PointingHandCursor + + + Sort by Last Name + + + background-color:#353E70;color:white;border-radius:0.5em + + + Last Name + + + + + + 120 + 80 + 71 + 41 + + + + + 7 + 75 + true + + + + PointingHandCursor + + + Sort by First Name + + + background-color:#353E70;color:white;border-radius:0.5em + + + First Name + + + + + + 40 + 80 + 71 + 41 + + + + + 9 + 75 + true + + + + background-color:#3A96DD;color:white;border-radius:0.5em + + + Sort + + + Qt::AlignCenter + + + + + + 40 + 130 + 701 + 381 + + + + Sort Table + + + 165 + + + true + + + + First Name + + + + + Last Name + + + + + Telephone + + + + + Email + + + + + + + Sreach + + + + + 40 + 140 + 701 + 371 + + + + 165 + + + true + + + + First Name + + + + + Last Name + + + + + Telephone + + + + + Email + + + + + + + 30 + 20 + 721 + 41 + + + + + 13 + 75 + true + + + + background-color:#559B7B;color:white;border-radius:1em + + + Enter a text and click 'Search' + + + Qt::AlignCenter + + + + + + 40 + 80 + 541 + 41 + + + + + 10 + 75 + true + + + + Search + + + background-color:#3A96DD;color:white;border-radius:0.5em + + + + + + Qt::AlignCenter + + + Type Here To Search ... + + + true + + + + + + 590 + 80 + 91 + 41 + + + + + 75 + true + + + + Search by ... + + + background-color:#3A96DD;color:white;border-radius:0.5em + + + 0 + + + QComboBox::AdjustToContentsOnFirstShow + + + 10 + + + + First Name + + + + + Last Name + + + + + Email + + + + + Telephone + + + + + + + 690 + 80 + 51 + 41 + + + + + 15 + 75 + true + + + + PointingHandCursor + + + Click To Search + + + background-color:#353E70;color:white;border-radius:0.5em + + + 🔍 + + + + + + Web Scraping + + + + + 150 + 190 + 591 + 41 + + + + + 10 + 75 + true + + + + First Name + + + background-color:#3A96DD;color:white;border-radius:0.5em + + + + + + Qt::AlignCenter + + + Type Here ... + + + true + + + + + + 30 + 190 + 111 + 41 + + + + + 9 + 75 + true + + + + background-color:#3A96DD;color:white;border-radius:0.5em + + + First Name + + + Qt::AlignCenter + + + + + + 30 + 260 + 111 + 41 + + + + + 9 + 75 + true + + + + background-color:#3A96DD;color:white;border-radius:0.5em + + + Last Name + + + Qt::AlignCenter + + + + + + 150 + 260 + 591 + 41 + + + + + 10 + 75 + true + + + + Last Name + + + background-color:#3A96DD;color:white;border-radius:0.5em + + + + + + Qt::AlignCenter + + + Type Here ... + + + true + + + + + + 30 + 330 + 111 + 41 + + + + + 9 + 75 + true + + + + background-color:#3A96DD;color:white;border-radius:0.5em + + + Email + + + Qt::AlignCenter + + + + + + 150 + 330 + 591 + 41 + + + + + 10 + 75 + true + + + + Email Address + + + background-color:#3A96DD;color:white;border-radius:0.5em + + + + + + Qt::AlignCenter + + + Type Here ... + + + true + + + + + + 30 + 400 + 111 + 41 + + + + + 9 + 75 + true + + + + background-color:#3A96DD;color:white;border-radius:0.5em + + + Telephone + + + Qt::AlignCenter + + + + + + 150 + 400 + 591 + 41 + + + + + 10 + 75 + true + + + + Telephone Number + + + background-color:#3A96DD;color:white;border-radius:0.5em + + + + + + Qt::AlignCenter + + + Type Here ... + + + true + + + + + + 530 + 460 + 101 + 51 + + + + + 10 + 75 + true + + + + PointingHandCursor + + + Recieve Data From Web + + + background-color:#353E70;color:white;border-radius:0.5em + + + Recieve + + + + + + 640 + 460 + 101 + 51 + + + + + 10 + 75 + true + + + + PointingHandCursor + + + Add To Contacts + + + background-color:#353E70;color:white;border-radius:0.5em + + + Add + + + + + + 20 + 30 + 731 + 61 + + + + + 13 + 75 + true + + + + background-color:#559B7B;color:white;border-radius:1em + + + Click 'Recieve' to find contact and click 'Add' to use it in program + + + Qt::AlignCenter + + + + + + 30 + 120 + 111 + 41 + + + + + 9 + 75 + true + + + + background-color:#977A55;color:white;border-radius:0.5em + + + Website + + + Qt::AlignCenter + + + + + + 150 + 120 + 591 + 41 + + + + + 10 + 75 + true + + + + Website + + + background-color:#977A55;color:white;border-radius:0.5em + + + www.random-name-generator.com + + + Qt::AlignCenter + + + true + + + + + + + + + Identify + + + + + 20 + 30 + 731 + 61 + + + + + 13 + 75 + true + + + + background-color:#559B7B;color:white;border-radius:1em + + + Enter text and click 'Identify' to find contact and telephone + + + Qt::AlignCenter + + + + + + 40 + 170 + 691 + 141 + + + + + 10 + 75 + true + + + + Text + + + background-color:#3A96DD;color:white;border-radius:0.5em + + + QFrame::NoFrame + + + 1 + + + Type Here ... + + + + + + 40 + 340 + 691 + 161 + + + + + 10 + 75 + true + + + + Results + + + background-color:#3A96DD;color:white;border-radius:0.5em + + + QFrame::NoFrame + + + 1 + + + true + + + Results Will Be Here ... + + + + + + 630 + 110 + 101 + 51 + + + + + 10 + 75 + true + + + + PointingHandCursor + + + Identify Contact Info + + + background-color:#353E70;color:white;border-radius:0.5em + + + Identify + + + + + + Save + + + + + 20 + 40 + 731 + 61 + + + + + 12 + 75 + true + + + + background-color:#559B7B;color:white;border-radius:1em + + + Choose the path and format you want to save your database + + + Qt::AlignCenter + + + + + + 30 + 140 + 111 + 41 + + + + + 9 + 75 + true + + + + background-color:#3A96DD;color:white;border-radius:0.5em + + + Path + + + Qt::AlignCenter + + + + + + 150 + 140 + 591 + 41 + + + + + 10 + 75 + true + + + + Path + + + background-color:#3A96DD;color:white;border-radius:0.5em + + + + + + Qt::AlignCenter + + + Type Here ... + + + true + + + + + + 30 + 210 + 111 + 41 + + + + + 9 + 75 + true + + + + background-color:#3A96DD;color:white;border-radius:0.5em + + + Format + + + Qt::AlignCenter + + + + + + 150 + 210 + 51 + 41 + + + + + 10 + 75 + true + + + + PointingHandCursor + + + Save as TXT + + + background-color:#353E70;color:white;border-radius:0.5em + + + TXT + + + + + + 210 + 210 + 51 + 41 + + + + + 10 + 75 + true + + + + PointingHandCursor + + + Save as CMS + + + background-color:#353E70;color:white;border-radius:0.5em + + + CMS + + + + + + 270 + 210 + 51 + 41 + + + + + 10 + 75 + true + + + + PointingHandCursor + + + Save as Json + + + background-color:#353E70;color:white;border-radius:0.5em + + + JSON + + + + + + 330 + 210 + 51 + 41 + + + + + 10 + 75 + true + + + + PointingHandCursor + + + Save as XML + + + background-color:#353E70;color:white;border-radius:0.5em + + + XML + + + + + + + + 10 + 556 + 761 + 25 + + + + + 10 + 75 + true + + + + background-color:#FA6E51;color:white;border-radius:0.5em + + + + + + Qt::AlignCenter + + + true + + + + + + false + + + + + + + 0 + 0 + 789 + 29 + + + + + 11 + + + + PointingHandCursor + + + background-color:#FCFCFC; + + + false + + + + + 10 + + + + File + + + + + + + + + + 10 + + + + false + + + Contacts + + + + Add + + + + + + + + Sort + + + + + + + + + + + + + + + + + + Search + + + + + + + + + + + + + + Open... + + + + 11 + 50 + false + + + + true + + + true + + + QAction::HighPriority + + + + + Save As... + + + + + Exit + + + + + Open Recents + + + + + Web Scraping + + + + + Remove + + + + + Change + + + + + Delete All + + + + + By First Name + + + + + By Last Name + + + + + By Email Address + + + + + By Phone Number + + + + + Contacts List + + + + + Manual + + + + + From Web + + + + + Identify + + + + + First Name + + + + + Last Name + + + + + tabWidget + comboBox_select + lineEdit_name + lineEdit_name2 + lineEdit_email + lineEdit_telephone + pushButton_remove + pushButton_change + pushButton_add + pushButton_sort_name + pushButton_sort_name2 + tableWidget_sort + lineEdit_search + comboBox_search + pushButton_search + tableWidget_search + lineEdit_website + lineEdit_Wname + lineEdit_Wname2 + lineEdit_Wemail + lineEdit_Wtelephone + pushButton_Wrecivie + pushButton_Wadd + textEdit_get + textEdit_give + pushButton_identify + lineEdit_path + pushButton_txt + pushButton_cms + pushButton_json + pushButton_xml + lineEdit_error + + + + + actionExit + triggered() + MainWin + close() + + + -1 + -1 + + + 394 + 315 + + + + + diff --git a/Other Students' Projects/2/Project.py b/Other Students' Projects/2/Project.py new file mode 100644 index 0000000..096cc94 --- /dev/null +++ b/Other Students' Projects/2/Project.py @@ -0,0 +1,429 @@ +import json +from dicttoxml import dicttoxml +from xml.dom.minidom import parseString +from Program import Ui_MainWin +from PyQt5 import QtCore, QtGui, QtWidgets +from os import getcwd, path + +# Hidpi scaling +QtWidgets.QApplication.setAttribute(QtCore.Qt.AA_EnableHighDpiScaling, True) +# use Hidpi icons +QtWidgets.QApplication.setAttribute(QtCore.Qt.AA_UseHighDpiPixmaps, True) + + +class Gui(Ui_MainWin): + def __init__(self): + self.ContactsList = [] + self.ReadTXT() + + def setupUi(self, MainWindow): + super().setupUi(MainWindow) + + self.SelectUpdate() + self.lineEdit_path.setText(getcwd()) + self.lineEdit_error.setVisible(False) + + self.actionOpen_Database.triggered.connect(lambda x: self.acts('open')) + self.actionSave_Database.triggered.connect(lambda x: self.acts('save')) + + self.actionManual.triggered.connect(lambda x: self.acts('manual')) + self.actionFrom_Web.triggered.connect(lambda x: self.acts('web')) + self.actionRemove.triggered.connect(lambda x: self.acts('remove')) + self.actionChange.triggered.connect(lambda x: self.acts('change')) + self.actionDelete_All.triggered.connect(lambda x: self.acts('deleteAll')) + self.actionContacts_List.triggered.connect(lambda x: self.acts('list')) + self.actionIdentify.triggered.connect(lambda x: self.acts('identify')) + + self.actionBy_Name.triggered.connect(lambda x: self.acts('searchf')) + self.actionBy_Last_Name.triggered.connect(lambda x: self.acts('searchl')) + self.actionBy_Email_Address.triggered.connect(lambda x: self.acts('searche')) + self.actionBy_Phone_Number.triggered.connect(lambda x: self.acts('searchp')) + + self.actionFirst_Name.triggered.connect(lambda x: self.acts('sortf')) + self.actionFirst_Name.triggered.connect(lambda x: self.acts('sortl')) + + def retranslateUi(self, MainWindow): + super().retranslateUi(MainWindow) + + def acts(self, act): + if act == 'open': + self.ReadTXT() + self.SelectUpdate() + self.EmptyLineEdits1() + + elif act == 'save': + self.tabWidget.setCurrentIndex(5) + + elif act == "manual" or act == "remove" or act == "change": + self.tabWidget.setCurrentIndex(0) + self.comboBox_select.setCurrentIndex(-1) + self.EmptyLineEdits1() + + elif act == "web": + self.tabWidget.setCurrentIndex(3) + + elif act == "deleteAll": + self.ContactsList = [] + self.SelectUpdate() + self.EmptyLineEdits1() + self.EmptyLineEdits2() + self.lineEdit_error.setVisible(True) + self.lineEdit_error.setText("All Contacts were deleted successfully") + + elif act == "list": + self.tabWidget.setCurrentIndex(1) + + elif act == "identify": + self.tabWidget.setCurrentIndex(4) + + elif act == "searchf": + self.tabWidget.setCurrentIndex(2) + self.comboBox_search.setCurrentIndex(0) + + elif act == "searchl": + self.tabWidget.setCurrentIndex(2) + self.comboBox_search.setCurrentIndex(1) + + elif act == "searche": + self.tabWidget.setCurrentIndex(2) + self.comboBox_search.setCurrentIndex(2) + + elif act == "searchp": + self.tabWidget.setCurrentIndex(2) + self.comboBox_search.setCurrentIndex(3) + + elif act == "sortf": + self.tabWidget.setCurrentIndex(1) + self.pushButton_sort_name.click() + + elif act == "sortl": + self.tabWidget.setCurrentIndex(1) + self.pushButton_sort_name2.click() + + def ClickContactsAdd(self): + self.lineEdit_error.setVisible(False) + + continuee = True + name = self.lineEdit_name.text() + name2 = self.lineEdit_name2.text() + email = self.lineEdit_email.text() + tele = self.lineEdit_telephone.text() + + if name == "": + continuee = False + self.lineEdit_error.setVisible(True) + self.lineEdit_error.setText("Name Box Is Empty") + elif email == "": + pass + elif self.VarifyEmail(email) == False: + continuee = False + self.lineEdit_error.setVisible(True) + self.lineEdit_error.setText("Email Is Not Valid") + + if continuee == True: + self.ContactsList.append({ + 'name': name, + 'name2': name2, + 'email': email, + 'tele': tele + }) + + self.SelectUpdate() + self.EmptyLineEdits1() + + def ClickContactsRemove(self): + self.lineEdit_error.setVisible(False) + contactIndex = self.comboBox_select.currentIndex() + + if contactIndex == -1: + self.lineEdit_error.setVisible(True) + self.lineEdit_error.setText("Select A Contact First") + else: + self.ContactsList.pop(contactIndex) + self.SelectUpdate() + self.EmptyLineEdits1() + + def ClickContactsChange(self): + self.lineEdit_error.setVisible(False) + contactIndex = self.comboBox_select.currentIndex() + + if contactIndex == -1: + self.lineEdit_error.setVisible(True) + self.lineEdit_error.setText("Select A Contact First") + else: + continuee = True + name = self.lineEdit_name.text() + name2 = self.lineEdit_name2.text() + email = self.lineEdit_email.text() + tele = self.lineEdit_telephone.text() + + if name == "": + continuee = False + self.lineEdit_error.setVisible(True) + self.lineEdit_error.setText("Name Box Is Empty") + elif email == "": + pass + elif self.VarifyEmail(email) == False: + continuee = False + self.lineEdit_error.setVisible(True) + self.lineEdit_error.setText("Email Is Not Valid") + + if continuee == True: + self.ContactsList[contactIndex] = { + 'name': name, + 'name2': name2, + 'email': email, + 'tele': tele} + + self.SelectUpdate() + self.EmptyLineEdits1() + + def SortName(self): + sorted_list = [i for i in sorted(self.ContactsList, key=lambda obj: obj['name'])] + self.tableWidget_sort.setRowCount(0) + + for i in range(0, len(sorted_list)): + self.tableWidget_sort.insertRow(i) + self.tableWidget_sort.setItem(i, 0, QtWidgets.QTableWidgetItem(sorted_list[i]['name'])) + self.tableWidget_sort.setItem(i, 1, QtWidgets.QTableWidgetItem(sorted_list[i]['name2'])) + self.tableWidget_sort.setItem(i, 2, QtWidgets.QTableWidgetItem(sorted_list[i]['tele'])) + self.tableWidget_sort.setItem(i, 3, QtWidgets.QTableWidgetItem(sorted_list[i]['email'])) + + def SortName2(self): + sorted_list = [i for i in sorted(self.ContactsList, key=lambda obj: obj['name2'])] + self.tableWidget_sort.setRowCount(0) + + for i in range(0, len(sorted_list)): + self.tableWidget_sort.insertRow(i) + self.tableWidget_sort.setItem(i, 0, QtWidgets.QTableWidgetItem(sorted_list[i]['name'])) + self.tableWidget_sort.setItem(i, 1, QtWidgets.QTableWidgetItem(sorted_list[i]['name2'])) + self.tableWidget_sort.setItem(i, 2, QtWidgets.QTableWidgetItem(sorted_list[i]['tele'])) + self.tableWidget_sort.setItem(i, 3, QtWidgets.QTableWidgetItem(sorted_list[i]['email'])) + + def SelectUpdate(self): + self.comboBox_select.clear() + contact = [f"{i['name']}, {i['name2']}" for i in self.ContactsList] + self.comboBox_select.addItems(contact) + self.comboBox_select.setCurrentIndex(-1) + + def EmptyLineEdits1(self): + self.lineEdit_name.clear() + self.lineEdit_name2.clear() + self.lineEdit_email.clear() + self.lineEdit_telephone.clear() + + def EmptyLineEdits2(self): + self.lineEdit_Wname.clear() + self.lineEdit_Wname2.clear() + self.lineEdit_Wemail.clear() + self.lineEdit_Wtelephone.clear() + + def SelectContact(self): + contactIndex = self.comboBox_select.currentIndex() + + if self.ContactsList: + self.lineEdit_name.setText(self.ContactsList[contactIndex]['name']) + self.lineEdit_name2.setText(self.ContactsList[contactIndex]['name2']) + self.lineEdit_email.setText(self.ContactsList[contactIndex]['email']) + self.lineEdit_telephone.setText(self.ContactsList[contactIndex]['tele']) + + def VarifyEmail(self, address): + import re + if address != "": + pattern = r'^([0-9A-Za-z]|\.|\_|\-)+[@]([0-9A-Za-z]|\_|\-|\.)+[.][A-Za-z]{2,4}$' + + if re.search(pattern, address.replace(" ", "")): + return True + else: + return False + + def Search(self): + self.lineEdit_error.setVisible(False) + + char = self.lineEdit_search.text() + + if char == "": + self.lineEdit_error.setVisible(True) + self.lineEdit_error.setText("Enter Text In Search Box") + else: + index = self.comboBox_search.currentIndex() + indexes = {0: 'name', 1: 'name2', 2: 'email', 3: 'tele'} + + searched = [] + for i in self.ContactsList: + if char.lower() in i[indexes[index]].lower(): + searched.append(i) + + row = 0 + self.tableWidget_search.setRowCount(0) + for i in range(0, len(searched)): + self.tableWidget_search.insertRow(row) + self.tableWidget_search.setItem(row, 0, QtWidgets.QTableWidgetItem(searched[i]['name'])) + self.tableWidget_search.setItem(row, 1, QtWidgets.QTableWidgetItem(searched[i]['name2'])) + self.tableWidget_search.setItem(row, 2, QtWidgets.QTableWidgetItem(searched[i]['tele'])) + self.tableWidget_search.setItem(row, 3, QtWidgets.QTableWidgetItem(searched[i]['email'])) + + def ReceiveWeb(self): + from bs4 import BeautifulSoup + from lxml import etree + from requests import get + from random import randint + + self.lineEdit_error.setVisible(False) + + HEADERS = ({'User-Agent': 'Application'}) + + site = "https://www.random-name-generator.com/united-states?gender=&n=1&s=" + str(randint(10000, 99999)) + + try: + webpage = get(site, headers=HEADERS) + soup = BeautifulSoup(webpage.content, "html.parser") + dom = etree.HTML(str(soup)) + + name = dom.xpath('/html/body/div/div[4]/div[2]/div/div/div[5]/div/div/dl[1]/dd[1]/text()')[0].split()[0] + name2 = dom.xpath('/html/body/div/div[4]/div[2]/div/div/div[5]/div/div/dl[1]/dd[1]/text()')[0].split()[1] + phone = dom.xpath('/html/body/div/div[4]/div[2]/div/div/div[5]/div/div/dl[1]/dd[3]/text()')[0] + phone = "+1" + phone.replace("(", "").replace(") ", "").replace("+1", "").split()[0].replace("-", " ").replace(".", " ").replace(" ", "") + email = dom.xpath('/html/body/div/div[4]/div[2]/div/div/div[5]/div/div/dl[2]/dd[1]/text()')[0].replace("\n", "") + + self.lineEdit_Wname.setText(name) + self.lineEdit_Wname2.setText(name2) + self.lineEdit_Wemail.setText(email) + self.lineEdit_Wtelephone.setText(phone) + + except: + self.lineEdit_error.setVisible(True) + self.lineEdit_error.setText("Website Is Not Reachable - No Internet") + + def ClickWebAdd(self): + self.lineEdit_error.setVisible(False) + + continuee = True + name = self.lineEdit_Wname.text() + name2 = self.lineEdit_Wname2.text() + email = self.lineEdit_Wemail.text() + tele = self.lineEdit_Wtelephone.text() + + if name == "": + continuee = False + self.lineEdit_error.setVisible(True) + self.lineEdit_error.setText("Name Box Is Empty") + elif email == "": + pass + elif self.VarifyEmail(email) == False: + continuee = False + self.lineEdit_error.setVisible(True) + self.lineEdit_error.setText("Email Is Not Valid") + + if continuee == True: + self.ContactsList.append({ + 'name': name, + 'name2': name2, + 'email': email, + 'tele': tele + }) + + self.SelectUpdate() + self.EmptyLineEdits1() + self.EmptyLineEdits2() + + def IdentifyTextContact(self): + import re + + names = "\n".join(re.findall(r'[@](\w+)', self.textEdit_get.toPlainText())) + tele = "\n".join(re.findall(r'[#]([0-9]+)', self.textEdit_get.toPlainText())) + + if names == "": + names = "*No Name!*" + + if tele == "": + tele = "*No Telephone!*" + + show = f'Names:\n{names}\n\nTelephones:\n{tele}' + + self.textEdit_give.setText(show) + + def Save(self): + self.lineEdit_error.setVisible(False) + location = self.lineEdit_path.text() + + continuee = True + if not path.isdir(location): + continuee = False + self.lineEdit_error.setVisible(True) + self.lineEdit_error.setText("Path Is Not Valid") + + return continuee + + def SaveTXT(self): + if self.Save(): + location = self.lineEdit_path.text() + with open(location + "\\Contacts.txt", "w") as file: + file.write(json.dumps(self.ContactsList)) + + self.lineEdit_error.setVisible(True) + self.lineEdit_error.setText("Done!") + + def SaveJson(self): + if self.Save(): + location = self.lineEdit_path.text() + with open(location + "\\Contacts.json", "w") as file: + json.dump(self.ContactsList, file) + + self.lineEdit_error.setVisible(True) + self.lineEdit_error.setText("Done!") + + def SaveXML(self): + if self.Save() and self.ContactsList: + location = self.lineEdit_path.text() + with open(location + "\\Contacts.xml", "w") as file: + parsed = parseString(dicttoxml(self.ContactsList, attr_type=False, custom_root='Person')) + file.write(parsed.toprettyxml()) + + self.lineEdit_error.setVisible(True) + self.lineEdit_error.setText("Done!") + + def SaveCMS(self): + if self.Save(): + location = self.lineEdit_path.text() + with open(location + "\\Contacts.cms", "wb") as file: + import pickle + pickle.dump(self.ContactsList, file) + + self.lineEdit_error.setVisible(True) + self.lineEdit_error.setText("Done!") + + def ReadTXT(self): + try: + with open("Contacts.txt", "r") as file: + self.ContactsList = json.loads(file.read()) + + except: + self.ContactsList = [] + with open("Contacts.txt", "w") as file: + pass + +if __name__ == "__main__": + import sys + program = QtWidgets.QApplication(sys.argv) + Page = QtWidgets.QMainWindow() + gui = Gui() + gui.setupUi(Page) + + gui.pushButton_add.clicked.connect(gui.ClickContactsAdd) + gui.pushButton_remove.clicked.connect(gui.ClickContactsRemove) + gui.pushButton_change.clicked.connect(gui.ClickContactsChange) + gui.pushButton_sort_name.clicked.connect(gui.SortName) + gui.pushButton_sort_name2.clicked.connect(gui.SortName2) + gui.pushButton_search.clicked.connect(gui.Search) + gui.pushButton_Wrecivie.clicked.connect(gui.ReceiveWeb) + gui.pushButton_Wadd.clicked.connect(gui.ClickWebAdd) + gui.pushButton_identify.clicked.connect(gui.IdentifyTextContact) + gui.pushButton_xml.clicked.connect(gui.SaveXML) + gui.pushButton_txt.clicked.connect(gui.SaveTXT) + gui.pushButton_json.clicked.connect(gui.SaveJson) + gui.pushButton_cms.clicked.connect(gui.SaveCMS) + gui.comboBox_select.currentIndexChanged.connect(gui.SelectContact) + + Page.show() + sys.exit(program.exec_()) diff --git a/Other Students' Projects/2/keep.txt b/Other Students' Projects/2/keep.txt new file mode 100644 index 0000000..8e321c5 --- /dev/null +++ b/Other Students' Projects/2/keep.txt @@ -0,0 +1,19 @@ +libraries: + pip install pyqt5-tools + pip install PyQt5 + pip install requests + pip install pickle + pip install beautifulsoup4 + pip install lxml + pip install dicttoxml + + +Designer: + C:\Program Files\Python37\Lib\site-packages\qt5_applications\Qt\bin\designer.exe + +Ui to Py: + Pyuic5 -x -o .\Program.py .\Program.ui + +py to exe: + pyinstaller Project.py --name Project --onefile --noconsole + diff --git a/Other Students' Projects/3/.idea/.gitignore b/Other Students' Projects/3/.idea/.gitignore new file mode 100644 index 0000000..579ed1a --- /dev/null +++ b/Other Students' Projects/3/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Datasource local storage ignored files +/../../../../../../:\University\2nd Term\Others Homeworks\Mohammad Mohammadi\.idea/dataSources/ +/dataSources.local.xml +# Editor-based HTTP Client requests +/httpRequests/ diff --git a/Other Students' Projects/3/.idea/.name b/Other Students' Projects/3/.idea/.name new file mode 100644 index 0000000..b08150b --- /dev/null +++ b/Other Students' Projects/3/.idea/.name @@ -0,0 +1 @@ +mainProgram.py \ No newline at end of file diff --git a/Other Students' Projects/3/.idea/Mohammad Mohammadi.iml b/Other Students' Projects/3/.idea/Mohammad Mohammadi.iml new file mode 100644 index 0000000..d0876a7 --- /dev/null +++ b/Other Students' Projects/3/.idea/Mohammad Mohammadi.iml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/Other Students' Projects/3/.idea/inspectionProfiles/Project_Default.xml b/Other Students' Projects/3/.idea/inspectionProfiles/Project_Default.xml new file mode 100644 index 0000000..6eeafb9 --- /dev/null +++ b/Other Students' Projects/3/.idea/inspectionProfiles/Project_Default.xml @@ -0,0 +1,24 @@ + + + + \ No newline at end of file diff --git a/Other Students' Projects/3/.idea/inspectionProfiles/profiles_settings.xml b/Other Students' Projects/3/.idea/inspectionProfiles/profiles_settings.xml new file mode 100644 index 0000000..105ce2d --- /dev/null +++ b/Other Students' Projects/3/.idea/inspectionProfiles/profiles_settings.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/Other Students' Projects/3/.idea/misc.xml b/Other Students' Projects/3/.idea/misc.xml new file mode 100644 index 0000000..a2e120d --- /dev/null +++ b/Other Students' Projects/3/.idea/misc.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/Other Students' Projects/3/.idea/modules.xml b/Other Students' Projects/3/.idea/modules.xml new file mode 100644 index 0000000..c79868e --- /dev/null +++ b/Other Students' Projects/3/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/Other Students' Projects/3/Contacts.py b/Other Students' Projects/3/Contacts.py new file mode 100644 index 0000000..ba19acb --- /dev/null +++ b/Other Students' Projects/3/Contacts.py @@ -0,0 +1,220 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file '.\UiFiles\Contacts.ui' +# +# Created by: PyQt5 UI code generator 5.15.4 +# +# WARNING: Any manual changes made to this file will be lost when pyuic5 is +# run again. Do not edit this file unless you know what you are doing. + + +from PyQt5 import QtCore, QtGui, QtWidgets + + +class Ui_Dialog(object): + def setupUi(self, Dialog): + Dialog.setObjectName("Dialog") + Dialog.resize(610, 715) + Dialog.setStyleSheet("background-color:#232323") + self.tableWidget = QtWidgets.QTableWidget(Dialog) + self.tableWidget.setGeometry(QtCore.QRect(30, 130, 551, 521)) + self.tableWidget.setStyleSheet("background-color:#CFCFCF") + self.tableWidget.setFrameShape(QtWidgets.QFrame.StyledPanel) + self.tableWidget.setFrameShadow(QtWidgets.QFrame.Sunken) + self.tableWidget.setEditTriggers(QtWidgets.QAbstractItemView.DoubleClicked) + self.tableWidget.setObjectName("tableWidget") + self.tableWidget.setColumnCount(4) + self.tableWidget.setRowCount(0) + item = QtWidgets.QTableWidgetItem() + self.tableWidget.setHorizontalHeaderItem(0, item) + item = QtWidgets.QTableWidgetItem() + self.tableWidget.setHorizontalHeaderItem(1, item) + item = QtWidgets.QTableWidgetItem() + font = QtGui.QFont() + font.setPointSize(7) + item.setFont(font) + self.tableWidget.setHorizontalHeaderItem(2, item) + item = QtWidgets.QTableWidgetItem() + self.tableWidget.setHorizontalHeaderItem(3, item) + self.tableWidget.horizontalHeader().setCascadingSectionResizes(False) + self.tableWidget.horizontalHeader().setDefaultSectionSize(115) + self.tableWidget.horizontalHeader().setMinimumSectionSize(115) + self.tableWidget.horizontalHeader().setSortIndicatorShown(False) + self.tableWidget.horizontalHeader().setStretchLastSection(True) + self.tableWidget.verticalHeader().setDefaultSectionSize(33) + self.label_2 = QtWidgets.QLabel(Dialog) + self.label_2.setGeometry(QtCore.QRect(30, 85, 71, 31)) + font = QtGui.QFont() + font.setFamily("MS Shell Dlg 2") + font.setPointSize(11) + font.setBold(True) + font.setItalic(False) + font.setWeight(75) + self.label_2.setFont(font) + self.label_2.setStyleSheet("color:white") + self.label_2.setAlignment(QtCore.Qt.AlignCenter) + self.label_2.setObjectName("label_2") + self.pushButton_name = QtWidgets.QPushButton(Dialog) + self.pushButton_name.setGeometry(QtCore.QRect(110, 85, 91, 31)) + font = QtGui.QFont() + font.setFamily("MS Shell Dlg 2") + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.pushButton_name.setFont(font) + self.pushButton_name.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) + self.pushButton_name.setStyleSheet("background-color:#0FA6E9; color:white") + self.pushButton_name.setCheckable(False) + self.pushButton_name.setAutoDefault(False) + self.pushButton_name.setDefault(False) + self.pushButton_name.setFlat(False) + self.pushButton_name.setObjectName("pushButton_name") + self.pushButton_family = QtWidgets.QPushButton(Dialog) + self.pushButton_family.setGeometry(QtCore.QRect(210, 85, 91, 31)) + font = QtGui.QFont() + font.setFamily("MS Shell Dlg 2") + font.setPointSize(8) + font.setBold(True) + font.setWeight(75) + self.pushButton_family.setFont(font) + self.pushButton_family.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) + self.pushButton_family.setStyleSheet("background-color:#0FA6E9; color:white") + self.pushButton_family.setCheckable(False) + self.pushButton_family.setAutoDefault(False) + self.pushButton_family.setDefault(False) + self.pushButton_family.setFlat(False) + self.pushButton_family.setObjectName("pushButton_family") + self.pushButton_add = QtWidgets.QPushButton(Dialog) + self.pushButton_add.setGeometry(QtCore.QRect(520, 667, 61, 31)) + font = QtGui.QFont() + font.setFamily("MS Shell Dlg 2") + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.pushButton_add.setFont(font) + self.pushButton_add.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) + self.pushButton_add.setStyleSheet("background-color:#318CE7; color:white") + self.pushButton_add.setCheckable(False) + self.pushButton_add.setAutoDefault(False) + self.pushButton_add.setDefault(False) + self.pushButton_add.setFlat(False) + self.pushButton_add.setObjectName("pushButton_add") + self.label_6 = QtWidgets.QLabel(Dialog) + self.label_6.setGeometry(QtCore.QRect(10, 20, 581, 41)) + font = QtGui.QFont() + font.setFamily("MS Shell Dlg 2") + font.setPointSize(14) + font.setBold(True) + font.setItalic(False) + font.setUnderline(False) + font.setWeight(75) + font.setStrikeOut(False) + font.setKerning(True) + self.label_6.setFont(font) + self.label_6.setStyleSheet("color:white;") + self.label_6.setAlignment(QtCore.Qt.AlignCenter) + self.label_6.setObjectName("label_6") + self.pushButton_remove = QtWidgets.QPushButton(Dialog) + self.pushButton_remove.setGeometry(QtCore.QRect(450, 667, 61, 31)) + font = QtGui.QFont() + font.setFamily("MS Shell Dlg 2") + font.setPointSize(8) + font.setBold(True) + font.setWeight(75) + self.pushButton_remove.setFont(font) + self.pushButton_remove.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) + self.pushButton_remove.setStyleSheet("background-color:#318CE7; color:white") + self.pushButton_remove.setCheckable(False) + self.pushButton_remove.setAutoDefault(False) + self.pushButton_remove.setDefault(False) + self.pushButton_remove.setFlat(False) + self.pushButton_remove.setObjectName("pushButton_remove") + self.pushButton_change = QtWidgets.QPushButton(Dialog) + self.pushButton_change.setGeometry(QtCore.QRect(380, 667, 61, 31)) + font = QtGui.QFont() + font.setFamily("MS Shell Dlg 2") + font.setPointSize(8) + font.setBold(True) + font.setWeight(75) + self.pushButton_change.setFont(font) + self.pushButton_change.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) + self.pushButton_change.setStyleSheet("background-color:#318CE7; color:white") + self.pushButton_change.setCheckable(False) + self.pushButton_change.setAutoDefault(False) + self.pushButton_change.setDefault(False) + self.pushButton_change.setFlat(False) + self.pushButton_change.setObjectName("pushButton_change") + self.label_error1 = QtWidgets.QLabel(Dialog) + self.label_error1.setGeometry(QtCore.QRect(10, 683, 361, 21)) + font = QtGui.QFont() + font.setFamily("MS Shell Dlg 2") + font.setPointSize(10) + font.setBold(True) + font.setItalic(False) + font.setUnderline(False) + font.setWeight(75) + font.setStrikeOut(False) + font.setKerning(True) + self.label_error1.setFont(font) + self.label_error1.setStyleSheet("color:#EB4C42;") + self.label_error1.setText("") + self.label_error1.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.label_error1.setObjectName("label_error1") + self.pushButton_refresh = QtWidgets.QPushButton(Dialog) + self.pushButton_refresh.setGeometry(QtCore.QRect(520, 90, 61, 31)) + font = QtGui.QFont() + font.setFamily("MS Shell Dlg 2") + font.setPointSize(8) + font.setBold(True) + font.setWeight(75) + self.pushButton_refresh.setFont(font) + self.pushButton_refresh.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) + self.pushButton_refresh.setStyleSheet("background-color:#50C878; color:white") + self.pushButton_refresh.setCheckable(False) + self.pushButton_refresh.setAutoDefault(False) + self.pushButton_refresh.setDefault(False) + self.pushButton_refresh.setFlat(False) + self.pushButton_refresh.setObjectName("pushButton_refresh") + self.label_error1.raise_() + self.tableWidget.raise_() + self.label_2.raise_() + self.pushButton_name.raise_() + self.pushButton_family.raise_() + self.pushButton_add.raise_() + self.label_6.raise_() + self.pushButton_remove.raise_() + self.pushButton_change.raise_() + self.pushButton_refresh.raise_() + + self.retranslateUi(Dialog) + QtCore.QMetaObject.connectSlotsByName(Dialog) + + def retranslateUi(self, Dialog): + _translate = QtCore.QCoreApplication.translate + Dialog.setWindowTitle(_translate("Dialog", "Contacts")) + item = self.tableWidget.horizontalHeaderItem(0) + item.setText(_translate("Dialog", "Name")) + item = self.tableWidget.horizontalHeaderItem(1) + item.setText(_translate("Dialog", "Famliy Name")) + item = self.tableWidget.horizontalHeaderItem(2) + item.setText(_translate("Dialog", "Phone")) + item = self.tableWidget.horizontalHeaderItem(3) + item.setText(_translate("Dialog", "Email")) + self.label_2.setText(_translate("Dialog", "Sort:")) + self.pushButton_name.setText(_translate("Dialog", "Name")) + self.pushButton_family.setText(_translate("Dialog", "Family Name")) + self.pushButton_add.setText(_translate("Dialog", "Add")) + self.label_6.setText(_translate("Dialog", "You can see contacts list or click edit buttons")) + self.pushButton_remove.setText(_translate("Dialog", "Remove")) + self.pushButton_change.setText(_translate("Dialog", "Change")) + self.pushButton_refresh.setText(_translate("Dialog", "Refresh")) + + +if __name__ == "__main__": + import sys + app = QtWidgets.QApplication(sys.argv) + Dialog = QtWidgets.QDialog() + ui = Ui_Dialog() + ui.setupUi(Dialog) + Dialog.show() + sys.exit(app.exec_()) diff --git a/Other Students' Projects/3/Edit.py b/Other Students' Projects/3/Edit.py new file mode 100644 index 0000000..37f290b --- /dev/null +++ b/Other Students' Projects/3/Edit.py @@ -0,0 +1,189 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file '.\UiFiles\Edit.ui' +# +# Created by: PyQt5 UI code generator 5.15.4 +# +# WARNING: Any manual changes made to this file will be lost when pyuic5 is +# run again. Do not edit this file unless you know what you are doing. + + +from PyQt5 import QtCore, QtGui, QtWidgets + + +class Ui_Dialog(object): + def setupUi(self, Dialog): + Dialog.setObjectName("Dialog") + Dialog.resize(610, 715) + Dialog.setStyleSheet("background-color:#232323") + self.label_6 = QtWidgets.QLabel(Dialog) + self.label_6.setGeometry(QtCore.QRect(10, 40, 581, 41)) + font = QtGui.QFont() + font.setFamily("MS Shell Dlg 2") + font.setPointSize(14) + font.setBold(True) + font.setItalic(False) + font.setUnderline(False) + font.setWeight(75) + font.setStrikeOut(False) + font.setKerning(True) + self.label_6.setFont(font) + self.label_6.setStyleSheet("color:white;") + self.label_6.setAlignment(QtCore.Qt.AlignCenter) + self.label_6.setObjectName("label_6") + self.lineEdit = QtWidgets.QLineEdit(Dialog) + self.lineEdit.setGeometry(QtCore.QRect(170, 210, 391, 41)) + font = QtGui.QFont() + font.setBold(True) + font.setWeight(75) + self.lineEdit.setFont(font) + self.lineEdit.setStyleSheet("background-color:#318CE7;color:white") + self.lineEdit.setText("") + self.lineEdit.setObjectName("lineEdit") + self.label_2 = QtWidgets.QLabel(Dialog) + self.label_2.setGeometry(QtCore.QRect(30, 210, 121, 41)) + font = QtGui.QFont() + font.setFamily("MS Shell Dlg 2") + font.setPointSize(11) + font.setBold(True) + font.setItalic(False) + font.setWeight(75) + self.label_2.setFont(font) + self.label_2.setStyleSheet("color:white") + self.label_2.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.label_2.setObjectName("label_2") + self.label_3 = QtWidgets.QLabel(Dialog) + self.label_3.setGeometry(QtCore.QRect(30, 270, 121, 41)) + font = QtGui.QFont() + font.setFamily("MS Shell Dlg 2") + font.setPointSize(11) + font.setBold(True) + font.setItalic(False) + font.setWeight(75) + self.label_3.setFont(font) + self.label_3.setStyleSheet("color:white") + self.label_3.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.label_3.setObjectName("label_3") + self.label_4 = QtWidgets.QLabel(Dialog) + self.label_4.setGeometry(QtCore.QRect(30, 330, 121, 41)) + font = QtGui.QFont() + font.setFamily("MS Shell Dlg 2") + font.setPointSize(11) + font.setBold(True) + font.setItalic(False) + font.setWeight(75) + self.label_4.setFont(font) + self.label_4.setStyleSheet("color:white") + self.label_4.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.label_4.setObjectName("label_4") + self.label_5 = QtWidgets.QLabel(Dialog) + self.label_5.setGeometry(QtCore.QRect(30, 390, 121, 41)) + font = QtGui.QFont() + font.setFamily("MS Shell Dlg 2") + font.setPointSize(11) + font.setBold(True) + font.setItalic(False) + font.setWeight(75) + self.label_5.setFont(font) + self.label_5.setStyleSheet("color:white") + self.label_5.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.label_5.setObjectName("label_5") + self.lineEdit_2 = QtWidgets.QLineEdit(Dialog) + self.lineEdit_2.setGeometry(QtCore.QRect(170, 270, 391, 41)) + font = QtGui.QFont() + font.setBold(True) + font.setWeight(75) + self.lineEdit_2.setFont(font) + self.lineEdit_2.setStyleSheet("background-color:#318CE7;color:white") + self.lineEdit_2.setObjectName("lineEdit_2") + self.lineEdit_3 = QtWidgets.QLineEdit(Dialog) + self.lineEdit_3.setGeometry(QtCore.QRect(170, 330, 391, 41)) + font = QtGui.QFont() + font.setBold(True) + font.setWeight(75) + self.lineEdit_3.setFont(font) + self.lineEdit_3.setStyleSheet("background-color:#318CE7;color:white") + self.lineEdit_3.setObjectName("lineEdit_3") + self.lineEdit_4 = QtWidgets.QLineEdit(Dialog) + self.lineEdit_4.setGeometry(QtCore.QRect(170, 390, 391, 41)) + font = QtGui.QFont() + font.setBold(True) + font.setWeight(75) + self.lineEdit_4.setFont(font) + self.lineEdit_4.setStyleSheet("background-color:#318CE7;color:white") + self.lineEdit_4.setObjectName("lineEdit_4") + self.label_7 = QtWidgets.QLabel(Dialog) + self.label_7.setGeometry(QtCore.QRect(30, 140, 121, 41)) + font = QtGui.QFont() + font.setFamily("MS Shell Dlg 2") + font.setPointSize(11) + font.setBold(True) + font.setItalic(False) + font.setWeight(75) + self.label_7.setFont(font) + self.label_7.setStyleSheet("color:white") + self.label_7.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.label_7.setObjectName("label_7") + self.comboBox = QtWidgets.QComboBox(Dialog) + self.comboBox.setGeometry(QtCore.QRect(170, 140, 391, 41)) + font = QtGui.QFont() + font.setBold(True) + font.setWeight(75) + self.comboBox.setFont(font) + self.comboBox.setStyleSheet("background-color:#318CE7;color:white") + self.comboBox.setObjectName("comboBox") + self.pushButton_do = QtWidgets.QPushButton(Dialog) + self.pushButton_do.setGeometry(QtCore.QRect(470, 460, 91, 51)) + font = QtGui.QFont() + font.setFamily("MS Shell Dlg 2") + font.setPointSize(11) + font.setBold(True) + font.setWeight(75) + self.pushButton_do.setFont(font) + self.pushButton_do.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) + self.pushButton_do.setStyleSheet("background-color:#50C878; color:white") + self.pushButton_do.setCheckable(False) + self.pushButton_do.setAutoDefault(False) + self.pushButton_do.setDefault(False) + self.pushButton_do.setFlat(False) + self.pushButton_do.setObjectName("pushButton_do") + self.label_error2 = QtWidgets.QLabel(Dialog) + self.label_error2.setGeometry(QtCore.QRect(10, 680, 591, 21)) + font = QtGui.QFont() + font.setFamily("MS Shell Dlg 2") + font.setPointSize(10) + font.setBold(True) + font.setItalic(False) + font.setUnderline(False) + font.setWeight(75) + font.setStrikeOut(False) + font.setKerning(True) + self.label_error2.setFont(font) + self.label_error2.setStyleSheet("color:#EB4C42;") + self.label_error2.setText("") + self.label_error2.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.label_error2.setObjectName("label_error2") + + self.retranslateUi(Dialog) + QtCore.QMetaObject.connectSlotsByName(Dialog) + + def retranslateUi(self, Dialog): + _translate = QtCore.QCoreApplication.translate + Dialog.setWindowTitle(_translate("Dialog", "Edit Contacts")) + self.label_6.setText(_translate("Dialog", "Fill or change data in boxes and click save")) + self.label_2.setText(_translate("Dialog", "Name :")) + self.label_3.setText(_translate("Dialog", "Family Name :")) + self.label_4.setText(_translate("Dialog", "Phone :")) + self.label_5.setText(_translate("Dialog", "Email :")) + self.label_7.setText(_translate("Dialog", "Contact:")) + self.pushButton_do.setText(_translate("Dialog", "Add")) + + +if __name__ == "__main__": + import sys + app = QtWidgets.QApplication(sys.argv) + Dialog = QtWidgets.QDialog() + ui = Ui_Dialog() + ui.setupUi(Dialog) + Dialog.show() + sys.exit(app.exec_()) diff --git a/Other Students' Projects/3/Find.py b/Other Students' Projects/3/Find.py new file mode 100644 index 0000000..5037ee5 --- /dev/null +++ b/Other Students' Projects/3/Find.py @@ -0,0 +1,145 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file '.\UiFiles\Find.ui' +# +# Created by: PyQt5 UI code generator 5.15.4 +# +# WARNING: Any manual changes made to this file will be lost when pyuic5 is +# run again. Do not edit this file unless you know what you are doing. + + +from PyQt5 import QtCore, QtGui, QtWidgets + + +class Ui_Dialog(object): + def setupUi(self, Dialog): + Dialog.setObjectName("Dialog") + Dialog.resize(610, 715) + Dialog.setStyleSheet("background-color:#232323") + self.textBrowser = QtWidgets.QTextBrowser(Dialog) + self.textBrowser.setGeometry(QtCore.QRect(20, 470, 271, 192)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.textBrowser.setFont(font) + self.textBrowser.setStyleSheet("color:white") + self.textBrowser.setObjectName("textBrowser") + self.textEdit = QtWidgets.QTextEdit(Dialog) + self.textEdit.setGeometry(QtCore.QRect(20, 130, 571, 201)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.textEdit.setFont(font) + self.textEdit.setStyleSheet("color:white") + self.textEdit.setObjectName("textEdit") + self.textBrowser_2 = QtWidgets.QTextBrowser(Dialog) + self.textBrowser_2.setGeometry(QtCore.QRect(320, 470, 271, 192)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.textBrowser_2.setFont(font) + self.textBrowser_2.setStyleSheet("color:white") + self.textBrowser_2.setObjectName("textBrowser_2") + self.label_6 = QtWidgets.QLabel(Dialog) + self.label_6.setGeometry(QtCore.QRect(10, 40, 581, 41)) + font = QtGui.QFont() + font.setFamily("MS Shell Dlg 2") + font.setPointSize(14) + font.setBold(True) + font.setItalic(False) + font.setUnderline(False) + font.setWeight(75) + font.setStrikeOut(False) + font.setKerning(True) + self.label_6.setFont(font) + self.label_6.setStyleSheet("color:white;") + self.label_6.setAlignment(QtCore.Qt.AlignCenter) + self.label_6.setObjectName("label_6") + self.pushButton_dox = QtWidgets.QPushButton(Dialog) + self.pushButton_dox.setGeometry(QtCore.QRect(520, 340, 71, 51)) + font = QtGui.QFont() + font.setFamily("MS Shell Dlg 2") + font.setPointSize(20) + self.pushButton_dox.setFont(font) + self.pushButton_dox.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) + self.pushButton_dox.setStyleSheet("background-color:#318CE7; color:white") + self.pushButton_dox.setCheckable(False) + self.pushButton_dox.setAutoDefault(False) + self.pushButton_dox.setDefault(False) + self.pushButton_dox.setFlat(False) + self.pushButton_dox.setObjectName("pushButton_dox") + self.label_7 = QtWidgets.QLabel(Dialog) + self.label_7.setGeometry(QtCore.QRect(20, 420, 81, 41)) + font = QtGui.QFont() + font.setFamily("MS Shell Dlg 2") + font.setPointSize(14) + font.setBold(True) + font.setItalic(False) + font.setUnderline(False) + font.setWeight(75) + font.setStrikeOut(False) + font.setKerning(True) + self.label_7.setFont(font) + self.label_7.setStyleSheet("color:white;") + self.label_7.setAlignment(QtCore.Qt.AlignCenter) + self.label_7.setObjectName("label_7") + self.label_8 = QtWidgets.QLabel(Dialog) + self.label_8.setGeometry(QtCore.QRect(320, 420, 81, 41)) + font = QtGui.QFont() + font.setFamily("MS Shell Dlg 2") + font.setPointSize(14) + font.setBold(True) + font.setItalic(False) + font.setUnderline(False) + font.setWeight(75) + font.setStrikeOut(False) + font.setKerning(True) + self.label_8.setFont(font) + self.label_8.setStyleSheet("color:white;") + self.label_8.setAlignment(QtCore.Qt.AlignCenter) + self.label_8.setObjectName("label_8") + self.label_error3 = QtWidgets.QLabel(Dialog) + self.label_error3.setGeometry(QtCore.QRect(10, 680, 591, 21)) + font = QtGui.QFont() + font.setFamily("MS Shell Dlg 2") + font.setPointSize(10) + font.setBold(True) + font.setItalic(False) + font.setUnderline(False) + font.setWeight(75) + font.setStrikeOut(False) + font.setKerning(True) + self.label_error3.setFont(font) + self.label_error3.setStyleSheet("color:#EB4C42;") + self.label_error3.setText("") + self.label_error3.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.label_error3.setObjectName("label_error3") + + self.retranslateUi(Dialog) + QtCore.QMetaObject.connectSlotsByName(Dialog) + + def retranslateUi(self, Dialog): + _translate = QtCore.QCoreApplication.translate + Dialog.setWindowTitle(_translate("Dialog", "Find Name and Phone")) + self.textEdit.setHtml(_translate("Dialog", "\n" +"\n" +"


")) + self.label_6.setText(_translate("Dialog", "Enter text to find name and phone")) + self.pushButton_dox.setText(_translate("Dialog", "✔")) + self.label_7.setText(_translate("Dialog", "Names:")) + self.label_8.setText(_translate("Dialog", "Phones")) + + +if __name__ == "__main__": + import sys + app = QtWidgets.QApplication(sys.argv) + Dialog = QtWidgets.QDialog() + ui = Ui_Dialog() + ui.setupUi(Dialog) + Dialog.show() + sys.exit(app.exec_()) diff --git a/Other Students' Projects/3/Main.py b/Other Students' Projects/3/Main.py new file mode 100644 index 0000000..1baa11d --- /dev/null +++ b/Other Students' Projects/3/Main.py @@ -0,0 +1,203 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file '.\UiFiles\Main.ui' +# +# Created by: PyQt5 UI code generator 5.15.4 +# +# WARNING: Any manual changes made to this file will be lost when pyuic5 is +# run again. Do not edit this file unless you know what you are doing. + + +from PyQt5 import QtCore, QtGui, QtWidgets + + +class Ui_MainWindow(object): + def setupUi(self, MainWindow): + MainWindow.setObjectName("MainWindow") + MainWindow.resize(610, 715) + MainWindow.setStyleSheet("background-color:#232323") + self.centralwidget = QtWidgets.QWidget(MainWindow) + self.centralwidget.setObjectName("centralwidget") + self.label = QtWidgets.QLabel(self.centralwidget) + self.label.setGeometry(QtCore.QRect(87, 70, 141, 20)) + font = QtGui.QFont() + font.setFamily("MS Shell Dlg 2") + font.setPointSize(22) + font.setBold(True) + font.setItalic(False) + font.setUnderline(False) + font.setWeight(75) + font.setStrikeOut(False) + font.setKerning(True) + self.label.setFont(font) + self.label.setStyleSheet("color:#0FA6E9;background-color: rgba(0,0,0,0%)") + self.label.setFrameShape(QtWidgets.QFrame.NoFrame) + self.label.setFrameShadow(QtWidgets.QFrame.Plain) + self.label.setAlignment(QtCore.Qt.AlignBottom|QtCore.Qt.AlignHCenter) + self.label.setObjectName("label") + self.label_2 = QtWidgets.QLabel(self.centralwidget) + self.label_2.setGeometry(QtCore.QRect(225, 100, 151, 61)) + font = QtGui.QFont() + font.setFamily("DS-Digital") + font.setPointSize(15) + font.setBold(False) + font.setItalic(False) + font.setWeight(50) + self.label_2.setFont(font) + self.label_2.setStyleSheet("color:#0FA6E9") + self.label_2.setAlignment(QtCore.Qt.AlignCenter) + self.label_2.setObjectName("label_2") + self.pushButton_contacts = QtWidgets.QPushButton(self.centralwidget) + self.pushButton_contacts.setGeometry(QtCore.QRect(170, 210, 261, 61)) + font = QtGui.QFont() + font.setFamily("MS Shell Dlg 2") + font.setPointSize(12) + font.setBold(True) + font.setWeight(75) + self.pushButton_contacts.setFont(font) + self.pushButton_contacts.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) + self.pushButton_contacts.setStyleSheet("background-color:#0FA6E9; color:white") + self.pushButton_contacts.setCheckable(False) + self.pushButton_contacts.setAutoDefault(False) + self.pushButton_contacts.setDefault(False) + self.pushButton_contacts.setFlat(False) + self.pushButton_contacts.setObjectName("pushButton_contacts") + self.pushButton_web = QtWidgets.QPushButton(self.centralwidget) + self.pushButton_web.setGeometry(QtCore.QRect(170, 300, 261, 61)) + font = QtGui.QFont() + font.setFamily("MS Shell Dlg 2") + font.setPointSize(12) + font.setBold(True) + font.setWeight(75) + self.pushButton_web.setFont(font) + self.pushButton_web.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) + self.pushButton_web.setStyleSheet("background-color:#318CE7; color:white") + self.pushButton_web.setObjectName("pushButton_web") + self.pushButton_find = QtWidgets.QPushButton(self.centralwidget) + self.pushButton_find.setGeometry(QtCore.QRect(170, 390, 261, 61)) + font = QtGui.QFont() + font.setFamily("MS Shell Dlg 2") + font.setPointSize(12) + font.setBold(True) + font.setWeight(75) + self.pushButton_find.setFont(font) + self.pushButton_find.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) + self.pushButton_find.setStyleSheet("background-color:#318CE7; color:white") + self.pushButton_find.setObjectName("pushButton_find") + self.lcdNumber = QtWidgets.QLCDNumber(self.centralwidget) + self.lcdNumber.setGeometry(QtCore.QRect(335, 115, 21, 31)) + self.lcdNumber.setStyleSheet("color:#0FA6E9") + self.lcdNumber.setDigitCount(1) + self.lcdNumber.setSegmentStyle(QtWidgets.QLCDNumber.Flat) + self.lcdNumber.setProperty("value", 1.0) + self.lcdNumber.setObjectName("lcdNumber") + self.label_3 = QtWidgets.QLabel(self.centralwidget) + self.label_3.setGeometry(QtCore.QRect(10, 40, 581, 61)) + font = QtGui.QFont() + font.setFamily("MS Shell Dlg 2") + font.setPointSize(22) + font.setBold(True) + font.setItalic(False) + font.setUnderline(False) + font.setWeight(75) + font.setStrikeOut(False) + font.setKerning(True) + self.label_3.setFont(font) + self.label_3.setStyleSheet("color:white;") + self.label_3.setAlignment(QtCore.Qt.AlignCenter) + self.label_3.setObjectName("label_3") + self.label_4 = QtWidgets.QLabel(self.centralwidget) + self.label_4.setGeometry(QtCore.QRect(228, 51, 151, 21)) + font = QtGui.QFont() + font.setFamily("MS Shell Dlg 2") + font.setPointSize(22) + font.setBold(True) + font.setItalic(False) + font.setUnderline(False) + font.setWeight(75) + font.setStrikeOut(False) + font.setKerning(True) + self.label_4.setFont(font) + self.label_4.setStyleSheet("color:#0FA6E9;background-color: rgba(0,0,0,0%)") + self.label_4.setFrameShape(QtWidgets.QFrame.NoFrame) + self.label_4.setFrameShadow(QtWidgets.QFrame.Plain) + self.label_4.setAlignment(QtCore.Qt.AlignHCenter|QtCore.Qt.AlignTop) + self.label_4.setObjectName("label_4") + self.label_5 = QtWidgets.QLabel(self.centralwidget) + self.label_5.setGeometry(QtCore.QRect(376, 70, 141, 20)) + font = QtGui.QFont() + font.setFamily("MS Shell Dlg 2") + font.setPointSize(22) + font.setBold(True) + font.setItalic(False) + font.setUnderline(False) + font.setWeight(75) + font.setStrikeOut(False) + font.setKerning(True) + self.label_5.setFont(font) + self.label_5.setStyleSheet("color:#0FA6E9;background-color: rgba(0,0,0,0%)") + self.label_5.setFrameShape(QtWidgets.QFrame.NoFrame) + self.label_5.setFrameShadow(QtWidgets.QFrame.Plain) + self.label_5.setAlignment(QtCore.Qt.AlignBottom|QtCore.Qt.AlignHCenter) + self.label_5.setObjectName("label_5") + self.pushButton_save = QtWidgets.QPushButton(self.centralwidget) + self.pushButton_save.setGeometry(QtCore.QRect(170, 570, 261, 61)) + font = QtGui.QFont() + font.setFamily("MS Shell Dlg 2") + font.setPointSize(12) + font.setBold(True) + font.setWeight(75) + self.pushButton_save.setFont(font) + self.pushButton_save.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) + self.pushButton_save.setStyleSheet("background-color:#318CE7; color:white") + self.pushButton_save.setObjectName("pushButton_save") + self.pushButton_load = QtWidgets.QPushButton(self.centralwidget) + self.pushButton_load.setGeometry(QtCore.QRect(170, 480, 261, 61)) + font = QtGui.QFont() + font.setFamily("MS Shell Dlg 2") + font.setPointSize(12) + font.setBold(True) + font.setWeight(75) + self.pushButton_load.setFont(font) + self.pushButton_load.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) + self.pushButton_load.setStyleSheet("background-color:#318CE7; color:white") + self.pushButton_load.setObjectName("pushButton_load") + self.label_2.raise_() + self.pushButton_contacts.raise_() + self.pushButton_web.raise_() + self.pushButton_find.raise_() + self.lcdNumber.raise_() + self.label_3.raise_() + self.label.raise_() + self.label_4.raise_() + self.label_5.raise_() + self.pushButton_save.raise_() + self.pushButton_load.raise_() + MainWindow.setCentralWidget(self.centralwidget) + + self.retranslateUi(MainWindow) + QtCore.QMetaObject.connectSlotsByName(MainWindow) + + def retranslateUi(self, MainWindow): + _translate = QtCore.QCoreApplication.translate + MainWindow.setWindowTitle(_translate("MainWindow", "My Program")) + self.label.setText(_translate("MainWindow", "Contact")) + self.label_2.setText(_translate("MainWindow", "Version ")) + self.pushButton_contacts.setText(_translate("MainWindow", "Contacts")) + self.pushButton_web.setText(_translate("MainWindow", "Web Scraping")) + self.pushButton_find.setText(_translate("MainWindow", "Find Contacts")) + self.label_3.setText(_translate("MainWindow", "Contact Manager System")) + self.label_4.setText(_translate("MainWindow", "Manager")) + self.label_5.setText(_translate("MainWindow", "System")) + self.pushButton_save.setText(_translate("MainWindow", "Save Database")) + self.pushButton_load.setText(_translate("MainWindow", "Load Database")) + + +if __name__ == "__main__": + import sys + app = QtWidgets.QApplication(sys.argv) + MainWindow = QtWidgets.QMainWindow() + ui = Ui_MainWindow() + ui.setupUi(MainWindow) + MainWindow.show() + sys.exit(app.exec_()) diff --git a/Other Students' Projects/3/Presentation.docx b/Other Students' Projects/3/Presentation.docx new file mode 100644 index 0000000..e865284 Binary files /dev/null and b/Other Students' Projects/3/Presentation.docx differ diff --git a/Other Students' Projects/3/Save.py b/Other Students' Projects/3/Save.py new file mode 100644 index 0000000..4706582 --- /dev/null +++ b/Other Students' Projects/3/Save.py @@ -0,0 +1,104 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file '.\UiFiles\Save.ui' +# +# Created by: PyQt5 UI code generator 5.15.4 +# +# WARNING: Any manual changes made to this file will be lost when pyuic5 is +# run again. Do not edit this file unless you know what you are doing. + + +from PyQt5 import QtCore, QtGui, QtWidgets + + +class Ui_Dialog(object): + def setupUi(self, Dialog): + Dialog.setObjectName("Dialog") + Dialog.resize(610, 300) + Dialog.setStyleSheet("background-color:#232323") + self.pushButton_json = QtWidgets.QPushButton(Dialog) + self.pushButton_json.setGeometry(QtCore.QRect(390, 150, 101, 61)) + font = QtGui.QFont() + font.setFamily("MS Shell Dlg 2") + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.pushButton_json.setFont(font) + self.pushButton_json.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) + self.pushButton_json.setStyleSheet("background-color:#318CE7; color:white") + self.pushButton_json.setObjectName("pushButton_json") + self.label_6 = QtWidgets.QLabel(Dialog) + self.label_6.setGeometry(QtCore.QRect(10, 30, 581, 71)) + font = QtGui.QFont() + font.setFamily("MS Shell Dlg 2") + font.setPointSize(14) + font.setBold(True) + font.setItalic(False) + font.setUnderline(False) + font.setWeight(75) + font.setStrikeOut(False) + font.setKerning(True) + self.label_6.setFont(font) + self.label_6.setStyleSheet("color:white;") + self.label_6.setAlignment(QtCore.Qt.AlignCenter) + self.label_6.setWordWrap(True) + self.label_6.setObjectName("label_6") + self.pushButton_txt = QtWidgets.QPushButton(Dialog) + self.pushButton_txt.setGeometry(QtCore.QRect(250, 150, 101, 61)) + font = QtGui.QFont() + font.setFamily("MS Shell Dlg 2") + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.pushButton_txt.setFont(font) + self.pushButton_txt.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) + self.pushButton_txt.setStyleSheet("background-color:#318CE7; color:white") + self.pushButton_txt.setObjectName("pushButton_txt") + self.pushButton_xml = QtWidgets.QPushButton(Dialog) + self.pushButton_xml.setGeometry(QtCore.QRect(110, 150, 101, 61)) + font = QtGui.QFont() + font.setFamily("MS Shell Dlg 2") + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.pushButton_xml.setFont(font) + self.pushButton_xml.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) + self.pushButton_xml.setStyleSheet("background-color:#318CE7; color:white") + self.pushButton_xml.setObjectName("pushButton_xml") + self.label_error = QtWidgets.QLabel(Dialog) + self.label_error.setGeometry(QtCore.QRect(10, 260, 591, 21)) + font = QtGui.QFont() + font.setFamily("MS Shell Dlg 2") + font.setPointSize(10) + font.setBold(True) + font.setItalic(False) + font.setUnderline(False) + font.setWeight(75) + font.setStrikeOut(False) + font.setKerning(True) + self.label_error.setFont(font) + self.label_error.setStyleSheet("color:#EB4C42;") + self.label_error.setText("") + self.label_error.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.label_error.setObjectName("label_error") + + self.retranslateUi(Dialog) + QtCore.QMetaObject.connectSlotsByName(Dialog) + + def retranslateUi(self, Dialog): + _translate = QtCore.QCoreApplication.translate + Dialog.setWindowTitle(_translate("Dialog", "Dialog")) + self.pushButton_json.setText(_translate("Dialog", "JSON")) + self.label_6.setText(_translate("Dialog", "Choose one file type below to save database in it")) + self.pushButton_txt.setText(_translate("Dialog", "TXT")) + self.pushButton_xml.setText(_translate("Dialog", "XML")) + + +if __name__ == "__main__": + import sys + app = QtWidgets.QApplication(sys.argv) + Dialog = QtWidgets.QDialog() + ui = Ui_Dialog() + ui.setupUi(Dialog) + Dialog.show() + sys.exit(app.exec_()) diff --git a/Other Students' Projects/3/UiFiles/Contacts.ui b/Other Students' Projects/3/UiFiles/Contacts.ui new file mode 100644 index 0000000..0ef7d51 --- /dev/null +++ b/Other Students' Projects/3/UiFiles/Contacts.ui @@ -0,0 +1,421 @@ + + + Dialog + + + + 0 + 0 + 610 + 715 + + + + Contacts + + + background-color:#232323 + + + + + 30 + 130 + 551 + 521 + + + + background-color:#CFCFCF + + + QFrame::StyledPanel + + + QFrame::Sunken + + + QAbstractItemView::DoubleClicked + + + false + + + 115 + + + 115 + + + false + + + true + + + 33 + + + + Name + + + + + Famliy Name + + + + + Phone + + + + 7 + + + + + + Email + + + + + + + 30 + 85 + 71 + 31 + + + + + MS Shell Dlg 2 + 11 + 75 + false + true + + + + color:white + + + Sort: + + + Qt::AlignCenter + + + + + + 110 + 85 + 91 + 31 + + + + + MS Shell Dlg 2 + 10 + 75 + true + + + + PointingHandCursor + + + background-color:#0FA6E9; color:white + + + Name + + + false + + + false + + + false + + + false + + + + + + 210 + 85 + 91 + 31 + + + + + MS Shell Dlg 2 + 8 + 75 + true + + + + PointingHandCursor + + + background-color:#0FA6E9; color:white + + + Family Name + + + false + + + false + + + false + + + false + + + + + + 520 + 667 + 61 + 31 + + + + + MS Shell Dlg 2 + 10 + 75 + true + + + + PointingHandCursor + + + background-color:#318CE7; color:white + + + Add + + + false + + + false + + + false + + + false + + + + + + 10 + 20 + 581 + 41 + + + + + MS Shell Dlg 2 + 14 + 75 + false + true + false + false + true + + + + color:white; + + + You can see contacts list or click edit buttons + + + Qt::AlignCenter + + + + + + 450 + 667 + 61 + 31 + + + + + MS Shell Dlg 2 + 8 + 75 + true + + + + PointingHandCursor + + + background-color:#318CE7; color:white + + + Remove + + + false + + + false + + + false + + + false + + + + + + 380 + 667 + 61 + 31 + + + + + MS Shell Dlg 2 + 8 + 75 + true + + + + PointingHandCursor + + + background-color:#318CE7; color:white + + + Change + + + false + + + false + + + false + + + false + + + + + + 10 + 683 + 361 + 21 + + + + + MS Shell Dlg 2 + 10 + 75 + false + true + false + false + true + + + + color:#EB4C42; + + + + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + 520 + 90 + 61 + 31 + + + + + MS Shell Dlg 2 + 8 + 75 + true + + + + PointingHandCursor + + + background-color:#50C878; color:white + + + Refresh + + + false + + + false + + + false + + + false + + + label_error1 + tableWidget + label_2 + pushButton_name + pushButton_family + pushButton_add + label_6 + pushButton_remove + pushButton_change + pushButton_refresh + + + + diff --git a/Other Students' Projects/3/UiFiles/Edit.ui b/Other Students' Projects/3/UiFiles/Edit.ui new file mode 100644 index 0000000..88b758d --- /dev/null +++ b/Other Students' Projects/3/UiFiles/Edit.ui @@ -0,0 +1,361 @@ + + + Dialog + + + + 0 + 0 + 610 + 715 + + + + Edit Contacts + + + background-color:#232323 + + + + + 10 + 40 + 581 + 41 + + + + + MS Shell Dlg 2 + 14 + 75 + false + true + false + false + true + + + + color:white; + + + Fill or change data in boxes and click save + + + Qt::AlignCenter + + + + + + 170 + 210 + 391 + 41 + + + + + 75 + true + + + + background-color:#318CE7;color:white + + + + + + + + + 30 + 210 + 121 + 41 + + + + + MS Shell Dlg 2 + 11 + 75 + false + true + + + + color:white + + + Name : + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + 30 + 270 + 121 + 41 + + + + + MS Shell Dlg 2 + 11 + 75 + false + true + + + + color:white + + + Family Name : + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + 30 + 330 + 121 + 41 + + + + + MS Shell Dlg 2 + 11 + 75 + false + true + + + + color:white + + + Phone : + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + 30 + 390 + 121 + 41 + + + + + MS Shell Dlg 2 + 11 + 75 + false + true + + + + color:white + + + Email : + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + 170 + 270 + 391 + 41 + + + + + 75 + true + + + + background-color:#318CE7;color:white + + + + + + 170 + 330 + 391 + 41 + + + + + 75 + true + + + + background-color:#318CE7;color:white + + + + + + 170 + 390 + 391 + 41 + + + + + 75 + true + + + + background-color:#318CE7;color:white + + + + + + 30 + 140 + 121 + 41 + + + + + MS Shell Dlg 2 + 11 + 75 + false + true + + + + color:white + + + Contact: + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + 170 + 140 + 391 + 41 + + + + + 75 + true + + + + background-color:#318CE7;color:white + + + + + + 470 + 460 + 91 + 51 + + + + + MS Shell Dlg 2 + 11 + 75 + true + + + + PointingHandCursor + + + background-color:#50C878; color:white + + + Add + + + false + + + false + + + false + + + false + + + + + + 10 + 680 + 591 + 21 + + + + + MS Shell Dlg 2 + 10 + 75 + false + true + false + false + true + + + + color:#EB4C42; + + + + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + diff --git a/Other Students' Projects/3/UiFiles/Find.ui b/Other Students' Projects/3/UiFiles/Find.ui new file mode 100644 index 0000000..372549c --- /dev/null +++ b/Other Students' Projects/3/UiFiles/Find.ui @@ -0,0 +1,250 @@ + + + Dialog + + + + 0 + 0 + 610 + 715 + + + + Find Name and Phone + + + background-color:#232323 + + + + + 20 + 470 + 271 + 192 + + + + + 10 + 75 + true + + + + color:white + + + + + + 20 + 130 + 571 + 201 + + + + + 10 + 75 + true + + + + color:white + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:10pt; font-weight:600; font-style:normal;"> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:400;"><br /></p></body></html> + + + + + + 320 + 470 + 271 + 192 + + + + + 10 + 75 + true + + + + color:white + + + + + + 10 + 40 + 581 + 41 + + + + + MS Shell Dlg 2 + 14 + 75 + false + true + false + false + true + + + + color:white; + + + Enter text to find name and phone + + + Qt::AlignCenter + + + + + + 520 + 340 + 71 + 51 + + + + + MS Shell Dlg 2 + 20 + + + + PointingHandCursor + + + background-color:#318CE7; color:white + + + + + + false + + + false + + + false + + + false + + + + + + 20 + 420 + 81 + 41 + + + + + MS Shell Dlg 2 + 14 + 75 + false + true + false + false + true + + + + color:white; + + + Names: + + + Qt::AlignCenter + + + + + + 320 + 420 + 81 + 41 + + + + + MS Shell Dlg 2 + 14 + 75 + false + true + false + false + true + + + + color:white; + + + Phones + + + Qt::AlignCenter + + + + + + 10 + 680 + 591 + 21 + + + + + MS Shell Dlg 2 + 10 + 75 + false + true + false + false + true + + + + color:#EB4C42; + + + + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + diff --git a/Other Students' Projects/3/UiFiles/Main.ui b/Other Students' Projects/3/UiFiles/Main.ui new file mode 100644 index 0000000..79b7d8a --- /dev/null +++ b/Other Students' Projects/3/UiFiles/Main.ui @@ -0,0 +1,374 @@ + + + MainWindow + + + + 0 + 0 + 610 + 715 + + + + My Program + + + background-color:#232323 + + + + + + 87 + 70 + 141 + 20 + + + + + MS Shell Dlg 2 + 22 + 75 + false + true + false + false + true + + + + color:#0FA6E9;background-color: rgba(0,0,0,0%) + + + QFrame::NoFrame + + + QFrame::Plain + + + Contact + + + Qt::AlignBottom|Qt::AlignHCenter + + + + + + 225 + 100 + 151 + 61 + + + + + DS-Digital + 15 + 50 + false + false + + + + color:#0FA6E9 + + + Version + + + Qt::AlignCenter + + + + + + 170 + 210 + 261 + 61 + + + + + MS Shell Dlg 2 + 12 + 75 + true + + + + PointingHandCursor + + + background-color:#0FA6E9; color:white + + + Contacts + + + false + + + false + + + false + + + false + + + + + + 170 + 300 + 261 + 61 + + + + + MS Shell Dlg 2 + 12 + 75 + true + + + + PointingHandCursor + + + background-color:#318CE7; color:white + + + Web Scraping + + + + + + 170 + 390 + 261 + 61 + + + + + MS Shell Dlg 2 + 12 + 75 + true + + + + PointingHandCursor + + + background-color:#318CE7; color:white + + + Find Contacts + + + + + + 335 + 115 + 21 + 31 + + + + color:#0FA6E9 + + + 1 + + + QLCDNumber::Flat + + + 1.000000000000000 + + + + + + 10 + 40 + 581 + 61 + + + + + MS Shell Dlg 2 + 22 + 75 + false + true + false + false + true + + + + color:white; + + + Contact Manager System + + + Qt::AlignCenter + + + + + + 228 + 51 + 151 + 21 + + + + + MS Shell Dlg 2 + 22 + 75 + false + true + false + false + true + + + + color:#0FA6E9;background-color: rgba(0,0,0,0%) + + + QFrame::NoFrame + + + QFrame::Plain + + + Manager + + + Qt::AlignHCenter|Qt::AlignTop + + + + + + 376 + 70 + 141 + 20 + + + + + MS Shell Dlg 2 + 22 + 75 + false + true + false + false + true + + + + color:#0FA6E9;background-color: rgba(0,0,0,0%) + + + QFrame::NoFrame + + + QFrame::Plain + + + System + + + Qt::AlignBottom|Qt::AlignHCenter + + + + + + 170 + 570 + 261 + 61 + + + + + MS Shell Dlg 2 + 12 + 75 + true + + + + PointingHandCursor + + + background-color:#318CE7; color:white + + + Save Database + + + + + + 170 + 480 + 261 + 61 + + + + + MS Shell Dlg 2 + 12 + 75 + true + + + + PointingHandCursor + + + background-color:#318CE7; color:white + + + Load Database + + + label_2 + pushButton_contacts + pushButton_web + pushButton_find + lcdNumber + label_3 + label + label_4 + label_5 + pushButton_save + pushButton_load + + + + + diff --git a/Other Students' Projects/3/UiFiles/Save.ui b/Other Students' Projects/3/UiFiles/Save.ui new file mode 100644 index 0000000..93aa437 --- /dev/null +++ b/Other Students' Projects/3/UiFiles/Save.ui @@ -0,0 +1,168 @@ + + + Dialog + + + + 0 + 0 + 610 + 300 + + + + Dialog + + + background-color:#232323 + + + + + 390 + 150 + 101 + 61 + + + + + MS Shell Dlg 2 + 10 + 75 + true + + + + PointingHandCursor + + + background-color:#318CE7; color:white + + + JSON + + + + + + 10 + 30 + 581 + 71 + + + + + MS Shell Dlg 2 + 14 + 75 + false + true + false + false + true + + + + color:white; + + + Choose one file type below to save database in it + + + Qt::AlignCenter + + + true + + + + + + 250 + 150 + 101 + 61 + + + + + MS Shell Dlg 2 + 10 + 75 + true + + + + PointingHandCursor + + + background-color:#318CE7; color:white + + + TXT + + + + + + 110 + 150 + 101 + 61 + + + + + MS Shell Dlg 2 + 10 + 75 + true + + + + PointingHandCursor + + + background-color:#318CE7; color:white + + + XML + + + + + + 10 + 260 + 591 + 21 + + + + + MS Shell Dlg 2 + 10 + 75 + false + true + false + false + true + + + + color:#EB4C42; + + + + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + diff --git a/Other Students' Projects/3/UiFiles/Web.ui b/Other Students' Projects/3/UiFiles/Web.ui new file mode 100644 index 0000000..577aff3 --- /dev/null +++ b/Other Students' Projects/3/UiFiles/Web.ui @@ -0,0 +1,384 @@ + + + Dialog + + + + 0 + 0 + 610 + 715 + + + + Web Scraping + + + background-color:#232323 + + + + + 10 + 40 + 581 + 41 + + + + + MS Shell Dlg 2 + 14 + 75 + false + true + false + false + true + + + + color:white; + + + Click Get to gather information from website + + + Qt::AlignCenter + + + + + + 170 + 350 + 391 + 41 + + + + + 75 + true + + + + background-color:#318CE7;color:white + + + + + + 30 + 230 + 121 + 41 + + + + + MS Shell Dlg 2 + 11 + 75 + false + true + + + + color:white + + + Name : + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + 170 + 290 + 391 + 41 + + + + + 75 + true + + + + background-color:#318CE7;color:white + + + + + + 30 + 350 + 121 + 41 + + + + + MS Shell Dlg 2 + 11 + 75 + false + true + + + + color:white + + + Phone : + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + 30 + 410 + 121 + 41 + + + + + MS Shell Dlg 2 + 11 + 75 + false + true + + + + color:white + + + Email : + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + 30 + 290 + 121 + 41 + + + + + MS Shell Dlg 2 + 11 + 75 + false + true + + + + color:white + + + Family Name : + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + 470 + 480 + 91 + 51 + + + + + MS Shell Dlg 2 + 11 + 75 + true + + + + PointingHandCursor + + + background-color:#50C878; color:white + + + Add + + + false + + + false + + + false + + + false + + + + + + 170 + 230 + 391 + 41 + + + + + 75 + true + + + + background-color:#318CE7;color:white + + + + + + + + + 170 + 410 + 391 + 41 + + + + + 75 + true + + + + background-color:#318CE7;color:white + + + + + + 10 + 110 + 581 + 41 + + + + + MS Shell Dlg 2 + 14 + 75 + false + true + false + false + true + + + + color:#F4CA16; + + + www.fakenamegenerator.com + + + Qt::AlignCenter + + + + + + 370 + 480 + 91 + 51 + + + + + MS Shell Dlg 2 + 11 + 75 + true + + + + PointingHandCursor + + + background-color:#50C878; color:white + + + Get + + + false + + + false + + + false + + + false + + + + + + 10 + 680 + 591 + 21 + + + + + MS Shell Dlg 2 + 10 + 75 + false + true + false + false + true + + + + color:#EB4C42; + + + + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + diff --git a/Other Students' Projects/3/Web.py b/Other Students' Projects/3/Web.py new file mode 100644 index 0000000..d8ca537 --- /dev/null +++ b/Other Students' Projects/3/Web.py @@ -0,0 +1,200 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file '.\UiFiles\Web.ui' +# +# Created by: PyQt5 UI code generator 5.15.4 +# +# WARNING: Any manual changes made to this file will be lost when pyuic5 is +# run again. Do not edit this file unless you know what you are doing. + + +from PyQt5 import QtCore, QtGui, QtWidgets + + +class Ui_Dialog(object): + def setupUi(self, Dialog): + Dialog.setObjectName("Dialog") + Dialog.resize(610, 715) + Dialog.setStyleSheet("background-color:#232323") + self.label_6 = QtWidgets.QLabel(Dialog) + self.label_6.setGeometry(QtCore.QRect(10, 40, 581, 41)) + font = QtGui.QFont() + font.setFamily("MS Shell Dlg 2") + font.setPointSize(14) + font.setBold(True) + font.setItalic(False) + font.setUnderline(False) + font.setWeight(75) + font.setStrikeOut(False) + font.setKerning(True) + self.label_6.setFont(font) + self.label_6.setStyleSheet("color:white;") + self.label_6.setAlignment(QtCore.Qt.AlignCenter) + self.label_6.setObjectName("label_6") + self.lineEdit_3 = QtWidgets.QLineEdit(Dialog) + self.lineEdit_3.setGeometry(QtCore.QRect(170, 350, 391, 41)) + font = QtGui.QFont() + font.setBold(True) + font.setWeight(75) + self.lineEdit_3.setFont(font) + self.lineEdit_3.setStyleSheet("background-color:#318CE7;color:white") + self.lineEdit_3.setObjectName("lineEdit_3") + self.label_2 = QtWidgets.QLabel(Dialog) + self.label_2.setGeometry(QtCore.QRect(30, 230, 121, 41)) + font = QtGui.QFont() + font.setFamily("MS Shell Dlg 2") + font.setPointSize(11) + font.setBold(True) + font.setItalic(False) + font.setWeight(75) + self.label_2.setFont(font) + self.label_2.setStyleSheet("color:white") + self.label_2.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.label_2.setObjectName("label_2") + self.lineEdit_2 = QtWidgets.QLineEdit(Dialog) + self.lineEdit_2.setGeometry(QtCore.QRect(170, 290, 391, 41)) + font = QtGui.QFont() + font.setBold(True) + font.setWeight(75) + self.lineEdit_2.setFont(font) + self.lineEdit_2.setStyleSheet("background-color:#318CE7;color:white") + self.lineEdit_2.setObjectName("lineEdit_2") + self.label_4 = QtWidgets.QLabel(Dialog) + self.label_4.setGeometry(QtCore.QRect(30, 350, 121, 41)) + font = QtGui.QFont() + font.setFamily("MS Shell Dlg 2") + font.setPointSize(11) + font.setBold(True) + font.setItalic(False) + font.setWeight(75) + self.label_4.setFont(font) + self.label_4.setStyleSheet("color:white") + self.label_4.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.label_4.setObjectName("label_4") + self.label_5 = QtWidgets.QLabel(Dialog) + self.label_5.setGeometry(QtCore.QRect(30, 410, 121, 41)) + font = QtGui.QFont() + font.setFamily("MS Shell Dlg 2") + font.setPointSize(11) + font.setBold(True) + font.setItalic(False) + font.setWeight(75) + self.label_5.setFont(font) + self.label_5.setStyleSheet("color:white") + self.label_5.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.label_5.setObjectName("label_5") + self.label_3 = QtWidgets.QLabel(Dialog) + self.label_3.setGeometry(QtCore.QRect(30, 290, 121, 41)) + font = QtGui.QFont() + font.setFamily("MS Shell Dlg 2") + font.setPointSize(11) + font.setBold(True) + font.setItalic(False) + font.setWeight(75) + self.label_3.setFont(font) + self.label_3.setStyleSheet("color:white") + self.label_3.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.label_3.setObjectName("label_3") + self.pushButton_add = QtWidgets.QPushButton(Dialog) + self.pushButton_add.setGeometry(QtCore.QRect(470, 480, 91, 51)) + font = QtGui.QFont() + font.setFamily("MS Shell Dlg 2") + font.setPointSize(11) + font.setBold(True) + font.setWeight(75) + self.pushButton_add.setFont(font) + self.pushButton_add.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) + self.pushButton_add.setStyleSheet("background-color:#50C878; color:white") + self.pushButton_add.setCheckable(False) + self.pushButton_add.setAutoDefault(False) + self.pushButton_add.setDefault(False) + self.pushButton_add.setFlat(False) + self.pushButton_add.setObjectName("pushButton_add") + self.lineEdit = QtWidgets.QLineEdit(Dialog) + self.lineEdit.setGeometry(QtCore.QRect(170, 230, 391, 41)) + font = QtGui.QFont() + font.setBold(True) + font.setWeight(75) + self.lineEdit.setFont(font) + self.lineEdit.setStyleSheet("background-color:#318CE7;color:white") + self.lineEdit.setText("") + self.lineEdit.setObjectName("lineEdit") + self.lineEdit_4 = QtWidgets.QLineEdit(Dialog) + self.lineEdit_4.setGeometry(QtCore.QRect(170, 410, 391, 41)) + font = QtGui.QFont() + font.setBold(True) + font.setWeight(75) + self.lineEdit_4.setFont(font) + self.lineEdit_4.setStyleSheet("background-color:#318CE7;color:white") + self.lineEdit_4.setObjectName("lineEdit_4") + self.label_7 = QtWidgets.QLabel(Dialog) + self.label_7.setGeometry(QtCore.QRect(10, 110, 581, 41)) + font = QtGui.QFont() + font.setFamily("MS Shell Dlg 2") + font.setPointSize(14) + font.setBold(True) + font.setItalic(False) + font.setUnderline(False) + font.setWeight(75) + font.setStrikeOut(False) + font.setKerning(True) + self.label_7.setFont(font) + self.label_7.setStyleSheet("color:#F4CA16;") + self.label_7.setAlignment(QtCore.Qt.AlignCenter) + self.label_7.setObjectName("label_7") + self.pushButton_get = QtWidgets.QPushButton(Dialog) + self.pushButton_get.setGeometry(QtCore.QRect(370, 480, 91, 51)) + font = QtGui.QFont() + font.setFamily("MS Shell Dlg 2") + font.setPointSize(11) + font.setBold(True) + font.setWeight(75) + self.pushButton_get.setFont(font) + self.pushButton_get.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) + self.pushButton_get.setStyleSheet("background-color:#50C878; color:white") + self.pushButton_get.setCheckable(False) + self.pushButton_get.setAutoDefault(False) + self.pushButton_get.setDefault(False) + self.pushButton_get.setFlat(False) + self.pushButton_get.setObjectName("pushButton_get") + self.label_error3 = QtWidgets.QLabel(Dialog) + self.label_error3.setGeometry(QtCore.QRect(10, 680, 591, 21)) + font = QtGui.QFont() + font.setFamily("MS Shell Dlg 2") + font.setPointSize(10) + font.setBold(True) + font.setItalic(False) + font.setUnderline(False) + font.setWeight(75) + font.setStrikeOut(False) + font.setKerning(True) + self.label_error3.setFont(font) + self.label_error3.setStyleSheet("color:#EB4C42;") + self.label_error3.setText("") + self.label_error3.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.label_error3.setObjectName("label_error3") + + self.retranslateUi(Dialog) + QtCore.QMetaObject.connectSlotsByName(Dialog) + + def retranslateUi(self, Dialog): + _translate = QtCore.QCoreApplication.translate + Dialog.setWindowTitle(_translate("Dialog", "Web Scraping")) + self.label_6.setText(_translate("Dialog", "Click Get to gather information from website")) + self.label_2.setText(_translate("Dialog", "Name :")) + self.label_4.setText(_translate("Dialog", "Phone :")) + self.label_5.setText(_translate("Dialog", "Email :")) + self.label_3.setText(_translate("Dialog", "Family Name :")) + self.pushButton_add.setText(_translate("Dialog", "Add")) + self.label_7.setText(_translate("Dialog", "www.fakenamegenerator.com")) + self.pushButton_get.setText(_translate("Dialog", "Get")) + + +if __name__ == "__main__": + import sys + app = QtWidgets.QApplication(sys.argv) + Dialog = QtWidgets.QDialog() + ui = Ui_Dialog() + ui.setupUi(Dialog) + Dialog.show() + sys.exit(app.exec_()) diff --git a/Other Students' Projects/3/contacts.txt b/Other Students' Projects/3/contacts.txt new file mode 100644 index 0000000..e69de29 diff --git a/Other Students' Projects/3/keep.txt b/Other Students' Projects/3/keep.txt new file mode 100644 index 0000000..997abae --- /dev/null +++ b/Other Students' Projects/3/keep.txt @@ -0,0 +1,23 @@ +libraries: + pip install pyqt5-tools + pip install PyQt5 + pip install requests + pip install dicttoxml + pip install lxml + pip install beautifulsoup4 + +Designer: + C:\Program Files\Python37\Lib\site-packages\qt5_applications\Qt\bin\designer.exe + +Ui to Py: + Pyuic5 -x -o .\Contacts.py .\UiFiles\Contacts.ui + Pyuic5 -x -o .\Edit.py .\UiFiles\Edit.ui + Pyuic5 -x -o .\Find.py .\UiFiles\Find.ui + Pyuic5 -x -o .\Main.py .\UiFiles\Main.ui + Pyuic5 -x -o .\Web.py .\UiFiles\Web.ui + Pyuic5 -x -o .\Save.py .\UiFiles\Save.ui + +Py to exe: + pyinstaller mainProgram.py --name M_CMS --onefile --noconsole + + diff --git a/Other Students' Projects/3/mainProgram.py b/Other Students' Projects/3/mainProgram.py new file mode 100644 index 0000000..1f6f5d9 --- /dev/null +++ b/Other Students' Projects/3/mainProgram.py @@ -0,0 +1,339 @@ +import ast +from lxml import etree +from bs4 import BeautifulSoup +import re +import sys +import json +import requests +from dicttoxml import dicttoxml +from xml.dom.minidom import parseString +from PyQt5 import QtCore, QtWidgets +from Main import Ui_MainWindow as PMain +from Find import Ui_Dialog as PFind +from Edit import Ui_Dialog as PEdit +from Contacts import Ui_Dialog as PContacts +from Web import Ui_Dialog as PWeb +from Save import Ui_Dialog as PSave + +# Hidpi scaling +QtWidgets.QApplication.setAttribute(QtCore.Qt.AA_EnableHighDpiScaling, True) +# use Hidpi icons +QtWidgets.QApplication.setAttribute(QtCore.Qt.AA_UseHighDpiPixmaps, True) + + +class RunManager(PMain): + def setupUi(self, MenuWindow): + super().setupUi(MenuWindow) + + def retranslateUi(self, MenuWindow): + super().retranslateUi(MenuWindow) + + def bases(self): + self.contacts = [] + self.default_load() + + def open_page_contacts(self): + contacts_app = QtWidgets.QDialog() + self.PContacts = PContacts() + self.PContacts.setupUi(contacts_app) + self.table_update('name') + + self.PContacts.pushButton_name.clicked.connect(lambda x: self.table_update('name')) + self.PContacts.pushButton_family.clicked.connect(lambda x: self.table_update('family')) + self.PContacts.pushButton_refresh.clicked.connect(lambda x: self.table_update('name')) + + self.PContacts.pushButton_add.clicked.connect(lambda x: self.open_page_edit('add')) + self.PContacts.pushButton_change.clicked.connect(lambda x: self.open_page_edit('change')) + self.PContacts.pushButton_remove.clicked.connect(self.remove_contact) + + contacts_app.show() + contacts_app.exec_() + + def remove_contact(self): + index = self.PContacts.tableWidget.currentRow() + if index >= 0: + info = [self.PContacts.tableWidget.item(index, 0).text(), self.PContacts.tableWidget.item(index, 1).text(), + self.PContacts.tableWidget.item(index, 2).text(), self.PContacts.tableWidget.item(index, 3).text()] + self.PContacts.label_error1.setText("") + self.contacts.remove({f'{info[0]} {info[1]}': info}) + self.table_update('name') + try: + self.combobox_update() + except: + pass + + else: + self.PContacts.label_error1.setText("Choose a contact from table") + + def open_page_edit(self, state): + if state == "change" and self.contacts == []: + self.PContacts.label_error1.setText("No contact to change") + else: + self.PContacts.label_error1.setText("") + + edit_app = QtWidgets.QDialog() + self.PEdit = PEdit() + self.PEdit.setupUi(edit_app) + + self.combobox_update() + try: + self.table_update('name') + except: + pass + self.PEdit.comboBox.currentIndexChanged.connect(self.lineedit_update) + + if state == "add": + self.PEdit.label_7.setStyleSheet("color:#EB4C42;") + self.PEdit.comboBox.setStyleSheet("background-color:#EB4C42;color:white") + self.PEdit.pushButton_do.setText("Add") + self.PEdit.label_error2.setText("") + self.PEdit.pushButton_do.clicked.connect(lambda x: self.edit_contacts(state)) + + else: + self.PEdit.comboBox.setCurrentIndex(-1) + self.PEdit.label_7.setStyleSheet("color:white;") + self.PEdit.comboBox.setStyleSheet("background-color:#318CE7;color:white") + self.PEdit.pushButton_do.setText("Change") + self.PEdit.label_error2.setText("") + + self.PEdit.pushButton_do.clicked.connect(lambda x: self.edit_contacts(state)) + + edit_app.show() + edit_app.exec_() + + def open_page_find(self): + find_app = QtWidgets.QDialog() + self.PFind = PFind() + self.PFind.setupUi(find_app) + + self.PFind.pushButton_dox.clicked.connect(self.seprate_name_phone) + + find_app.show() + find_app.exec_() + + def edit_contacts(self, state): + info = [self.PEdit.lineEdit.text(), self.PEdit.lineEdit_2.text(), + self.PEdit.lineEdit_3.text(), self.PEdit.lineEdit_4.text()] + + if state == "add": + if info[0] == "": + self.PEdit.label_error2.setText("Name is empty") + else: + self.PEdit.label_error2.setText("") + + if self.email_check(info[3]) == "ok": + self.PEdit.label_error2.setText("") + self.contacts.append({info[0] + " " + info[1]: info}) + self.combobox_update() + self.PEdit.label_error2.setText("Done!") + try: + self.table_update('name') + except: + pass + else: + self.PEdit.label_error2.setText("Invalid email address") + + else: + if self.PEdit.comboBox.currentIndex() >= 0: + if info[0] == "": + self.PEdit.label_error2.setText("Name is empty") + else: + self.PEdit.label_error2.setText("") + + if self.email_check(info[3]) == "ok": + self.PEdit.label_error2.setText("") + self.contacts[self.PEdit.comboBox.currentIndex()] = {info[0] + " " + info[1]: info} + self.combobox_update() + try: + self.table_update('name') + except: + pass + + else: + self.PEdit.label_error2.setText("Invalid email address") + else: + self.PEdit.label_error2.setText("Choose a contact to change") + + def email_check(self, address): + if address == "": + return "ok" + else: + regex = '^[0-9a-z]+[\._]?[0-9a-z]+[@][0-9a-z]+[.][0-9a-z]{2,3}$' + + if re.search(regex, address.lower().replace(" ", "")): + return "ok" + else: + return "invlaid" + + def table_update(self, state): + contacts_list = [list(i.values())[0] for i in self.contacts] + if state == 'name': + contacts = [i for i in sorted(contacts_list, key=lambda item: item[0])] + else: + contacts = [i for i in sorted(contacts_list, key=lambda item: item[1])] + + self.PContacts.tableWidget.setRowCount(0) + for i in range(0, len(contacts)): + self.PContacts.tableWidget.insertRow(i) + self.PContacts.tableWidget.setItem(i, 0, QtWidgets.QTableWidgetItem(contacts[i][0])) + self.PContacts.tableWidget.setItem(i, 1, QtWidgets.QTableWidgetItem(contacts[i][1])) + self.PContacts.tableWidget.setItem(i, 2, QtWidgets.QTableWidgetItem(contacts[i][2])) + self.PContacts.tableWidget.setItem(i, 3, QtWidgets.QTableWidgetItem(contacts[i][3])) + + def combobox_update(self): + self.PEdit.comboBox.clear() + if self.contacts != []: + self.PEdit.comboBox.addItems([list(i.keys())[0] for i in self.contacts]) + index = self.PEdit.comboBox.count() + self.PEdit.comboBox.setCurrentIndex(index-1) + + def lineedit_update(self): + index = self.PEdit.comboBox.currentIndex() + if index >= 0: + contact_info = list(self.contacts[index].values())[0] + self.PEdit.lineEdit.setText(contact_info[0]) + self.PEdit.lineEdit_2.setText(contact_info[1]) + self.PEdit.lineEdit_3.setText(contact_info[2]) + self.PEdit.lineEdit_4.setText(contact_info[3]) + else: + self.PEdit.lineEdit.setText('') + self.PEdit.lineEdit_2.setText('') + self.PEdit.lineEdit_3.setText('') + self.PEdit.lineEdit_4.setText('') + + def seprate_name_phone(self): + text = self.PFind.textEdit.toPlainText() + names = re.findall('[@]([\w]+)', text) + phones = re.findall('[#]([\d]+)', text) + + self.PFind.textBrowser.setText(", ".join(names)) + self.PFind.textBrowser_2.setText(", ".join(phones)) + + def open_save_page(self): + save_app = QtWidgets.QDialog() + self.PSave = PSave() + self.PSave.setupUi(save_app) + + self.PSave.pushButton_xml.clicked.connect(lambda x: self.manual_save('xml')) + self.PSave.pushButton_json.clicked.connect(lambda x: self.manual_save('json')) + self.PSave.pushButton_txt.clicked.connect(lambda x: self.manual_save('txt')) + + save_app.show() + save_app.exec_() + + def default_load(self): + try: + self.manual_load("txt") + except: + try: + self.manual_save('txt') + except: + pass + + def manual_load(self, file): + if file == "xml": + pass + elif file == "json": + pass + else: + self.contacts = [] + with open("contacts.txt", 'r') as f: + lists = f.readlines() + tempList = [] + for i in lists: + tempList.append(ast.literal_eval(i)) + + for i in tempList: + self.contacts.append({i[0] + " " + i[1]: i}) + + def manual_save(self, file): + if file == "xml": + with open("contacts.xml", 'w') as f: + xml = parseString(dicttoxml(self.contacts, attr_type=False, custom_root='contact')) + tab = xml.toprettyxml() + f.write(tab) + + elif file == "json": + with open("contacts.json", 'w') as f: + if self.contacts: + json.dump(self.contacts, f) + else: + f.write("{}") + + else: + with open("contacts.txt", 'w') as f: + tempList = [] + for i in self.contacts: + tempList.append(list(i.values())[0]) + + list_str = "\n".join([str(i) for i in tempList]) + f.write(list_str) + + def open_page_web(self): + web_app = QtWidgets.QDialog() + self.PWeb = PWeb() + self.PWeb.setupUi(web_app) + + self.PWeb.pushButton_get.clicked.connect(self.get_online_contact) + self.PWeb.pushButton_add.clicked.connect(self.lineedit_update2) + + web_app.show() + web_app.exec_() + + def lineedit_update2(self): + info = [self.PWeb.lineEdit.text(), self.PWeb.lineEdit_2.text(), + self.PWeb.lineEdit_3.text(), self.PWeb.lineEdit_4.text()] + + if info[0] == "": + self.PWeb.label_error3.setText("Name is empty") + else: + self.PWeb.label_error3.setText("") + + if self.email_check(info[3]) == "ok": + self.PWeb.label_error3.setText("") + self.contacts.append({info[0] + " " + info[1]: info}) + self.PWeb.label_error3.setText("Done!") + try: + self.table_update('name') + except: + pass + else: + self.PWeb.label_error3.setText("Invalid email address") + + def get_online_contact(self): + self.PWeb.label_error3.setText("") + try: + webpage = requests.get("http://www.fakenamegenerator.com", headers={'User-Agent': 'Chrome'}) + work = etree.HTML(str(BeautifulSoup(webpage.content, "html.parser"))) + + name = work.xpath('/html/body/div[2]/div/div/div[1]/div/div[3]/div[2]/div[2]/div/div[1]/h3')[0].text + family = name.split()[2] + name = name.split()[0] + phone = '+1' + work.xpath('/html/body/div[2]/div/div/div[1]/div/div[3]/div[2]/div[2]/div/div[2]/dl[4]/dd/text()')[0] + email = work.xpath('/html/body/div[2]/div/div/div[1]/div/div[3]/div[2]/div[2]/div/div[2]/dl[9]/dd/text()')[0].replace(" ", "") + + + self.PWeb.lineEdit.setText(name) + self.PWeb.lineEdit_2.setText(family) + self.PWeb.lineEdit_3.setText(phone) + self.PWeb.lineEdit_4.setText(email) + except: + self.PWeb.label_error3.setText("No connection to internet") + + +if __name__ == "__main__": + ori_app = QtWidgets.QApplication(sys.argv) + window = QtWidgets.QMainWindow() + + obj = RunManager() + obj.setupUi(window) + obj.bases() + + obj.pushButton_contacts.clicked.connect(obj.open_page_contacts) + obj.pushButton_web.clicked.connect(obj.open_page_web) + obj.pushButton_find.clicked.connect(obj.open_page_find) + obj.pushButton_save.clicked.connect(obj.open_save_page) + obj.pushButton_load.clicked.connect(obj.manual_load) + + window.show() + sys.exit(ori_app.exec_()) diff --git a/Other Students' Projects/4/.idea/.gitignore b/Other Students' Projects/4/.idea/.gitignore new file mode 100644 index 0000000..f332a56 --- /dev/null +++ b/Other Students' Projects/4/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Datasource local storage ignored files +/../../../../../../:\University\2nd Term\Others Homeworks\Mohsen\.idea/dataSources/ +/dataSources.local.xml +# Editor-based HTTP Client requests +/httpRequests/ diff --git a/Other Students' Projects/4/.idea/Mohsen.iml b/Other Students' Projects/4/.idea/Mohsen.iml new file mode 100644 index 0000000..d0876a7 --- /dev/null +++ b/Other Students' Projects/4/.idea/Mohsen.iml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/Other Students' Projects/4/.idea/inspectionProfiles/Project_Default.xml b/Other Students' Projects/4/.idea/inspectionProfiles/Project_Default.xml new file mode 100644 index 0000000..6eeafb9 --- /dev/null +++ b/Other Students' Projects/4/.idea/inspectionProfiles/Project_Default.xml @@ -0,0 +1,24 @@ + + + + \ No newline at end of file diff --git a/Other Students' Projects/4/.idea/inspectionProfiles/profiles_settings.xml b/Other Students' Projects/4/.idea/inspectionProfiles/profiles_settings.xml new file mode 100644 index 0000000..105ce2d --- /dev/null +++ b/Other Students' Projects/4/.idea/inspectionProfiles/profiles_settings.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/Other Students' Projects/4/.idea/misc.xml b/Other Students' Projects/4/.idea/misc.xml new file mode 100644 index 0000000..a2e120d --- /dev/null +++ b/Other Students' Projects/4/.idea/misc.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/Other Students' Projects/4/.idea/modules.xml b/Other Students' Projects/4/.idea/modules.xml new file mode 100644 index 0000000..5f598b6 --- /dev/null +++ b/Other Students' Projects/4/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/Other Students' Projects/4/ContactManagerSystem.py b/Other Students' Projects/4/ContactManagerSystem.py new file mode 100644 index 0000000..d220ee4 --- /dev/null +++ b/Other Students' Projects/4/ContactManagerSystem.py @@ -0,0 +1,243 @@ +import requests +from PyQt5 import QtCore, QtWidgets +import sys +import re +import json +from bs4 import BeautifulSoup +from Files.Window import Ui_MainWindow as WINDOW +from Files.Text import Ui_Dialog as TEXT +from Files.Add import Ui_Dialog as ADD +from Files.Scraping import Ui_Dialog as SCRAP +from Files.Edit_List import Ui_Dialog as EDITLIST + +QtWidgets.QApplication.setAttribute(QtCore.Qt.AA_EnableHighDpiScaling, True) +QtWidgets.QApplication.setAttribute(QtCore.Qt.AA_UseHighDpiPixmaps, True) + + +class GUI(WINDOW): + def setupUi(self, WINDOW): + super().setupUi(WINDOW) + + def retranslateUi(self, WINDOW): + super().retranslateUi(WINDOW) + + def listMaker(self): + self.MainList = [] + + def dialogEditList(self): + QDialog = QtWidgets.QDialog() + self.EL = EDITLIST() + self.EL.setupUi(QDialog) + + self.tableUpdate() + self.EL.pushButtonAdd.clicked.connect(self.dialogAdd) + self.EL.pushButtonRemove.clicked.connect(self.deleteCon) + self.EL.pushButtonEdit.clicked.connect(self.editCon) + self.EL.pushButtonFName.clicked.connect(self.SortFName) + self.EL.pushButton_LName.clicked.connect(self.SortLName) + + QDialog.show() + QDialog.exec_() + + def dialogAdd(self): + QDialog = QtWidgets.QDialog() + self.Add = ADD() + self.Add.setupUi(QDialog) + + self.Add.pushButton_Add.clicked.connect(lambda x: self.addCon(self.Add)) + + QDialog.show() + QDialog.exec_() + + def dialogScrap(self): + QDialog = QtWidgets.QDialog() + self.Scr = SCRAP() + self.Scr.setupUi(QDialog) + + self.Scr.pushButton_Web.clicked.connect(self.webScraping) + self.Scr.pushButton_Add.clicked.connect(lambda x: self.addCon(self.Scr)) + + QDialog.show() + QDialog.exec_() + + def dialogText(self): + QDialog = QtWidgets.QDialog() + self.Text = TEXT() + self.Text.setupUi(QDialog) + + self.Text.pushButton_Identify.clicked.connect(self.identifyCon) + + QDialog.show() + QDialog.exec_() + + def addCon(self, cls): + cls.labelError.clear() + fName = cls.lineEdit.text() + lName = cls.lineEdit_2.text() + email = cls.lineEdit_3.text() + phone = cls.lineEdit_4.text() + + help = True + + if fName == "": + help = False + cls.labelError.setText("Empty Name!") + + elif self.EmailCheck(email) != True: + help = False + cls.labelError.setText("Invalid Email!") + + if help: + contact = {"fname": fName, "lname": lName, "email": email, "phone": phone} + + if contact not in self.MainList: + self.MainList.append(contact) + + cls.lineEdit.clear() + cls.lineEdit_2.clear() + cls.lineEdit_3.clear() + cls.lineEdit_4.clear() + cls.labelError.clear() + + try: + self.tableUpdate() + except: + pass + + def deleteCon(self): + self.EL.labelError.clear() + contact = self.EL.tableWidgetListEdit.currentRow() + + if contact != -1: + self.MainList.pop(contact) + self.tableUpdate() + else: + self.EL.labelError.setText("No Contact Selected !") + + def editCon(self): + self.EL.labelError.clear() + + rows = self.EL.tableWidgetListEdit.rowCount() + contacts = [] + for i in range(rows): + contact = {"fname": self.EL.tableWidgetListEdit.item(i, 0).text(), "lname": self.EL.tableWidgetListEdit.item(i, 1).text(), + "email": self.EL.tableWidgetListEdit.item(i, 2).text(), "phone": self.EL.tableWidgetListEdit.item(i, 3).text()} + + if contacts == self.MainList: + self.EL.labelError.setText("Nothing Changed !") + + else: + self.EL.labelError.setText("Changes Saved To Program !") + self.MainList = contacts + + def SortFName(self): + self.MainList = [i for i in sorted(self.MainList, key=lambda j: j["fname"])] + self.tableUpdate() + + def SortLName(self): + self.MainList = [i for i in sorted(self.MainList, key=lambda j: j["lname"])] + self.tableUpdate() + + def EmailCheck(self, email): + reg = '^[A-Za-z0-9]+[\._]?[A-Za-z0-9]+[@]\w+[.][A-Za-z]{2,3}$' + + if re.search(reg, email.lower()) or email == "": + return True + else: + return False + + def identifyCon(self): + input = self.Text.textEdit.toPlainText() + + allNumber = re.findall('[#][0-9]+', input) + allName = re.findall('[@][A-Za-z]+', input) + + numbers = "" + for i in allNumber: + numbers = numbers + i.replace("#", "") + "\n" + + name = "" + for i in allName: + name = name + i.replace("@", "") + "\n" + + self.Text.textEdit_2.setText("Phones:\n" + numbers + "\nNames:\n" + name) + + def clickOpen(self): + try: + self.labelError.clear() + with open('TxtDatabase.txt', 'r') as file: + self.MainList = json.loads(file.read()) + self.labelError.setText("Opened Database successfully.") + + try: + self.tableUpdate() + except: + pass + + except: + self.labelError.setText("No Database were found, a new one created.") + self.clickSave("no") + + def clickSave(self, clear="yes"): + try: + if clear == "yes": + self.labelError.clear() + + with open('TxtDatabase.txt', 'w') as file: + json.dump(self.MainList, file) + self.labelError.setText("Saved Database successfully.") + except: + self.labelError.setText("Can't Save txt file, it might be open by other program.") + + def tableUpdate(self): + self.EL.tableWidgetListEdit.setRowCount(0) + + for i in range(len(self.MainList)): + self.EL.tableWidgetListEdit.insertRow(i) + info = self.MainList[i] + self.EL.tableWidgetListEdit.setItem(i, 0, QtWidgets.QTableWidgetItem(info['fname'])) + self.EL.tableWidgetListEdit.setItem(i, 1, QtWidgets.QTableWidgetItem(info['lname'])) + self.EL.tableWidgetListEdit.setItem(i, 2, QtWidgets.QTableWidgetItem(info['phone'])) + self.EL.tableWidgetListEdit.setItem(i, 3, QtWidgets.QTableWidgetItem(info['email'])) + + def webScraping(self): + try: + self.Scr.labelError.clear() + response = requests.get('https://www.fakenamegenerator.com', headers={'user-agent': 'CMS'}) + soup = BeautifulSoup(response.text, 'html.parser') + fname, _, lname = str(soup.find_all("h3")[0]).replace("

", "").replace("

", "").split() + phone = "+1" + str(soup.find_all("dd")[3]).replace("
", "").replace("
", "") + email = str(soup.find_all("dd")[8]).replace("
", "").split()[0] + + self.Scr.lineEdit.setText(fname) + self.Scr.lineEdit_2.setText(lname) + self.Scr.lineEdit_3.setText(email) + self.Scr.lineEdit_4.setText(phone) + + except: + self.Scr.labelError.setText("Problem In Internet Connection !") + + +if __name__ == '__main__': + QApplication = QtWidgets.QApplication(sys.argv) + QMainWindow = QtWidgets.QMainWindow() + + obj = GUI() + obj.setupUi(QMainWindow) + + obj.listMaker() + obj.clickOpen() + + obj.pushButtonEditList.clicked.connect(obj.dialogEditList) + obj.pushButtonIdentufy.clicked.connect(obj.dialogText) + obj.pushButtonWeb.clicked.connect(obj.dialogScrap) + obj.pushButtonOpen.clicked.connect(obj.clickOpen) + obj.pushButtonSave.clicked.connect(obj.clickSave) + + QMainWindow.show() + sys.exit(QApplication.exec_()) + + + + + diff --git a/Other Students' Projects/4/Files/Add.py b/Other Students' Projects/4/Files/Add.py new file mode 100644 index 0000000..0ce9c59 --- /dev/null +++ b/Other Students' Projects/4/Files/Add.py @@ -0,0 +1,154 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file 'Files\Add.ui' +# +# Created by: PyQt5 UI code generator 5.15.4 +# +# WARNING: Any manual changes made to this file will be lost when pyuic5 is +# run again. Do not edit this file unless you know what you are doing. + + +from PyQt5 import QtCore, QtGui, QtWidgets + + +class Ui_Dialog(object): + def setupUi(self, Dialog): + Dialog.setObjectName("Dialog") + Dialog.resize(630, 673) + Dialog.setStyleSheet("background-color:#002942") + self.lineEdit = QtWidgets.QLineEdit(Dialog) + self.lineEdit.setGeometry(QtCore.QRect(20, 160, 591, 51)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.lineEdit.setFont(font) + self.lineEdit.setStyleSheet("color:white") + self.lineEdit.setObjectName("lineEdit") + self.label = QtWidgets.QLabel(Dialog) + self.label.setGeometry(QtCore.QRect(0, 10, 621, 81)) + font = QtGui.QFont() + font.setPointSize(48) + font.setBold(True) + font.setWeight(75) + self.label.setFont(font) + self.label.setStyleSheet("color:white") + self.label.setAlignment(QtCore.Qt.AlignCenter) + self.label.setObjectName("label") + self.line_4 = QtWidgets.QFrame(Dialog) + self.line_4.setGeometry(QtCore.QRect(10, 90, 611, 20)) + self.line_4.setStyleSheet("color:#FFFFFF") + self.line_4.setFrameShadow(QtWidgets.QFrame.Plain) + self.line_4.setFrameShape(QtWidgets.QFrame.HLine) + self.line_4.setObjectName("line_4") + self.label_2 = QtWidgets.QLabel(Dialog) + self.label_2.setGeometry(QtCore.QRect(20, 120, 591, 31)) + font = QtGui.QFont() + font.setPointSize(14) + font.setBold(True) + font.setWeight(75) + self.label_2.setFont(font) + self.label_2.setStyleSheet("color:white") + self.label_2.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.label_2.setObjectName("label_2") + self.lineEdit_2 = QtWidgets.QLineEdit(Dialog) + self.lineEdit_2.setGeometry(QtCore.QRect(20, 270, 591, 51)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.lineEdit_2.setFont(font) + self.lineEdit_2.setStyleSheet("color:white") + self.lineEdit_2.setObjectName("lineEdit_2") + self.label_3 = QtWidgets.QLabel(Dialog) + self.label_3.setGeometry(QtCore.QRect(20, 230, 591, 31)) + font = QtGui.QFont() + font.setPointSize(14) + font.setBold(True) + font.setWeight(75) + self.label_3.setFont(font) + self.label_3.setStyleSheet("color:white") + self.label_3.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.label_3.setObjectName("label_3") + self.lineEdit_3 = QtWidgets.QLineEdit(Dialog) + self.lineEdit_3.setGeometry(QtCore.QRect(20, 380, 591, 51)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.lineEdit_3.setFont(font) + self.lineEdit_3.setStyleSheet("color:white") + self.lineEdit_3.setObjectName("lineEdit_3") + self.label_4 = QtWidgets.QLabel(Dialog) + self.label_4.setGeometry(QtCore.QRect(20, 340, 591, 31)) + font = QtGui.QFont() + font.setPointSize(14) + font.setBold(True) + font.setWeight(75) + self.label_4.setFont(font) + self.label_4.setStyleSheet("color:white") + self.label_4.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.label_4.setObjectName("label_4") + self.label_5 = QtWidgets.QLabel(Dialog) + self.label_5.setGeometry(QtCore.QRect(20, 450, 591, 31)) + font = QtGui.QFont() + font.setPointSize(14) + font.setBold(True) + font.setWeight(75) + self.label_5.setFont(font) + self.label_5.setStyleSheet("color:white") + self.label_5.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.label_5.setObjectName("label_5") + self.lineEdit_4 = QtWidgets.QLineEdit(Dialog) + self.lineEdit_4.setGeometry(QtCore.QRect(20, 490, 591, 51)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.lineEdit_4.setFont(font) + self.lineEdit_4.setStyleSheet("color:white") + self.lineEdit_4.setObjectName("lineEdit_4") + self.pushButton_Add = QtWidgets.QPushButton(Dialog) + self.pushButton_Add.setGeometry(QtCore.QRect(560, 560, 51, 51)) + font = QtGui.QFont() + font.setPointSize(15) + font.setBold(True) + font.setWeight(75) + self.pushButton_Add.setFont(font) + self.pushButton_Add.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) + self.pushButton_Add.setStyleSheet("background-color:#F4CA16;border-radius:25px;") + self.pushButton_Add.setObjectName("pushButton_Add") + self.labelError = QtWidgets.QLabel(Dialog) + self.labelError.setGeometry(QtCore.QRect(10, 620, 611, 31)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.labelError.setFont(font) + self.labelError.setStyleSheet("color:#9ACD32") + self.labelError.setText("") + self.labelError.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.labelError.setObjectName("labelError") + + self.retranslateUi(Dialog) + QtCore.QMetaObject.connectSlotsByName(Dialog) + + def retranslateUi(self, Dialog): + _translate = QtCore.QCoreApplication.translate + Dialog.setWindowTitle(_translate("Dialog", "Add")) + self.label.setText(_translate("Dialog", "Add Contact")) + self.label_2.setText(_translate("Dialog", "First Name:")) + self.label_3.setText(_translate("Dialog", "Last Name:")) + self.label_4.setText(_translate("Dialog", "Email Address:")) + self.label_5.setText(_translate("Dialog", "Phone Number:")) + self.pushButton_Add.setText(_translate("Dialog", "+")) + + +if __name__ == "__main__": + import sys + app = QtWidgets.QApplication(sys.argv) + Dialog = QtWidgets.QDialog() + ui = Ui_Dialog() + ui.setupUi(Dialog) + Dialog.show() + sys.exit(app.exec_()) diff --git a/Other Students' Projects/4/Files/Add.ui b/Other Students' Projects/4/Files/Add.ui new file mode 100644 index 0000000..51b910f --- /dev/null +++ b/Other Students' Projects/4/Files/Add.ui @@ -0,0 +1,303 @@ + + + Dialog + + + + 0 + 0 + 630 + 673 + + + + Add + + + background-color:#002942 + + + + + 20 + 160 + 591 + 51 + + + + + 10 + 75 + true + + + + color:white + + + + + + 0 + 10 + 621 + 81 + + + + + 48 + 75 + true + + + + color:white + + + Add Contact + + + Qt::AlignCenter + + + + + + 10 + 90 + 611 + 20 + + + + color:#FFFFFF + + + QFrame::Plain + + + Qt::Horizontal + + + + + + 20 + 120 + 591 + 31 + + + + + 14 + 75 + true + + + + color:white + + + First Name: + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + 20 + 270 + 591 + 51 + + + + + 10 + 75 + true + + + + color:white + + + + + + 20 + 230 + 591 + 31 + + + + + 14 + 75 + true + + + + color:white + + + Last Name: + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + 20 + 380 + 591 + 51 + + + + + 10 + 75 + true + + + + color:white + + + + + + 20 + 340 + 591 + 31 + + + + + 14 + 75 + true + + + + color:white + + + Email Address: + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + 20 + 450 + 591 + 31 + + + + + 14 + 75 + true + + + + color:white + + + Phone Number: + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + 20 + 490 + 591 + 51 + + + + + 10 + 75 + true + + + + color:white + + + + + + 560 + 560 + 51 + 51 + + + + + 15 + 75 + true + + + + PointingHandCursor + + + background-color:#F4CA16;border-radius:25px; + + + + + + + + + + 10 + 620 + 611 + 31 + + + + + 10 + 75 + true + + + + color:#9ACD32 + + + + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + diff --git a/Other Students' Projects/4/Files/Edit-List.py b/Other Students' Projects/4/Files/Edit-List.py new file mode 100644 index 0000000..c16e716 --- /dev/null +++ b/Other Students' Projects/4/Files/Edit-List.py @@ -0,0 +1,10 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file 'Files\Edit-List.ui' +# +# Created by: PyQt5 UI code generator 5.15.4 +# +# WARNING: Any manual changes made to this file will be lost when pyuic5 is +# run again. Do not edit this file unless you know what you are doing. + + diff --git a/Other Students' Projects/4/Files/Edit_List.py b/Other Students' Projects/4/Files/Edit_List.py new file mode 100644 index 0000000..eb7c99f --- /dev/null +++ b/Other Students' Projects/4/Files/Edit_List.py @@ -0,0 +1,177 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file 'Files\Edit_List.ui' +# +# Created by: PyQt5 UI code generator 5.15.4 +# +# WARNING: Any manual changes made to this file will be lost when pyuic5 is +# run again. Do not edit this file unless you know what you are doing. + + +from PyQt5 import QtCore, QtGui, QtWidgets + + +class Ui_Dialog(object): + def setupUi(self, Dialog): + Dialog.setObjectName("Dialog") + Dialog.resize(780, 740) + Dialog.setStyleSheet("background-color:#002942") + self.label = QtWidgets.QLabel(Dialog) + self.label.setGeometry(QtCore.QRect(10, 10, 751, 81)) + font = QtGui.QFont() + font.setPointSize(48) + font.setBold(True) + font.setWeight(75) + self.label.setFont(font) + self.label.setStyleSheet("color:white") + self.label.setAlignment(QtCore.Qt.AlignCenter) + self.label.setObjectName("label") + self.line_4 = QtWidgets.QFrame(Dialog) + self.line_4.setGeometry(QtCore.QRect(20, 90, 741, 20)) + self.line_4.setStyleSheet("color:#FFFFFF") + self.line_4.setFrameShadow(QtWidgets.QFrame.Plain) + self.line_4.setFrameShape(QtWidgets.QFrame.HLine) + self.line_4.setObjectName("line_4") + self.label_2 = QtWidgets.QLabel(Dialog) + self.label_2.setGeometry(QtCore.QRect(20, 110, 731, 51)) + font = QtGui.QFont() + font.setPointSize(14) + font.setBold(True) + font.setWeight(75) + self.label_2.setFont(font) + self.label_2.setStyleSheet("color:white") + self.label_2.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.label_2.setWordWrap(True) + self.label_2.setObjectName("label_2") + self.tableWidgetListEdit = QtWidgets.QTableWidget(Dialog) + self.tableWidgetListEdit.setGeometry(QtCore.QRect(20, 180, 671, 511)) + self.tableWidgetListEdit.setStyleSheet("background-color:#F0EAD6") + self.tableWidgetListEdit.setObjectName("tableWidgetListEdit") + self.tableWidgetListEdit.setColumnCount(4) + self.tableWidgetListEdit.setRowCount(0) + item = QtWidgets.QTableWidgetItem() + self.tableWidgetListEdit.setHorizontalHeaderItem(0, item) + item = QtWidgets.QTableWidgetItem() + self.tableWidgetListEdit.setHorizontalHeaderItem(1, item) + item = QtWidgets.QTableWidgetItem() + self.tableWidgetListEdit.setHorizontalHeaderItem(2, item) + item = QtWidgets.QTableWidgetItem() + self.tableWidgetListEdit.setHorizontalHeaderItem(3, item) + self.tableWidgetListEdit.horizontalHeader().setDefaultSectionSize(125) + self.tableWidgetListEdit.horizontalHeader().setSortIndicatorShown(False) + self.tableWidgetListEdit.horizontalHeader().setStretchLastSection(True) + self.pushButtonAdd = QtWidgets.QPushButton(Dialog) + self.pushButtonAdd.setGeometry(QtCore.QRect(710, 230, 51, 51)) + font = QtGui.QFont() + font.setPointSize(15) + font.setBold(True) + font.setWeight(75) + self.pushButtonAdd.setFont(font) + self.pushButtonAdd.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) + self.pushButtonAdd.setStyleSheet("background-color:#F4CA16;border-radius:25px;") + self.pushButtonAdd.setObjectName("pushButtonAdd") + self.pushButtonEdit = QtWidgets.QPushButton(Dialog) + self.pushButtonEdit.setGeometry(QtCore.QRect(710, 350, 51, 51)) + font = QtGui.QFont() + font.setPointSize(17) + font.setBold(True) + font.setWeight(75) + self.pushButtonEdit.setFont(font) + self.pushButtonEdit.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) + self.pushButtonEdit.setStyleSheet("background-color:#F4CA16;border-radius:25px;") + self.pushButtonEdit.setObjectName("pushButtonEdit") + self.pushButtonRemove = QtWidgets.QPushButton(Dialog) + self.pushButtonRemove.setGeometry(QtCore.QRect(710, 290, 51, 51)) + font = QtGui.QFont() + font.setPointSize(16) + font.setBold(True) + font.setWeight(75) + self.pushButtonRemove.setFont(font) + self.pushButtonRemove.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) + self.pushButtonRemove.setStyleSheet("background-color:#F4CA16;border-radius:25px;") + self.pushButtonRemove.setObjectName("pushButtonRemove") + self.pushButtonFName = QtWidgets.QPushButton(Dialog) + self.pushButtonFName.setGeometry(QtCore.QRect(710, 580, 51, 51)) + font = QtGui.QFont() + font.setPointSize(16) + font.setBold(True) + font.setWeight(75) + self.pushButtonFName.setFont(font) + self.pushButtonFName.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) + self.pushButtonFName.setStyleSheet("background-color:#F4CA16;border-radius:25px;") + self.pushButtonFName.setObjectName("pushButtonFName") + self.label_3 = QtWidgets.QLabel(Dialog) + self.label_3.setGeometry(QtCore.QRect(710, 530, 51, 31)) + font = QtGui.QFont() + font.setPointSize(14) + font.setBold(True) + font.setWeight(75) + self.label_3.setFont(font) + self.label_3.setStyleSheet("color:white") + self.label_3.setAlignment(QtCore.Qt.AlignCenter) + self.label_3.setObjectName("label_3") + self.label_4 = QtWidgets.QLabel(Dialog) + self.label_4.setGeometry(QtCore.QRect(710, 180, 51, 31)) + font = QtGui.QFont() + font.setPointSize(14) + font.setBold(True) + font.setWeight(75) + self.label_4.setFont(font) + self.label_4.setStyleSheet("color:white") + self.label_4.setAlignment(QtCore.Qt.AlignCenter) + self.label_4.setObjectName("label_4") + self.pushButton_LName = QtWidgets.QPushButton(Dialog) + self.pushButton_LName.setGeometry(QtCore.QRect(710, 640, 51, 51)) + font = QtGui.QFont() + font.setPointSize(13) + font.setBold(True) + font.setWeight(75) + self.pushButton_LName.setFont(font) + self.pushButton_LName.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) + self.pushButton_LName.setStyleSheet("background-color:#F4CA16;border-radius:25px;") + self.pushButton_LName.setObjectName("pushButton_LName") + self.labelError = QtWidgets.QLabel(Dialog) + self.labelError.setGeometry(QtCore.QRect(20, 695, 581, 31)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.labelError.setFont(font) + self.labelError.setStyleSheet("color:#9ACD32") + self.labelError.setText("") + self.labelError.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.labelError.setObjectName("labelError") + + self.retranslateUi(Dialog) + QtCore.QMetaObject.connectSlotsByName(Dialog) + + def retranslateUi(self, Dialog): + _translate = QtCore.QCoreApplication.translate + Dialog.setWindowTitle(_translate("Dialog", "List - Edit")) + self.label.setText(_translate("Dialog", "List/Edit")) + self.label_2.setText(_translate("Dialog", "Edit contacts from table and click \"✏️\" or Add and Remove with \"+\", \"-\". Sort by first name and last name with \"👤\", \"👨‍👩‍👦\".")) + item = self.tableWidgetListEdit.horizontalHeaderItem(0) + item.setText(_translate("Dialog", "First Name")) + item = self.tableWidgetListEdit.horizontalHeaderItem(1) + item.setText(_translate("Dialog", "Last Name")) + item = self.tableWidgetListEdit.horizontalHeaderItem(2) + item.setText(_translate("Dialog", "Phone Number")) + item = self.tableWidgetListEdit.horizontalHeaderItem(3) + item.setText(_translate("Dialog", "Email Address")) + self.pushButtonAdd.setText(_translate("Dialog", "+")) + self.pushButtonEdit.setText(_translate("Dialog", "✏️")) + self.pushButtonRemove.setText(_translate("Dialog", "-")) + self.pushButtonFName.setText(_translate("Dialog", "👤")) + self.label_3.setText(_translate("Dialog", "Sort")) + self.label_4.setText(_translate("Dialog", "Edit")) + self.pushButton_LName.setText(_translate("Dialog", "👨‍👩‍👦")) + + +if __name__ == "__main__": + import sys + app = QtWidgets.QApplication(sys.argv) + Dialog = QtWidgets.QDialog() + ui = Ui_Dialog() + ui.setupUi(Dialog) + Dialog.show() + sys.exit(app.exec_()) diff --git a/Other Students' Projects/4/Files/Edit_List.ui b/Other Students' Projects/4/Files/Edit_List.ui new file mode 100644 index 0000000..0ed95c7 --- /dev/null +++ b/Other Students' Projects/4/Files/Edit_List.ui @@ -0,0 +1,346 @@ + + + Dialog + + + + 0 + 0 + 780 + 740 + + + + List - Edit + + + background-color:#002942 + + + + + 10 + 10 + 751 + 81 + + + + + 48 + 75 + true + + + + color:white + + + List/Edit + + + Qt::AlignCenter + + + + + + 20 + 90 + 741 + 20 + + + + color:#FFFFFF + + + QFrame::Plain + + + Qt::Horizontal + + + + + + 20 + 110 + 731 + 51 + + + + + 14 + 75 + true + + + + color:white + + + Edit contacts from table and click "✏️" or Add and Remove with "+", "-". Sort by first name and last name with "👤", "👨‍👩‍👦". + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + true + + + + + + 20 + 180 + 671 + 511 + + + + background-color:#F0EAD6 + + + 125 + + + false + + + true + + + + First Name + + + + + Last Name + + + + + Phone Number + + + + + Email Address + + + + + + + 710 + 230 + 51 + 51 + + + + + 15 + 75 + true + + + + PointingHandCursor + + + background-color:#F4CA16;border-radius:25px; + + + + + + + + + + 710 + 350 + 51 + 51 + + + + + 17 + 75 + true + + + + PointingHandCursor + + + background-color:#F4CA16;border-radius:25px; + + + ✏️ + + + + + + 710 + 290 + 51 + 51 + + + + + 16 + 75 + true + + + + PointingHandCursor + + + background-color:#F4CA16;border-radius:25px; + + + - + + + + + + 710 + 580 + 51 + 51 + + + + + 16 + 75 + true + + + + PointingHandCursor + + + background-color:#F4CA16;border-radius:25px; + + + 👤 + + + + + + 710 + 530 + 51 + 31 + + + + + 14 + 75 + true + + + + color:white + + + Sort + + + Qt::AlignCenter + + + + + + 710 + 180 + 51 + 31 + + + + + 14 + 75 + true + + + + color:white + + + Edit + + + Qt::AlignCenter + + + + + + 710 + 640 + 51 + 51 + + + + + 13 + 75 + true + + + + PointingHandCursor + + + background-color:#F4CA16;border-radius:25px; + + + 👨‍👩‍👦 + + + + + + 20 + 695 + 581 + 31 + + + + + 10 + 75 + true + + + + color:#9ACD32 + + + + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + diff --git a/Other Students' Projects/4/Files/Scraping.py b/Other Students' Projects/4/Files/Scraping.py new file mode 100644 index 0000000..e103be0 --- /dev/null +++ b/Other Students' Projects/4/Files/Scraping.py @@ -0,0 +1,169 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file 'Files\Scraping.ui' +# +# Created by: PyQt5 UI code generator 5.15.4 +# +# WARNING: Any manual changes made to this file will be lost when pyuic5 is +# run again. Do not edit this file unless you know what you are doing. + + +from PyQt5 import QtCore, QtGui, QtWidgets + + +class Ui_Dialog(object): + def setupUi(self, Dialog): + Dialog.setObjectName("Dialog") + Dialog.resize(630, 673) + Dialog.setStyleSheet("background-color:#002942") + self.lineEdit = QtWidgets.QLineEdit(Dialog) + self.lineEdit.setGeometry(QtCore.QRect(20, 160, 591, 51)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.lineEdit.setFont(font) + self.lineEdit.setStyleSheet("color:white") + self.lineEdit.setText("") + self.lineEdit.setObjectName("lineEdit") + self.line_4 = QtWidgets.QFrame(Dialog) + self.line_4.setGeometry(QtCore.QRect(10, 90, 611, 20)) + self.line_4.setStyleSheet("color:#FFFFFF") + self.line_4.setFrameShadow(QtWidgets.QFrame.Plain) + self.line_4.setFrameShape(QtWidgets.QFrame.HLine) + self.line_4.setObjectName("line_4") + self.label_5 = QtWidgets.QLabel(Dialog) + self.label_5.setGeometry(QtCore.QRect(20, 450, 591, 31)) + font = QtGui.QFont() + font.setPointSize(14) + font.setBold(True) + font.setWeight(75) + self.label_5.setFont(font) + self.label_5.setStyleSheet("color:white") + self.label_5.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.label_5.setObjectName("label_5") + self.lineEdit_2 = QtWidgets.QLineEdit(Dialog) + self.lineEdit_2.setGeometry(QtCore.QRect(20, 270, 591, 51)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.lineEdit_2.setFont(font) + self.lineEdit_2.setStyleSheet("color:white") + self.lineEdit_2.setText("") + self.lineEdit_2.setObjectName("lineEdit_2") + self.label_4 = QtWidgets.QLabel(Dialog) + self.label_4.setGeometry(QtCore.QRect(20, 340, 591, 31)) + font = QtGui.QFont() + font.setPointSize(14) + font.setBold(True) + font.setWeight(75) + self.label_4.setFont(font) + self.label_4.setStyleSheet("color:white") + self.label_4.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.label_4.setObjectName("label_4") + self.label = QtWidgets.QLabel(Dialog) + self.label.setGeometry(QtCore.QRect(0, 10, 621, 81)) + font = QtGui.QFont() + font.setPointSize(35) + font.setBold(True) + font.setWeight(75) + self.label.setFont(font) + self.label.setStyleSheet("color:white") + self.label.setAlignment(QtCore.Qt.AlignCenter) + self.label.setObjectName("label") + self.label_2 = QtWidgets.QLabel(Dialog) + self.label_2.setGeometry(QtCore.QRect(20, 120, 591, 31)) + font = QtGui.QFont() + font.setPointSize(14) + font.setBold(True) + font.setWeight(75) + self.label_2.setFont(font) + self.label_2.setStyleSheet("color:white") + self.label_2.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.label_2.setObjectName("label_2") + self.lineEdit_3 = QtWidgets.QLineEdit(Dialog) + self.lineEdit_3.setGeometry(QtCore.QRect(20, 380, 591, 51)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.lineEdit_3.setFont(font) + self.lineEdit_3.setStyleSheet("color:white") + self.lineEdit_3.setText("") + self.lineEdit_3.setObjectName("lineEdit_3") + self.label_3 = QtWidgets.QLabel(Dialog) + self.label_3.setGeometry(QtCore.QRect(20, 230, 591, 31)) + font = QtGui.QFont() + font.setPointSize(14) + font.setBold(True) + font.setWeight(75) + self.label_3.setFont(font) + self.label_3.setStyleSheet("color:white") + self.label_3.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.label_3.setObjectName("label_3") + self.pushButton_Add = QtWidgets.QPushButton(Dialog) + self.pushButton_Add.setGeometry(QtCore.QRect(560, 560, 51, 51)) + font = QtGui.QFont() + font.setPointSize(15) + font.setBold(True) + font.setWeight(75) + self.pushButton_Add.setFont(font) + self.pushButton_Add.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) + self.pushButton_Add.setStyleSheet("background-color:#F4CA16;border-radius:25px;") + self.pushButton_Add.setObjectName("pushButton_Add") + self.labelError = QtWidgets.QLabel(Dialog) + self.labelError.setGeometry(QtCore.QRect(10, 620, 611, 31)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.labelError.setFont(font) + self.labelError.setStyleSheet("color:#9ACD32") + self.labelError.setText("") + self.labelError.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.labelError.setObjectName("labelError") + self.lineEdit_4 = QtWidgets.QLineEdit(Dialog) + self.lineEdit_4.setGeometry(QtCore.QRect(20, 490, 591, 51)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.lineEdit_4.setFont(font) + self.lineEdit_4.setStyleSheet("color:white") + self.lineEdit_4.setText("") + self.lineEdit_4.setObjectName("lineEdit_4") + self.pushButton_Web = QtWidgets.QPushButton(Dialog) + self.pushButton_Web.setGeometry(QtCore.QRect(500, 560, 51, 51)) + font = QtGui.QFont() + font.setPointSize(15) + font.setBold(True) + font.setWeight(75) + self.pushButton_Web.setFont(font) + self.pushButton_Web.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) + self.pushButton_Web.setStyleSheet("background-color:#F4CA16;border-radius:25px;") + self.pushButton_Web.setObjectName("pushButton_Web") + + self.retranslateUi(Dialog) + QtCore.QMetaObject.connectSlotsByName(Dialog) + + def retranslateUi(self, Dialog): + _translate = QtCore.QCoreApplication.translate + Dialog.setWindowTitle(_translate("Dialog", "Dialog")) + self.label_5.setText(_translate("Dialog", "Phone Number:")) + self.label_4.setText(_translate("Dialog", "Email Address:")) + self.label.setText(_translate("Dialog", "Web Add Contact")) + self.label_2.setText(_translate("Dialog", "First Name:")) + self.label_3.setText(_translate("Dialog", "Last Name:")) + self.pushButton_Add.setText(_translate("Dialog", "+")) + self.pushButton_Web.setText(_translate("Dialog", "🌐")) + + +if __name__ == "__main__": + import sys + app = QtWidgets.QApplication(sys.argv) + Dialog = QtWidgets.QDialog() + ui = Ui_Dialog() + ui.setupUi(Dialog) + Dialog.show() + sys.exit(app.exec_()) diff --git a/Other Students' Projects/4/Files/Scraping.ui b/Other Students' Projects/4/Files/Scraping.ui new file mode 100644 index 0000000..5290e0e --- /dev/null +++ b/Other Students' Projects/4/Files/Scraping.ui @@ -0,0 +1,341 @@ + + + Dialog + + + + 0 + 0 + 630 + 673 + + + + Dialog + + + background-color:#002942 + + + + + 20 + 160 + 591 + 51 + + + + + 10 + 75 + true + + + + color:white + + + + + + + + + 10 + 90 + 611 + 20 + + + + color:#FFFFFF + + + QFrame::Plain + + + Qt::Horizontal + + + + + + 20 + 450 + 591 + 31 + + + + + 14 + 75 + true + + + + color:white + + + Phone Number: + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + 20 + 270 + 591 + 51 + + + + + 10 + 75 + true + + + + color:white + + + + + + + + + 20 + 340 + 591 + 31 + + + + + 14 + 75 + true + + + + color:white + + + Email Address: + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + 0 + 10 + 621 + 81 + + + + + 35 + 75 + true + + + + color:white + + + Web Add Contact + + + Qt::AlignCenter + + + + + + 20 + 120 + 591 + 31 + + + + + 14 + 75 + true + + + + color:white + + + First Name: + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + 20 + 380 + 591 + 51 + + + + + 10 + 75 + true + + + + color:white + + + + + + + + + 20 + 230 + 591 + 31 + + + + + 14 + 75 + true + + + + color:white + + + Last Name: + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + 560 + 560 + 51 + 51 + + + + + 15 + 75 + true + + + + PointingHandCursor + + + background-color:#F4CA16;border-radius:25px; + + + + + + + + + + 10 + 620 + 611 + 31 + + + + + 10 + 75 + true + + + + color:#9ACD32 + + + + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + 20 + 490 + 591 + 51 + + + + + 10 + 75 + true + + + + color:white + + + + + + + + + 500 + 560 + 51 + 51 + + + + + 15 + 75 + true + + + + PointingHandCursor + + + background-color:#F4CA16;border-radius:25px; + + + 🌐 + + + + + + diff --git a/Other Students' Projects/4/Files/Text.py b/Other Students' Projects/4/Files/Text.py new file mode 100644 index 0000000..708cbf0 --- /dev/null +++ b/Other Students' Projects/4/Files/Text.py @@ -0,0 +1,93 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file 'Files\Text.ui' +# +# Created by: PyQt5 UI code generator 5.15.4 +# +# WARNING: Any manual changes made to this file will be lost when pyuic5 is +# run again. Do not edit this file unless you know what you are doing. + + +from PyQt5 import QtCore, QtGui, QtWidgets + + +class Ui_Dialog(object): + def setupUi(self, Dialog): + Dialog.setObjectName("Dialog") + Dialog.resize(630, 673) + Dialog.setStyleSheet("background-color:#002942") + self.textEdit = QtWidgets.QTextEdit(Dialog) + self.textEdit.setGeometry(QtCore.QRect(20, 170, 591, 191)) + self.textEdit.setStyleSheet("color:white") + self.textEdit.setObjectName("textEdit") + self.label_7 = QtWidgets.QLabel(Dialog) + self.label_7.setGeometry(QtCore.QRect(0, 10, 621, 81)) + font = QtGui.QFont() + font.setPointSize(48) + font.setBold(True) + font.setWeight(75) + self.label_7.setFont(font) + self.label_7.setStyleSheet("color:white") + self.label_7.setAlignment(QtCore.Qt.AlignCenter) + self.label_7.setObjectName("label_7") + self.line_5 = QtWidgets.QFrame(Dialog) + self.line_5.setGeometry(QtCore.QRect(10, 90, 611, 20)) + self.line_5.setStyleSheet("color:#FFFFFF") + self.line_5.setFrameShadow(QtWidgets.QFrame.Plain) + self.line_5.setFrameShape(QtWidgets.QFrame.HLine) + self.line_5.setObjectName("line_5") + self.label_2 = QtWidgets.QLabel(Dialog) + self.label_2.setGeometry(QtCore.QRect(20, 130, 511, 31)) + font = QtGui.QFont() + font.setPointSize(14) + font.setBold(True) + font.setWeight(75) + self.label_2.setFont(font) + self.label_2.setStyleSheet("color:white") + self.label_2.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.label_2.setObjectName("label_2") + self.textEdit_2 = QtWidgets.QTextEdit(Dialog) + self.textEdit_2.setGeometry(QtCore.QRect(20, 430, 591, 201)) + self.textEdit_2.setStyleSheet("color:white") + self.textEdit_2.setObjectName("textEdit_2") + self.label_3 = QtWidgets.QLabel(Dialog) + self.label_3.setGeometry(QtCore.QRect(20, 390, 591, 31)) + font = QtGui.QFont() + font.setPointSize(14) + font.setBold(True) + font.setWeight(75) + self.label_3.setFont(font) + self.label_3.setStyleSheet("color:white") + self.label_3.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.label_3.setObjectName("label_3") + self.pushButton_Identify = QtWidgets.QPushButton(Dialog) + self.pushButton_Identify.setGeometry(QtCore.QRect(560, 110, 51, 51)) + font = QtGui.QFont() + font.setPointSize(15) + font.setBold(True) + font.setWeight(75) + self.pushButton_Identify.setFont(font) + self.pushButton_Identify.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) + self.pushButton_Identify.setStyleSheet("background-color:#F4CA16;border-radius:25px;") + self.pushButton_Identify.setObjectName("pushButton_Identify") + + self.retranslateUi(Dialog) + QtCore.QMetaObject.connectSlotsByName(Dialog) + + def retranslateUi(self, Dialog): + _translate = QtCore.QCoreApplication.translate + Dialog.setWindowTitle(_translate("Dialog", "Dialog")) + self.label_7.setText(_translate("Dialog", "Identifier")) + self.label_2.setText(_translate("Dialog", "Input:")) + self.label_3.setText(_translate("Dialog", "Output:")) + self.pushButton_Identify.setText(_translate("Dialog", "⚒")) + + +if __name__ == "__main__": + import sys + app = QtWidgets.QApplication(sys.argv) + Dialog = QtWidgets.QDialog() + ui = Ui_Dialog() + ui.setupUi(Dialog) + Dialog.show() + sys.exit(app.exec_()) diff --git a/Other Students' Projects/4/Files/Text.ui b/Other Students' Projects/4/Files/Text.ui new file mode 100644 index 0000000..cd55a7b --- /dev/null +++ b/Other Students' Projects/4/Files/Text.ui @@ -0,0 +1,171 @@ + + + Dialog + + + + 0 + 0 + 630 + 673 + + + + Dialog + + + background-color:#002942 + + + + + 20 + 170 + 591 + 191 + + + + color:white + + + + + + 0 + 10 + 621 + 81 + + + + + 48 + 75 + true + + + + color:white + + + Identifier + + + Qt::AlignCenter + + + + + + 10 + 90 + 611 + 20 + + + + color:#FFFFFF + + + QFrame::Plain + + + Qt::Horizontal + + + + + + 20 + 130 + 511 + 31 + + + + + 14 + 75 + true + + + + color:white + + + Input: + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + 20 + 430 + 591 + 201 + + + + color:white + + + + + + 20 + 390 + 591 + 31 + + + + + 14 + 75 + true + + + + color:white + + + Output: + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + 560 + 110 + 51 + 51 + + + + + 15 + 75 + true + + + + PointingHandCursor + + + background-color:#F4CA16;border-radius:25px; + + + + + + + + + diff --git a/Other Students' Projects/4/Files/Window.py b/Other Students' Projects/4/Files/Window.py new file mode 100644 index 0000000..4479e46 --- /dev/null +++ b/Other Students' Projects/4/Files/Window.py @@ -0,0 +1,195 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file 'Files\Window.ui' +# +# Created by: PyQt5 UI code generator 5.15.4 +# +# WARNING: Any manual changes made to this file will be lost when pyuic5 is +# run again. Do not edit this file unless you know what you are doing. + + +from PyQt5 import QtCore, QtGui, QtWidgets + + +class Ui_MainWindow(object): + def setupUi(self, MainWindow): + MainWindow.setObjectName("MainWindow") + MainWindow.resize(633, 740) + MainWindow.setStyleSheet("background-color:#002942") + self.centralwidget = QtWidgets.QWidget(MainWindow) + self.centralwidget.setObjectName("centralwidget") + self.label = QtWidgets.QLabel(self.centralwidget) + self.label.setGeometry(QtCore.QRect(10, 30, 611, 81)) + font = QtGui.QFont() + font.setPointSize(48) + font.setBold(True) + font.setWeight(75) + self.label.setFont(font) + self.label.setStyleSheet("color:white") + self.label.setAlignment(QtCore.Qt.AlignCenter) + self.label.setObjectName("label") + self.pushButtonEditList = QtWidgets.QPushButton(self.centralwidget) + self.pushButtonEditList.setGeometry(QtCore.QRect(230, 190, 161, 71)) + font = QtGui.QFont() + font.setPointSize(12) + font.setBold(True) + font.setWeight(75) + self.pushButtonEditList.setFont(font) + self.pushButtonEditList.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) + self.pushButtonEditList.setStyleSheet("background-color:#F4CA16;border-radius:35px;") + self.pushButtonEditList.setObjectName("pushButtonEditList") + self.pushButtonIdentufy = QtWidgets.QPushButton(self.centralwidget) + self.pushButtonIdentufy.setGeometry(QtCore.QRect(230, 330, 161, 71)) + font = QtGui.QFont() + font.setPointSize(12) + font.setBold(True) + font.setWeight(75) + self.pushButtonIdentufy.setFont(font) + self.pushButtonIdentufy.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) + self.pushButtonIdentufy.setStyleSheet("background-color:#F4CA16;border-radius:35px;") + self.pushButtonIdentufy.setObjectName("pushButtonIdentufy") + self.pushButtonWeb = QtWidgets.QPushButton(self.centralwidget) + self.pushButtonWeb.setGeometry(QtCore.QRect(230, 470, 161, 71)) + font = QtGui.QFont() + font.setPointSize(14) + font.setBold(True) + font.setWeight(75) + self.pushButtonWeb.setFont(font) + self.pushButtonWeb.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) + self.pushButtonWeb.setStyleSheet("background-color:#F4CA16;border-radius:35px;") + self.pushButtonWeb.setObjectName("pushButtonWeb") + self.pushButtonOpen = QtWidgets.QPushButton(self.centralwidget) + self.pushButtonOpen.setGeometry(QtCore.QRect(140, 610, 161, 71)) + font = QtGui.QFont() + font.setPointSize(13) + font.setBold(True) + font.setWeight(75) + self.pushButtonOpen.setFont(font) + self.pushButtonOpen.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) + self.pushButtonOpen.setStyleSheet("background-color:#F4CA16;border-radius:35px;") + self.pushButtonOpen.setObjectName("pushButtonOpen") + self.pushButtonSave = QtWidgets.QPushButton(self.centralwidget) + self.pushButtonSave.setGeometry(QtCore.QRect(330, 610, 161, 71)) + font = QtGui.QFont() + font.setPointSize(13) + font.setBold(True) + font.setWeight(75) + self.pushButtonSave.setFont(font) + self.pushButtonSave.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) + self.pushButtonSave.setStyleSheet("background-color:#F4CA16;border-radius:35px;") + self.pushButtonSave.setObjectName("pushButtonSave") + self.line = QtWidgets.QFrame(self.centralwidget) + self.line.setGeometry(QtCore.QRect(30, 270, 581, 16)) + self.line.setStyleSheet("color:#FFFFFF") + self.line.setFrameShadow(QtWidgets.QFrame.Plain) + self.line.setFrameShape(QtWidgets.QFrame.HLine) + self.line.setObjectName("line") + self.line_2 = QtWidgets.QFrame(self.centralwidget) + self.line_2.setGeometry(QtCore.QRect(30, 410, 581, 16)) + self.line_2.setStyleSheet("color:#FFFFFF") + self.line_2.setFrameShadow(QtWidgets.QFrame.Plain) + self.line_2.setFrameShape(QtWidgets.QFrame.HLine) + self.line_2.setObjectName("line_2") + self.line_3 = QtWidgets.QFrame(self.centralwidget) + self.line_3.setGeometry(QtCore.QRect(30, 550, 581, 16)) + self.line_3.setStyleSheet("color:#FFFFFF") + self.line_3.setFrameShadow(QtWidgets.QFrame.Plain) + self.line_3.setFrameShape(QtWidgets.QFrame.HLine) + self.line_3.setObjectName("line_3") + self.label_2 = QtWidgets.QLabel(self.centralwidget) + self.label_2.setGeometry(QtCore.QRect(30, 140, 591, 31)) + font = QtGui.QFont() + font.setPointSize(14) + font.setBold(True) + font.setWeight(75) + self.label_2.setFont(font) + self.label_2.setStyleSheet("color:white") + self.label_2.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.label_2.setObjectName("label_2") + self.label_3 = QtWidgets.QLabel(self.centralwidget) + self.label_3.setGeometry(QtCore.QRect(30, 280, 591, 31)) + font = QtGui.QFont() + font.setPointSize(14) + font.setBold(True) + font.setWeight(75) + self.label_3.setFont(font) + self.label_3.setStyleSheet("color:white") + self.label_3.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.label_3.setObjectName("label_3") + self.label_4 = QtWidgets.QLabel(self.centralwidget) + self.label_4.setGeometry(QtCore.QRect(40, 420, 591, 31)) + font = QtGui.QFont() + font.setPointSize(14) + font.setBold(True) + font.setWeight(75) + self.label_4.setFont(font) + self.label_4.setStyleSheet("color:white") + self.label_4.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.label_4.setObjectName("label_4") + self.label_5 = QtWidgets.QLabel(self.centralwidget) + self.label_5.setGeometry(QtCore.QRect(40, 560, 591, 31)) + font = QtGui.QFont() + font.setPointSize(14) + font.setBold(True) + font.setWeight(75) + self.label_5.setFont(font) + self.label_5.setStyleSheet("color:white") + self.label_5.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.label_5.setObjectName("label_5") + self.line_4 = QtWidgets.QFrame(self.centralwidget) + self.line_4.setGeometry(QtCore.QRect(30, 130, 581, 16)) + self.line_4.setStyleSheet("color:#FFFFFF") + self.line_4.setFrameShadow(QtWidgets.QFrame.Plain) + self.line_4.setFrameShape(QtWidgets.QFrame.HLine) + self.line_4.setObjectName("line_4") + self.line_5 = QtWidgets.QFrame(self.centralwidget) + self.line_5.setGeometry(QtCore.QRect(10, 140, 20, 581)) + self.line_5.setStyleSheet("color:white") + self.line_5.setFrameShadow(QtWidgets.QFrame.Plain) + self.line_5.setFrameShape(QtWidgets.QFrame.VLine) + self.line_5.setObjectName("line_5") + self.line_6 = QtWidgets.QFrame(self.centralwidget) + self.line_6.setGeometry(QtCore.QRect(610, 140, 20, 581)) + self.line_6.setStyleSheet("color:white") + self.line_6.setFrameShadow(QtWidgets.QFrame.Plain) + self.line_6.setFrameShape(QtWidgets.QFrame.VLine) + self.line_6.setObjectName("line_6") + self.labelError = QtWidgets.QLabel(self.centralwidget) + self.labelError.setGeometry(QtCore.QRect(30, 690, 581, 31)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.labelError.setFont(font) + self.labelError.setStyleSheet("color:#9ACD32") + self.labelError.setText("") + self.labelError.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.labelError.setObjectName("labelError") + MainWindow.setCentralWidget(self.centralwidget) + + self.retranslateUi(MainWindow) + QtCore.QMetaObject.connectSlotsByName(MainWindow) + + def retranslateUi(self, MainWindow): + _translate = QtCore.QCoreApplication.translate + MainWindow.setWindowTitle(_translate("MainWindow", "Contacts Manager")) + self.label.setText(_translate("MainWindow", "MyCMS")) + self.pushButtonEditList.setText(_translate("MainWindow", "Edit\\List")) + self.pushButtonIdentufy.setText(_translate("MainWindow", "Identify")) + self.pushButtonWeb.setText(_translate("MainWindow", "Web")) + self.pushButtonOpen.setText(_translate("MainWindow", "Open")) + self.pushButtonSave.setText(_translate("MainWindow", "Save")) + self.label_2.setText(_translate("MainWindow", "Contacts:")) + self.label_3.setText(_translate("MainWindow", "Data Extracting:")) + self.label_4.setText(_translate("MainWindow", "Web Scraping:")) + self.label_5.setText(_translate("MainWindow", "File Functions:")) + + +if __name__ == "__main__": + import sys + app = QtWidgets.QApplication(sys.argv) + MainWindow = QtWidgets.QMainWindow() + ui = Ui_MainWindow() + ui.setupUi(MainWindow) + MainWindow.show() + sys.exit(app.exec_()) diff --git a/Other Students' Projects/4/Files/Window.ui b/Other Students' Projects/4/Files/Window.ui new file mode 100644 index 0000000..a9a9155 --- /dev/null +++ b/Other Students' Projects/4/Files/Window.ui @@ -0,0 +1,424 @@ + + + MainWindow + + + + 0 + 0 + 633 + 740 + + + + Contacts Manager + + + background-color:#002942 + + + + + + 10 + 30 + 611 + 81 + + + + + 48 + 75 + true + + + + color:white + + + MyCMS + + + Qt::AlignCenter + + + + + + 230 + 190 + 161 + 71 + + + + + 12 + 75 + true + + + + PointingHandCursor + + + background-color:#F4CA16;border-radius:35px; + + + Edit\List + + + + + + 230 + 330 + 161 + 71 + + + + + 12 + 75 + true + + + + PointingHandCursor + + + background-color:#F4CA16;border-radius:35px; + + + Identify + + + + + + 230 + 470 + 161 + 71 + + + + + 14 + 75 + true + + + + PointingHandCursor + + + background-color:#F4CA16;border-radius:35px; + + + Web + + + + + + 140 + 610 + 161 + 71 + + + + + 13 + 75 + true + + + + PointingHandCursor + + + background-color:#F4CA16;border-radius:35px; + + + Open + + + + + + 330 + 610 + 161 + 71 + + + + + 13 + 75 + true + + + + PointingHandCursor + + + background-color:#F4CA16;border-radius:35px; + + + Save + + + + + + 30 + 270 + 581 + 16 + + + + color:#FFFFFF + + + QFrame::Plain + + + Qt::Horizontal + + + + + + 30 + 410 + 581 + 16 + + + + color:#FFFFFF + + + QFrame::Plain + + + Qt::Horizontal + + + + + + 30 + 550 + 581 + 16 + + + + color:#FFFFFF + + + QFrame::Plain + + + Qt::Horizontal + + + + + + 30 + 140 + 591 + 31 + + + + + 14 + 75 + true + + + + color:white + + + Contacts: + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + 30 + 280 + 591 + 31 + + + + + 14 + 75 + true + + + + color:white + + + Data Extracting: + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + 40 + 420 + 591 + 31 + + + + + 14 + 75 + true + + + + color:white + + + Web Scraping: + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + 40 + 560 + 591 + 31 + + + + + 14 + 75 + true + + + + color:white + + + File Functions: + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + 30 + 130 + 581 + 16 + + + + color:#FFFFFF + + + QFrame::Plain + + + Qt::Horizontal + + + + + + 10 + 140 + 20 + 581 + + + + color:white + + + QFrame::Plain + + + Qt::Vertical + + + + + + 610 + 140 + 20 + 581 + + + + color:white + + + QFrame::Plain + + + Qt::Vertical + + + + + + 30 + 690 + 581 + 31 + + + + + 10 + 75 + true + + + + color:#9ACD32 + + + + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + + diff --git a/Other Students' Projects/4/Keepper.txt b/Other Students' Projects/4/Keepper.txt new file mode 100644 index 0000000..0dc1b17 --- /dev/null +++ b/Other Students' Projects/4/Keepper.txt @@ -0,0 +1,18 @@ +libraries: + pip install pyqt5-tools + pip install PyQt5 + pip install requests + pip install beautifulsoup4 + +Designer: + C:\Program Files\Python37\Lib\site-packages\qt5_applications\Qt\bin\designer.exe + +Ui to Py: + Pyuic5 -x -o Files\Add.py Files\Add.ui + Pyuic5 -x -o Files\Scraping.py Files\Scraping.ui + Pyuic5 -x -o Files\Edit_List.py Files\Edit_List.ui + Pyuic5 -x -o Files\Text.py Files\Text.ui + Pyuic5 -x -o Files\Window.py Files\Window.ui + +Py to exe: + pyinstaller ContactManagerSystem.py --name ContactManagerSystem --onefile --noconsole \ No newline at end of file diff --git a/Other Students' Projects/4/TxtDatabase.txt b/Other Students' Projects/4/TxtDatabase.txt new file mode 100644 index 0000000..3acc8c2 --- /dev/null +++ b/Other Students' Projects/4/TxtDatabase.txt @@ -0,0 +1 @@ +[{"fname": "Selma", "lname": "Brown", "email": "SelmaWBrown@jourrapide.com", "phone": "+1414-467-0346"}, {"fname": "Maria", "lname": "White", "email": "MariaMWhite@armyspy.com", "phone": "+1517-507-2122"}, {"fname": "Ronald", "lname": "Burrow", "email": "RonaldBBurrow@armyspy.com", "phone": "+1802-387-3095"}, {"fname": "Harry", "lname": "Reyes", "email": "HarrySReyes@dayrep.com", "phone": "+1812-450-7560"}, {"fname": "Paul", "lname": "McGovern", "email": "PaulAMcGovern@teleworm.us", "phone": "+1540-684-9668"}] \ No newline at end of file diff --git a/Other Students' Projects/5/.idea/.gitignore b/Other Students' Projects/5/.idea/.gitignore new file mode 100644 index 0000000..9bfb85a --- /dev/null +++ b/Other Students' Projects/5/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Datasource local storage ignored files +/../../../../../../../:\University\2nd Term\Others Homeworks\Else\4\.idea/dataSources/ +/dataSources.local.xml +# Editor-based HTTP Client requests +/httpRequests/ diff --git a/Other Students' Projects/5/.idea/4.iml b/Other Students' Projects/5/.idea/4.iml new file mode 100644 index 0000000..d0876a7 --- /dev/null +++ b/Other Students' Projects/5/.idea/4.iml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/Other Students' Projects/5/.idea/inspectionProfiles/Project_Default.xml b/Other Students' Projects/5/.idea/inspectionProfiles/Project_Default.xml new file mode 100644 index 0000000..6eeafb9 --- /dev/null +++ b/Other Students' Projects/5/.idea/inspectionProfiles/Project_Default.xml @@ -0,0 +1,24 @@ + + + + \ No newline at end of file diff --git a/Other Students' Projects/5/.idea/inspectionProfiles/profiles_settings.xml b/Other Students' Projects/5/.idea/inspectionProfiles/profiles_settings.xml new file mode 100644 index 0000000..105ce2d --- /dev/null +++ b/Other Students' Projects/5/.idea/inspectionProfiles/profiles_settings.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/Other Students' Projects/5/.idea/misc.xml b/Other Students' Projects/5/.idea/misc.xml new file mode 100644 index 0000000..a2e120d --- /dev/null +++ b/Other Students' Projects/5/.idea/misc.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/Other Students' Projects/5/.idea/modules.xml b/Other Students' Projects/5/.idea/modules.xml new file mode 100644 index 0000000..6514eeb --- /dev/null +++ b/Other Students' Projects/5/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/Other Students' Projects/5/Application.py b/Other Students' Projects/5/Application.py new file mode 100644 index 0000000..14ec32c --- /dev/null +++ b/Other Students' Projects/5/Application.py @@ -0,0 +1,345 @@ +import json +import re +from time import sleep +import requests +from bs4 import BeautifulSoup +from lxml import etree +from Win import Ui_MainWindow +from PyQt5 import QtCore, QtWidgets +import sys + +# Hidpi scaling +QtWidgets.QApplication.setAttribute(QtCore.Qt.AA_EnableHighDpiScaling, True) +# use Hidpi icons +QtWidgets.QApplication.setAttribute(QtCore.Qt.AA_UseHighDpiPixmaps, True) + + +class Gui(Ui_MainWindow): + def __init__(self): + self.Contacts = [] + + def setupUi(self, MainWindow): + super().setupUi(MainWindow) + + def retranslateUi(self, MainWindow): + super().retranslateUi(MainWindow) + + def Tabs(self): + if self.tabWidget.currentIndex() == 2: + self.tableWidget.setVisible(False) + self.label_6.setVisible(False) + self.pushButton_first.setVisible(False) + self.pushButton_last.setVisible(False) + else: + self.tableWidget.setVisible(True) + self.label_6.setVisible(True) + self.pushButton_first.setVisible(True) + self.pushButton_last.setVisible(True) + + def Theme(self): + if self.horizontalSlider.value() == 1: + self.tabWidget.setStyleSheet("background-color:#0E1621; color:#BFFF00") + + # lineEdits + self.lineEdit_Fname.setStyleSheet("background-color:#0E1621; color:white") + self.lineEdit_Lname.setStyleSheet("background-color:#0E1621; color:white") + self.lineEdit_phone.setStyleSheet("background-color:#0E1621; color:white") + self.lineEdit_email.setStyleSheet("background-color:#0E1621; color:white") + self.lineEdit_Fname_2.setStyleSheet("background-color:#0E1621; color:white") + self.lineEdit_Lname_2.setStyleSheet("background-color:#0E1621; color:white") + self.lineEdit_phone_2.setStyleSheet("background-color:#0E1621; color:white") + self.lineEdit_email_2.setStyleSheet("background-color:#0E1621; color:white") + self.lineEdit.setStyleSheet("background-color:#242F3D;color:#E9E8E8") + + # labels + self.label.setStyleSheet("background-color:#242F3D;color:#E9E8E8") + self.label_2.setStyleSheet("background-color:#242F3D;color:#E9E8E8") + self.label_3.setStyleSheet("background-color:#242F3D;color:#E9E8E8") + self.label_4.setStyleSheet("background-color:#242F3D;color:#E9E8E8") + self.label_5.setStyleSheet("color:white") + self.label_6.setStyleSheet("background-color:#242F3D;color:#E9E8E8") + self.label_7.setStyleSheet("background-color:#242F3D;color:#E9E8E8") + self.label_8.setStyleSheet("background-color:#242F3D;color:#E9E8E8") + self.label_9.setStyleSheet("background-color:#242F3D;color:#E9E8E8") + self.label_10.setStyleSheet("background-color:#242F3D;color:#E9E8E8") + self.label_11.setStyleSheet("color:white") + self.label_12.setStyleSheet("color:white") + self.label_13.setStyleSheet("background-color:#242F3D;color:#E9E8E8") + self.label_14.setStyleSheet("background-color:#242F3D;color:#E9E8E8") + self.label_15.setStyleSheet("background-color:#242F3D;color:#E9E8E8") + self.label_dark.setStyleSheet("background-color:#0E1621; color:#BFFF00") + self.label_save.setStyleSheet("background-color:#0E1621; color:#BFFF00") + + # table + self.tableWidget.setStyleSheet("background-color:#242F3D;color:#8D94A6") + + # textEdit + self.textBrowser.setStyleSheet("background-color:#0E1621; color:white") + self.textBrowser_2.setStyleSheet("background-color:#0E1621; color:white") + self.textBrowser_3.setStyleSheet("background-color:#0E1621; color:white") + + # button + self.pushButton_add.setStyleSheet("background-color:#29A0DD; color:white") + self.pushButton_update.setStyleSheet("background-color:#29A0DD; color:white") + self.pushButton_remove.setStyleSheet("background-color:#29A0DD; color:white") + self.pushButton_first.setStyleSheet("background-color:#29A0DD; color:white") + self.pushButton_last.setStyleSheet("background-color:#29A0DD; color:white") + self.pushButton_add_2.setStyleSheet("background-color:#29A0DD; color:white") + self.pushButton_Find.setStyleSheet("background-color:#29A0DD; color:white") + + else: + self.tabWidget.setStyleSheet("background-color:white; color:#004242") + + # lineEdits + self.lineEdit_Fname.setStyleSheet("background-color:#BBBBBB; color:#004242") + self.lineEdit_Lname.setStyleSheet("background-color:#BBBBBB; color:#004242") + self.lineEdit_phone.setStyleSheet("background-color:#BBBBBB; color:#004242") + self.lineEdit_email.setStyleSheet("background-color:#BBBBBB; color:#004242") + self.lineEdit_Fname_2.setStyleSheet("background-color:#BBBBBB; color:#004242") + self.lineEdit_Lname_2.setStyleSheet("background-color:#BBBBBB; color:#004242") + self.lineEdit_phone_2.setStyleSheet("background-color:#BBBBBB; color:#004242") + self.lineEdit_email_2.setStyleSheet("background-color:#BBBBBB; color:#004242") + self.lineEdit.setStyleSheet("background-color:#F1F1F1;color:#293A4C") + + # labels + self.label.setStyleSheet("background-color:#F1F1F1;color:#293A4C") + self.label_2.setStyleSheet("background-color:#F1F1F1;color:#293A4C") + self.label_3.setStyleSheet("background-color:#F1F1F1;color:#293A4C") + self.label_4.setStyleSheet("background-color:#F1F1F1;color:#293A4C") + self.label_5.setStyleSheet("color:black") + self.label_6.setStyleSheet("background-color:#F1F1F1;color:#293A4C") + self.label_7.setStyleSheet("background-color:#F1F1F1;color:#293A4C") + self.label_8.setStyleSheet("background-color:#F1F1F1;color:#293A4C") + self.label_9.setStyleSheet("background-color:#F1F1F1;color:#293A4C") + self.label_10.setStyleSheet("background-color:#F1F1F1;color:#293A4C") + self.label_11.setStyleSheet("color:black") + self.label_12.setStyleSheet("color:black") + self.label_13.setStyleSheet("background-color:#F1F1F1;color:#293A4C") + self.label_14.setStyleSheet("background-color:#F1F1F1;color:#293A4C") + self.label_15.setStyleSheet("background-color:#F1F1F1;color:#293A4C") + self.label_dark.setStyleSheet("background-color:white; color:#313B4D") + self.label_save.setStyleSheet("background-color:white; color:#313B4D") + + # table + self.tableWidget.setStyleSheet("background-color:#F1F1F1;color:black") + + # textEdit + self.textBrowser.setStyleSheet("background-color:#BBBBBB; color:#004242") + self.textBrowser_2.setStyleSheet("background-color:#BBBBBB; color:#004242") + self.textBrowser_3.setStyleSheet("background-color:#BBBBBB; color:#004242") + + # button + self.pushButton_add.setStyleSheet("background-color:#318CE7; color:white") + self.pushButton_update.setStyleSheet("background-color:#318CE7; color:white") + self.pushButton_remove.setStyleSheet("background-color:#318CE7; color:white") + self.pushButton_first.setStyleSheet("background-color:#318CE7; color:white") + self.pushButton_last.setStyleSheet("background-color:#318CE7; color:white") + self.pushButton_add_2.setStyleSheet("background-color:#318CE7; color:white") + self.pushButton_Find.setStyleSheet("background-color:#318CE7; color:white") + + def AddContacts(self): + self.labelError.clear() + + helpValue = True + Fname = self.lineEdit_Fname.text() + Lname = self.lineEdit_Lname.text() + phone = self.lineEdit_phone.text() + email = self.lineEdit_email.text() + + + if Fname == "": + helpValue = False + self.labelError.setText("Name is required.") + elif email == "": + pass + elif self.CheckValidEmail(email) == False: + helpValue = False + self.labelError.setVisible(True) + self.labelError.setText("Email Is Not Valid.") + + if helpValue == True: + self.Contacts.append({ + 'Fname': Fname, + 'Lname': Lname, + 'email': email, + 'phone': phone + }) + + self.Table() + self.Empty() + + def UpdateContacts(self): + row = self.tableWidget.currentRow() + if row != -1: + self.labelError.clear() + + helpValue = True + Fname = self.lineEdit_Fname.text() + Lname = self.lineEdit_Lname.text() + phone = self.lineEdit_phone.text() + email = self.lineEdit_email.text() + + + if Fname == "": + helpValue = False + self.labelError.setText("Name is required.") + elif email == "": + pass + elif self.CheckValidEmail(email) == False: + helpValue = False + self.labelError.setVisible(True) + self.labelError.setText("Email Is Not Valid.") + + if helpValue == True: + self.Contacts[row] = { + 'Fname': Fname, + 'Lname': Lname, + 'email': email, + 'phone': phone + } + + self.Table() + self.Empty() + + else: + self.labelError.setText("Select a contact from table.") + + def RemoveContacts(self): + row = self.tableWidget.currentRow() + if row != -1: + self.labelError.clear() + + self.Contacts.pop(row) + self.Table() + self.Empty() + + else: + self.labelError.setText("Select a contact from table.") + + def CheckValidEmail(self, email): + reg = r'^([0-9A-Za-z]|\.|\_|\-)+[@]([0-9A-Za-z]|\_|\-|\.)+[.][A-Za-z]{2,4}$' + + if re.search(reg, email): + return True + else: + return False + + def Table(self, sort=None): + if sort == "Fname": + contacts = [i for i in sorted(self.Contacts, key=lambda obj: obj['Fname'])] + elif sort == "Lname": + contacts = [i for i in sorted(self.Contacts, key=lambda obj: obj['Lname'])] + else: + contacts = self.Contacts + + self.tableWidget.setRowCount(0) + + for i in range(0, len(contacts)): + self.tableWidget.insertRow(i) + self.tableWidget.setItem(i, 0, QtWidgets.QTableWidgetItem(contacts[i]['Fname'])) + self.tableWidget.setItem(i, 1, QtWidgets.QTableWidgetItem(contacts[i]['Lname'])) + self.tableWidget.setItem(i, 2, QtWidgets.QTableWidgetItem(contacts[i]['phone'])) + self.tableWidget.setItem(i, 3, QtWidgets.QTableWidgetItem(contacts[i]['email'])) + + def LineEditTable(self): + row = self.tableWidget.currentRow() + + if row != -1: + self.lineEdit_Fname.setText(self.Contacts[row]['Fname']) + self.lineEdit_Lname.setText(self.Contacts[row]['Lname']) + self.lineEdit_phone.setText(self.Contacts[row]['phone']) + self.lineEdit_email.setText(self.Contacts[row]['email']) + + def Empty(self): + self.lineEdit_Fname.clear() + self.lineEdit_Lname.clear() + self.lineEdit_phone.clear() + self.lineEdit_email.clear() + + def WebScr(self): + self.labelError_2.clear() + try: + web = "http://www.fakenamegenerator.com/" + htmlDownload = requests.get(web, headers={'User-Agent': 'Winx64'}) + parser = etree.HTML(str(BeautifulSoup(htmlDownload.content, "html.parser"))) + + name = parser.xpath('/html/body/div[2]/div/div/div[1]/div/div[3]/div[2]/div[2]/div/div[1]/h3')[0].text.split() + Fname = name[0] + Lname = name[2] + phone = parser.xpath('/html/body/div[2]/div/div/div[1]/div/div[3]/div[2]/div[2]/div/div[2]/dl[4]/dd/text()')[0] + email = parser.xpath('/html/body/div[2]/div/div/div[1]/div/div[3]/div[2]/div[2]/div/div[2]/dl[9]/dd/text()')[0].replace(" ", "") + + + self.lineEdit_Fname_2.setText(Fname) + self.lineEdit_Lname_2.setText(Lname) + self.lineEdit_phone_2.setText('+1' + phone) + self.lineEdit_email_2.setText(email) + + self.Contacts.append({ + 'Fname': Fname, + 'Lname': Lname, + 'email': email, + 'phone': phone + }) + + self.Table() + self.Empty() + + except: + self.labelError_2.setText("Error in connecting to internet.") + + def FindContact(self): + text = self.textBrowser.toPlainText() + + names = "\n".join(re.findall('[@]([\w]+)', text)) + if not names: names = "Nothing Found" + phones = "\n".join(re.findall('[#]([\d]+)', text)) + if not phones: phones = "Nothing Found" + + self.textBrowser_2.setText(names) + self.textBrowser_3.setText(phones) + + def Open(self): + try: + with open("DB.txt", "r") as f: + self.Contacts = json.loads(f.read()) + + except: + with open("DB.txt", "w") as f: + pass + + def Save(self): + if self.horizontalSlider_2.value() == 1: + with open("DB.txt", "w") as f: + f.write(json.dumps(self.Contacts)) + + self.labelError.setText("Saved to DB.txt") + self.labelError_2.setText("Saved to DB.txt") + + QtWidgets.QApplication.processEvents() + sleep(1) + self.horizontalSlider_2.setValue(0) + + +if __name__ == "__main__": + APP = QtWidgets.QApplication(sys.argv) + Main = QtWidgets.QMainWindow() + + ui = Gui() + ui.setupUi(Main) + ui.Open() + ui.Table() + ui.pushButton_first.clicked.connect(lambda x: ui.Table("Fname")) + ui.pushButton_last.clicked.connect(lambda x: ui.Table("Lname")) + ui.horizontalSlider.valueChanged.connect(ui.Theme) + ui.horizontalSlider_2.valueChanged.connect(ui.Save) + ui.pushButton_add.clicked.connect(ui.AddContacts) + ui.pushButton_update.clicked.connect(ui.UpdateContacts) + ui.pushButton_remove.clicked.connect(ui.RemoveContacts) + ui.pushButton_add_2.clicked.connect(ui.WebScr) + ui.pushButton_Find.clicked.connect(ui.FindContact) + ui.tabWidget.currentChanged.connect(ui.Tabs) + ui.tableWidget.itemSelectionChanged.connect(ui.LineEditTable) + + Main.show() + sys.exit(APP.exec_()) \ No newline at end of file diff --git a/Other Students' Projects/5/DB.txt b/Other Students' Projects/5/DB.txt new file mode 100644 index 0000000..1558bef --- /dev/null +++ b/Other Students' Projects/5/DB.txt @@ -0,0 +1 @@ +[{"Fname": "William", "Lname": "Hale", "email": "WilliamCHale@jourrapide.com", "phone": "601-342-3497"}, {"Fname": "Stacey", "Lname": "Elliott", "email": "StaceyWElliott@rhyta.com", "phone": "626-905-9211"}, {"Fname": "Hattie", "Lname": "Stallworth", "email": "HattieLStallworth@dayrep.com", "phone": "707-778-3526"}, {"Fname": "Anna", "Lname": "House", "email": "AnnaRHouse@teleworm.us", "phone": "336-629-5819"}] \ No newline at end of file diff --git a/Other Students' Projects/5/Presentation.docx b/Other Students' Projects/5/Presentation.docx new file mode 100644 index 0000000..a20655e Binary files /dev/null and b/Other Students' Projects/5/Presentation.docx differ diff --git a/Other Students' Projects/5/Win - light.ui b/Other Students' Projects/5/Win - light.ui new file mode 100644 index 0000000..e30c5bd --- /dev/null +++ b/Other Students' Projects/5/Win - light.ui @@ -0,0 +1,1289 @@ + + + MainWindow + + + + 0 + 0 + 969 + 643 + + + + MainWindow + + + color:#BFFF00 + + + + + + 0 + 0 + 969 + 643 + + + + + 15 + 75 + true + + + + background-color:white; color:#004242 + + + QTabWidget::North + + + QTabWidget::Triangular + + + 1 + + + true + + + + Contacts + + + + + 10 + 20 + 951 + 41 + + + + + 14 + 75 + true + + + + color:black + + + Change Contacts: + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + 410 + 90 + 541 + 431 + + + + background-color:#F1F1F1;color:black + + + 130 + + + false + + + true + + + + First Name + + + + + Last Name + + + + + Phone Number + + + + + Email Address + + + + + + + 410 + 540 + 71 + 41 + + + + + 11 + 75 + true + + + + background-color:#F1F1F1;color:#293A4C + + + Sort: + + + Qt::AlignCenter + + + + + + 500 + 540 + 91 + 41 + + + + + 10 + 75 + true + + + + PointingHandCursor + + + background-color:#318CE7; color:white + + + First Name + + + false + + + false + + + false + + + + + + 610 + 540 + 91 + 41 + + + + + 10 + 75 + true + + + + PointingHandCursor + + + background-color:#318CE7; color:white + + + Last Name + + + false + + + false + + + false + + + + + + 10 + 460 + 361 + 41 + + + + + 75 + true + + + + background-color:#BBBBBB; color:#004242 + + + + + + 10 + 190 + 101 + 41 + + + + + 10 + 75 + true + + + + background-color:#F1F1F1;color:#293A4C + + + Last Name: + + + Qt::AlignCenter + + + + + + 10 + 300 + 101 + 41 + + + + + 10 + 75 + true + + + + background-color:#F1F1F1;color:#293A4C + + + Phone: + + + Qt::AlignCenter + + + + + + 10 + 350 + 361 + 41 + + + + + 75 + true + + + + background-color:#BBBBBB; color:#004242 + + + + + + 10 + 130 + 361 + 41 + + + + + 75 + true + + + + background-color:#BBBBBB; color:#004242 + + + + + + + + + 10 + 80 + 101 + 41 + + + + + 10 + 75 + true + + + + background-color:#F1F1F1;color:#293A4C + + + First Name: + + + Qt::AlignCenter + + + + + + 10 + 240 + 361 + 41 + + + + + 75 + true + + + + background-color:#BBBBBB; color:#004242 + + + + + + + + + 10 + 410 + 101 + 41 + + + + + 10 + 75 + true + + + + background-color:#F1F1F1;color:#293A4C + + + Email: + + + Qt::AlignCenter + + + + + + 20 + 550 + 71 + 41 + + + + + 10 + 75 + true + + + + PointingHandCursor + + + background-color:#318CE7; color:white + + + Add + + + false + + + false + + + false + + + + + + 110 + 550 + 71 + 41 + + + + + 10 + 75 + true + + + + PointingHandCursor + + + background-color:#318CE7; color:white + + + Update + + + false + + + false + + + false + + + + + + 200 + 550 + 71 + 41 + + + + + 9 + 75 + true + + + + PointingHandCursor + + + background-color:#318CE7; color:white + + + Remove + + + false + + + false + + + false + + + + + + 10 + 510 + 361 + 21 + + + + + 10 + 75 + true + + + + color:#F03B33 + + + + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + Web Scraping + + + + + 670 + 280 + 71 + 51 + + + + + 10 + 75 + true + + + + PointingHandCursor + + + background-color:#E6A31D; color:#3D2922 + + + Add + + + + + + 10 + 550 + 281 + 41 + + + + + 10 + 75 + true + + + + background-color:#F1F1F1;color:#293A4C + + + www.fakenamegenerator.com + + + Qt::AlignCenter + + + true + + + + + + 10 + 510 + 361 + 21 + + + + + 9 + 75 + true + + + + color:#F03B33 + + + + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + 410 + 90 + 541 + 431 + + + + background-color:#F1F1F1;color:black + + + 130 + + + false + + + true + + + + First Name + + + + + Last Name + + + + + Phone Number + + + + + Email Address + + + + + + + 410 + 540 + 71 + 41 + + + + + 11 + 75 + true + + + + background-color:#F1F1F1;color:#293A4C + + + Sort: + + + Qt::AlignCenter + + + + + + 300 + 550 + 71 + 41 + + + + + 10 + 75 + true + + + + PointingHandCursor + + + background-color:#318CE7; color:white + + + Add + + + + + + 10 + 20 + 951 + 41 + + + + + 14 + 75 + true + + + + color:black + + + Get Contact From Web: + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + 10 + 190 + 101 + 41 + + + + + 10 + 75 + true + + + + background-color:#F1F1F1;color:#293A4C + + + Last Name: + + + Qt::AlignCenter + + + + + + 10 + 350 + 361 + 41 + + + + + 75 + true + + + + background-color:#BBBBBB; color:#004242 + + + + + + 10 + 410 + 101 + 41 + + + + + 10 + 75 + true + + + + background-color:#F1F1F1;color:#293A4C + + + Email: + + + Qt::AlignCenter + + + + + + 10 + 300 + 101 + 41 + + + + + 10 + 75 + true + + + + background-color:#F1F1F1;color:#293A4C + + + Phone: + + + Qt::AlignCenter + + + + + + 10 + 80 + 101 + 41 + + + + + 10 + 75 + true + + + + background-color:#F1F1F1;color:#293A4C + + + First Name: + + + Qt::AlignCenter + + + + + + 10 + 240 + 361 + 41 + + + + + 75 + true + + + + background-color:#BBBBBB; color:#004242 + + + + + + + + + 10 + 460 + 361 + 41 + + + + + 75 + true + + + + background-color:#BBBBBB; color:#004242 + + + + + + 10 + 130 + 361 + 41 + + + + + 75 + true + + + + background-color:#BBBBBB; color:#004242 + + + + + + + + + 500 + 540 + 91 + 41 + + + + + 10 + 75 + true + + + + PointingHandCursor + + + background-color:#318CE7; color:white + + + First Name + + + false + + + false + + + false + + + + + + 610 + 540 + 91 + 41 + + + + + 10 + 75 + true + + + + PointingHandCursor + + + background-color:#318CE7; color:white + + + Last Name + + + false + + + false + + + false + + + + + + Contact Finding + + + + + 20 + 80 + 101 + 51 + + + + + 10 + 75 + true + + + + PointingHandCursor + + + background-color:#318CE7; color:white + + + Find + + + + + + 130 + 150 + 821 + 191 + + + + + 11 + + + + background-color:#BBBBBB; color:#004242 + + + QFrame::StyledPanel + + + QFrame::Sunken + + + false + + + + + + 130 + 370 + 341 + 171 + + + + + 11 + + + + background-color:#BBBBBB; color:#004242 + + + QFrame::StyledPanel + + + QFrame::Sunken + + + false + + + + + + 10 + 20 + 951 + 41 + + + + + 14 + 75 + true + + + + color:black + + + Find Contact In Text: + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + 610 + 370 + 341 + 171 + + + + + 11 + + + + background-color:#BBBBBB; color:#004242 + + + QFrame::StyledPanel + + + QFrame::Sunken + + + false + + + + + + 20 + 150 + 101 + 41 + + + + + 10 + 75 + true + + + + background-color:#F1F1F1;color:#293A4C + + + Text: + + + Qt::AlignCenter + + + + + + 20 + 370 + 101 + 41 + + + + + 10 + 75 + true + + + + background-color:#F1F1F1;color:#293A4C + + + Name: + + + Qt::AlignCenter + + + + + + 500 + 370 + 101 + 41 + + + + + 10 + 75 + true + + + + background-color:#F1F1F1;color:#293A4C + + + Phones: + + + Qt::AlignCenter + + + + + + + + 915 + 590 + 41 + 20 + + + + 1 + + + 10 + + + 1 + + + 1 + + + true + + + Qt::Horizontal + + + false + + + false + + + QSlider::TicksBothSides + + + 0 + + + + + + 915 + 610 + 41 + 21 + + + + + 9 + 75 + true + + + + background-color:white; color:#313B4D + + + Dark + + + Qt::AlignCenter + + + tabWidget + label_dark + horizontalSlider + + + + + diff --git a/Other Students' Projects/5/Win.py b/Other Students' Projects/5/Win.py new file mode 100644 index 0000000..d4dbebb --- /dev/null +++ b/Other Students' Projects/5/Win.py @@ -0,0 +1,535 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file 'Win.ui' +# +# Created by: PyQt5 UI code generator 5.15.4 +# +# WARNING: Any manual changes made to this file will be lost when pyuic5 is +# run again. Do not edit this file unless you know what you are doing. + + +from PyQt5 import QtCore, QtGui, QtWidgets + + +class Ui_MainWindow(object): + def setupUi(self, MainWindow): + MainWindow.setObjectName("MainWindow") + MainWindow.resize(969, 644) + MainWindow.setStyleSheet("color:#BFFF00") + self.centralwidget = QtWidgets.QWidget(MainWindow) + self.centralwidget.setObjectName("centralwidget") + self.tabWidget = QtWidgets.QTabWidget(self.centralwidget) + self.tabWidget.setGeometry(QtCore.QRect(0, 0, 969, 644)) + font = QtGui.QFont() + font.setPointSize(15) + font.setBold(True) + font.setWeight(75) + self.tabWidget.setFont(font) + self.tabWidget.setStyleSheet("background-color:#0E1621; color:#BFFF00") + self.tabWidget.setTabPosition(QtWidgets.QTabWidget.North) + self.tabWidget.setTabShape(QtWidgets.QTabWidget.Triangular) + self.tabWidget.setDocumentMode(True) + self.tabWidget.setObjectName("tabWidget") + self.tab_2 = QtWidgets.QWidget() + self.tab_2.setObjectName("tab_2") + self.label_5 = QtWidgets.QLabel(self.tab_2) + self.label_5.setGeometry(QtCore.QRect(10, 20, 951, 41)) + font = QtGui.QFont() + font.setPointSize(14) + font.setBold(True) + font.setWeight(75) + self.label_5.setFont(font) + self.label_5.setStyleSheet("color:white") + self.label_5.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.label_5.setObjectName("label_5") + self.lineEdit_email = QtWidgets.QLineEdit(self.tab_2) + self.lineEdit_email.setGeometry(QtCore.QRect(10, 460, 361, 41)) + font = QtGui.QFont() + font.setBold(True) + font.setWeight(75) + self.lineEdit_email.setFont(font) + self.lineEdit_email.setStyleSheet("background-color:#0E1621; color:white") + self.lineEdit_email.setObjectName("lineEdit_email") + self.label_2 = QtWidgets.QLabel(self.tab_2) + self.label_2.setGeometry(QtCore.QRect(10, 190, 101, 41)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.label_2.setFont(font) + self.label_2.setStyleSheet("background-color:#242F3D;color:#E9E8E8") + self.label_2.setAlignment(QtCore.Qt.AlignCenter) + self.label_2.setObjectName("label_2") + self.label_3 = QtWidgets.QLabel(self.tab_2) + self.label_3.setGeometry(QtCore.QRect(10, 300, 101, 41)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.label_3.setFont(font) + self.label_3.setStyleSheet("background-color:#242F3D;color:#E9E8E8") + self.label_3.setAlignment(QtCore.Qt.AlignCenter) + self.label_3.setObjectName("label_3") + self.lineEdit_phone = QtWidgets.QLineEdit(self.tab_2) + self.lineEdit_phone.setGeometry(QtCore.QRect(10, 350, 361, 41)) + font = QtGui.QFont() + font.setBold(True) + font.setWeight(75) + self.lineEdit_phone.setFont(font) + self.lineEdit_phone.setStyleSheet("background-color:#0E1621; color:white") + self.lineEdit_phone.setObjectName("lineEdit_phone") + self.lineEdit_Fname = QtWidgets.QLineEdit(self.tab_2) + self.lineEdit_Fname.setGeometry(QtCore.QRect(10, 130, 361, 41)) + font = QtGui.QFont() + font.setBold(True) + font.setWeight(75) + self.lineEdit_Fname.setFont(font) + self.lineEdit_Fname.setStyleSheet("background-color:#0E1621; color:white") + self.lineEdit_Fname.setText("") + self.lineEdit_Fname.setObjectName("lineEdit_Fname") + self.label = QtWidgets.QLabel(self.tab_2) + self.label.setGeometry(QtCore.QRect(10, 80, 101, 41)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.label.setFont(font) + self.label.setStyleSheet("background-color:#242F3D;color:#E9E8E8") + self.label.setAlignment(QtCore.Qt.AlignCenter) + self.label.setObjectName("label") + self.lineEdit_Lname = QtWidgets.QLineEdit(self.tab_2) + self.lineEdit_Lname.setGeometry(QtCore.QRect(10, 240, 361, 41)) + font = QtGui.QFont() + font.setBold(True) + font.setWeight(75) + self.lineEdit_Lname.setFont(font) + self.lineEdit_Lname.setStyleSheet("background-color:#0E1621; color:white") + self.lineEdit_Lname.setText("") + self.lineEdit_Lname.setObjectName("lineEdit_Lname") + self.label_4 = QtWidgets.QLabel(self.tab_2) + self.label_4.setGeometry(QtCore.QRect(10, 410, 101, 41)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.label_4.setFont(font) + self.label_4.setStyleSheet("background-color:#242F3D;color:#E9E8E8") + self.label_4.setAlignment(QtCore.Qt.AlignCenter) + self.label_4.setObjectName("label_4") + self.pushButton_add = QtWidgets.QPushButton(self.tab_2) + self.pushButton_add.setGeometry(QtCore.QRect(20, 550, 71, 41)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.pushButton_add.setFont(font) + self.pushButton_add.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) + self.pushButton_add.setStyleSheet("background-color:#29A0DD; color:white") + self.pushButton_add.setAutoDefault(False) + self.pushButton_add.setDefault(False) + self.pushButton_add.setFlat(False) + self.pushButton_add.setObjectName("pushButton_add") + self.pushButton_update = QtWidgets.QPushButton(self.tab_2) + self.pushButton_update.setGeometry(QtCore.QRect(110, 550, 71, 41)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.pushButton_update.setFont(font) + self.pushButton_update.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) + self.pushButton_update.setStyleSheet("background-color:#29A0DD; color:white") + self.pushButton_update.setAutoDefault(False) + self.pushButton_update.setDefault(False) + self.pushButton_update.setFlat(False) + self.pushButton_update.setObjectName("pushButton_update") + self.pushButton_remove = QtWidgets.QPushButton(self.tab_2) + self.pushButton_remove.setGeometry(QtCore.QRect(200, 550, 71, 41)) + font = QtGui.QFont() + font.setPointSize(9) + font.setBold(True) + font.setWeight(75) + self.pushButton_remove.setFont(font) + self.pushButton_remove.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) + self.pushButton_remove.setStyleSheet("background-color:#29A0DD; color:white") + self.pushButton_remove.setAutoDefault(False) + self.pushButton_remove.setDefault(False) + self.pushButton_remove.setFlat(False) + self.pushButton_remove.setObjectName("pushButton_remove") + self.labelError = QtWidgets.QLabel(self.tab_2) + self.labelError.setGeometry(QtCore.QRect(10, 510, 361, 21)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.labelError.setFont(font) + self.labelError.setStyleSheet("color:#F03B33") + self.labelError.setText("") + self.labelError.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.labelError.setObjectName("labelError") + self.tabWidget.addTab(self.tab_2, "") + self.tab_3 = QtWidgets.QWidget() + self.tab_3.setObjectName("tab_3") + self.lineEdit = QtWidgets.QLineEdit(self.tab_3) + self.lineEdit.setGeometry(QtCore.QRect(10, 550, 281, 41)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.lineEdit.setFont(font) + self.lineEdit.setStyleSheet("background-color:#313B4D; color:white\n" +"") + self.lineEdit.setAlignment(QtCore.Qt.AlignCenter) + self.lineEdit.setReadOnly(True) + self.lineEdit.setObjectName("lineEdit") + self.labelError_2 = QtWidgets.QLabel(self.tab_3) + self.labelError_2.setGeometry(QtCore.QRect(10, 510, 361, 21)) + font = QtGui.QFont() + font.setPointSize(9) + font.setBold(True) + font.setWeight(75) + self.labelError_2.setFont(font) + self.labelError_2.setStyleSheet("color:#F03B33") + self.labelError_2.setText("") + self.labelError_2.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.labelError_2.setObjectName("labelError_2") + self.pushButton_add_2 = QtWidgets.QPushButton(self.tab_3) + self.pushButton_add_2.setGeometry(QtCore.QRect(300, 550, 71, 41)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.pushButton_add_2.setFont(font) + self.pushButton_add_2.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) + self.pushButton_add_2.setStyleSheet("background-color:#29A0DD; color:white") + self.pushButton_add_2.setObjectName("pushButton_add_2") + self.label_11 = QtWidgets.QLabel(self.tab_3) + self.label_11.setGeometry(QtCore.QRect(10, 20, 951, 41)) + font = QtGui.QFont() + font.setPointSize(14) + font.setBold(True) + font.setWeight(75) + self.label_11.setFont(font) + self.label_11.setStyleSheet("color:white") + self.label_11.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.label_11.setObjectName("label_11") + self.label_8 = QtWidgets.QLabel(self.tab_3) + self.label_8.setGeometry(QtCore.QRect(10, 190, 101, 41)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.label_8.setFont(font) + self.label_8.setStyleSheet("background-color:#242F3D;color:#E9E8E8") + self.label_8.setAlignment(QtCore.Qt.AlignCenter) + self.label_8.setObjectName("label_8") + self.lineEdit_phone_2 = QtWidgets.QLineEdit(self.tab_3) + self.lineEdit_phone_2.setGeometry(QtCore.QRect(10, 350, 361, 41)) + font = QtGui.QFont() + font.setBold(True) + font.setWeight(75) + self.lineEdit_phone_2.setFont(font) + self.lineEdit_phone_2.setStyleSheet("background-color:#0E1621; color:white") + self.lineEdit_phone_2.setObjectName("lineEdit_phone_2") + self.label_10 = QtWidgets.QLabel(self.tab_3) + self.label_10.setGeometry(QtCore.QRect(10, 410, 101, 41)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.label_10.setFont(font) + self.label_10.setStyleSheet("background-color:#242F3D;color:#E9E8E8") + self.label_10.setAlignment(QtCore.Qt.AlignCenter) + self.label_10.setObjectName("label_10") + self.label_9 = QtWidgets.QLabel(self.tab_3) + self.label_9.setGeometry(QtCore.QRect(10, 300, 101, 41)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.label_9.setFont(font) + self.label_9.setStyleSheet("background-color:#242F3D;color:#E9E8E8") + self.label_9.setAlignment(QtCore.Qt.AlignCenter) + self.label_9.setObjectName("label_9") + self.label_7 = QtWidgets.QLabel(self.tab_3) + self.label_7.setGeometry(QtCore.QRect(10, 80, 101, 41)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.label_7.setFont(font) + self.label_7.setStyleSheet("background-color:#242F3D;color:#E9E8E8") + self.label_7.setAlignment(QtCore.Qt.AlignCenter) + self.label_7.setObjectName("label_7") + self.lineEdit_Lname_2 = QtWidgets.QLineEdit(self.tab_3) + self.lineEdit_Lname_2.setGeometry(QtCore.QRect(10, 240, 361, 41)) + font = QtGui.QFont() + font.setBold(True) + font.setWeight(75) + self.lineEdit_Lname_2.setFont(font) + self.lineEdit_Lname_2.setStyleSheet("background-color:#0E1621; color:white") + self.lineEdit_Lname_2.setText("") + self.lineEdit_Lname_2.setObjectName("lineEdit_Lname_2") + self.lineEdit_email_2 = QtWidgets.QLineEdit(self.tab_3) + self.lineEdit_email_2.setGeometry(QtCore.QRect(10, 460, 361, 41)) + font = QtGui.QFont() + font.setBold(True) + font.setWeight(75) + self.lineEdit_email_2.setFont(font) + self.lineEdit_email_2.setStyleSheet("background-color:#0E1621; color:white") + self.lineEdit_email_2.setObjectName("lineEdit_email_2") + self.lineEdit_Fname_2 = QtWidgets.QLineEdit(self.tab_3) + self.lineEdit_Fname_2.setGeometry(QtCore.QRect(10, 130, 361, 41)) + font = QtGui.QFont() + font.setBold(True) + font.setWeight(75) + self.lineEdit_Fname_2.setFont(font) + self.lineEdit_Fname_2.setStyleSheet("background-color:#0E1621; color:white") + self.lineEdit_Fname_2.setText("") + self.lineEdit_Fname_2.setObjectName("lineEdit_Fname_2") + self.tabWidget.addTab(self.tab_3, "") + self.tab_4 = QtWidgets.QWidget() + self.tab_4.setObjectName("tab_4") + self.pushButton_Find = QtWidgets.QPushButton(self.tab_4) + self.pushButton_Find.setGeometry(QtCore.QRect(20, 80, 101, 51)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.pushButton_Find.setFont(font) + self.pushButton_Find.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) + self.pushButton_Find.setStyleSheet("background-color:#29A0DD; color:white") + self.pushButton_Find.setObjectName("pushButton_Find") + self.textBrowser = QtWidgets.QTextBrowser(self.tab_4) + self.textBrowser.setGeometry(QtCore.QRect(130, 150, 821, 191)) + font = QtGui.QFont() + font.setPointSize(11) + self.textBrowser.setFont(font) + self.textBrowser.setStyleSheet("background-color:#0E1621; color:white") + self.textBrowser.setFrameShape(QtWidgets.QFrame.StyledPanel) + self.textBrowser.setFrameShadow(QtWidgets.QFrame.Sunken) + self.textBrowser.setReadOnly(False) + self.textBrowser.setObjectName("textBrowser") + self.textBrowser_2 = QtWidgets.QTextBrowser(self.tab_4) + self.textBrowser_2.setGeometry(QtCore.QRect(130, 370, 341, 171)) + font = QtGui.QFont() + font.setPointSize(11) + self.textBrowser_2.setFont(font) + self.textBrowser_2.setStyleSheet("background-color:#0E1621; color:white") + self.textBrowser_2.setFrameShape(QtWidgets.QFrame.StyledPanel) + self.textBrowser_2.setFrameShadow(QtWidgets.QFrame.Sunken) + self.textBrowser_2.setReadOnly(False) + self.textBrowser_2.setObjectName("textBrowser_2") + self.label_12 = QtWidgets.QLabel(self.tab_4) + self.label_12.setGeometry(QtCore.QRect(10, 20, 951, 41)) + font = QtGui.QFont() + font.setPointSize(14) + font.setBold(True) + font.setWeight(75) + self.label_12.setFont(font) + self.label_12.setStyleSheet("color:white") + self.label_12.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.label_12.setObjectName("label_12") + self.textBrowser_3 = QtWidgets.QTextBrowser(self.tab_4) + self.textBrowser_3.setGeometry(QtCore.QRect(610, 370, 341, 171)) + font = QtGui.QFont() + font.setPointSize(11) + self.textBrowser_3.setFont(font) + self.textBrowser_3.setStyleSheet("background-color:#0E1621; color:white") + self.textBrowser_3.setFrameShape(QtWidgets.QFrame.StyledPanel) + self.textBrowser_3.setFrameShadow(QtWidgets.QFrame.Sunken) + self.textBrowser_3.setReadOnly(False) + self.textBrowser_3.setObjectName("textBrowser_3") + self.label_13 = QtWidgets.QLabel(self.tab_4) + self.label_13.setGeometry(QtCore.QRect(20, 150, 101, 41)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.label_13.setFont(font) + self.label_13.setStyleSheet("background-color:#242F3D;color:#E9E8E8") + self.label_13.setAlignment(QtCore.Qt.AlignCenter) + self.label_13.setObjectName("label_13") + self.label_14 = QtWidgets.QLabel(self.tab_4) + self.label_14.setGeometry(QtCore.QRect(20, 370, 101, 41)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.label_14.setFont(font) + self.label_14.setStyleSheet("background-color:#242F3D;color:#E9E8E8") + self.label_14.setAlignment(QtCore.Qt.AlignCenter) + self.label_14.setObjectName("label_14") + self.label_15 = QtWidgets.QLabel(self.tab_4) + self.label_15.setGeometry(QtCore.QRect(500, 370, 101, 41)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.label_15.setFont(font) + self.label_15.setStyleSheet("background-color:#242F3D;color:#E9E8E8") + self.label_15.setAlignment(QtCore.Qt.AlignCenter) + self.label_15.setObjectName("label_15") + self.tabWidget.addTab(self.tab_4, "") + self.horizontalSlider = QtWidgets.QSlider(self.centralwidget) + self.horizontalSlider.setGeometry(QtCore.QRect(915, 590, 41, 20)) + self.horizontalSlider.setMaximum(1) + self.horizontalSlider.setPageStep(10) + self.horizontalSlider.setProperty("value", 1) + self.horizontalSlider.setSliderPosition(1) + self.horizontalSlider.setTracking(True) + self.horizontalSlider.setOrientation(QtCore.Qt.Horizontal) + self.horizontalSlider.setInvertedAppearance(False) + self.horizontalSlider.setInvertedControls(False) + self.horizontalSlider.setTickPosition(QtWidgets.QSlider.TicksBothSides) + self.horizontalSlider.setTickInterval(0) + self.horizontalSlider.setObjectName("horizontalSlider") + self.label_dark = QtWidgets.QLabel(self.centralwidget) + self.label_dark.setGeometry(QtCore.QRect(915, 610, 41, 21)) + font = QtGui.QFont() + font.setPointSize(9) + font.setBold(True) + font.setWeight(75) + self.label_dark.setFont(font) + self.label_dark.setStyleSheet("background-color:#0E1621; color:#BFFF00") + self.label_dark.setAlignment(QtCore.Qt.AlignCenter) + self.label_dark.setObjectName("label_dark") + self.tableWidget = QtWidgets.QTableWidget(self.centralwidget) + self.tableWidget.setGeometry(QtCore.QRect(400, 120, 541, 431)) + self.tableWidget.setStyleSheet("background-color:#242F3D;color:#8D94A6") + self.tableWidget.setObjectName("tableWidget") + self.tableWidget.setColumnCount(4) + self.tableWidget.setRowCount(0) + item = QtWidgets.QTableWidgetItem() + self.tableWidget.setHorizontalHeaderItem(0, item) + item = QtWidgets.QTableWidgetItem() + self.tableWidget.setHorizontalHeaderItem(1, item) + item = QtWidgets.QTableWidgetItem() + self.tableWidget.setHorizontalHeaderItem(2, item) + item = QtWidgets.QTableWidgetItem() + self.tableWidget.setHorizontalHeaderItem(3, item) + self.tableWidget.horizontalHeader().setDefaultSectionSize(130) + self.tableWidget.horizontalHeader().setSortIndicatorShown(False) + self.tableWidget.horizontalHeader().setStretchLastSection(True) + self.pushButton_last = QtWidgets.QPushButton(self.centralwidget) + self.pushButton_last.setGeometry(QtCore.QRect(610, 570, 91, 41)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.pushButton_last.setFont(font) + self.pushButton_last.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) + self.pushButton_last.setStyleSheet("background-color:#29A0DD; color:white") + self.pushButton_last.setAutoDefault(False) + self.pushButton_last.setDefault(False) + self.pushButton_last.setFlat(False) + self.pushButton_last.setObjectName("pushButton_last") + self.pushButton_first = QtWidgets.QPushButton(self.centralwidget) + self.pushButton_first.setGeometry(QtCore.QRect(500, 570, 91, 41)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.pushButton_first.setFont(font) + self.pushButton_first.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) + self.pushButton_first.setStyleSheet("background-color:#29A0DD; color:white") + self.pushButton_first.setAutoDefault(False) + self.pushButton_first.setDefault(False) + self.pushButton_first.setFlat(False) + self.pushButton_first.setObjectName("pushButton_first") + self.label_6 = QtWidgets.QLabel(self.centralwidget) + self.label_6.setGeometry(QtCore.QRect(410, 570, 71, 41)) + font = QtGui.QFont() + font.setPointSize(11) + font.setBold(True) + font.setWeight(75) + self.label_6.setFont(font) + self.label_6.setStyleSheet("background-color:#242F3D;color:#E9E8E8") + self.label_6.setAlignment(QtCore.Qt.AlignCenter) + self.label_6.setObjectName("label_6") + self.label_save = QtWidgets.QLabel(self.centralwidget) + self.label_save.setGeometry(QtCore.QRect(860, 610, 41, 21)) + font = QtGui.QFont() + font.setPointSize(9) + font.setBold(True) + font.setWeight(75) + self.label_save.setFont(font) + self.label_save.setStyleSheet("background-color:#0E1621; color:#BFFF00") + self.label_save.setAlignment(QtCore.Qt.AlignCenter) + self.label_save.setObjectName("label_save") + self.horizontalSlider_2 = QtWidgets.QSlider(self.centralwidget) + self.horizontalSlider_2.setGeometry(QtCore.QRect(860, 590, 41, 20)) + self.horizontalSlider_2.setMaximum(1) + self.horizontalSlider_2.setPageStep(10) + self.horizontalSlider_2.setProperty("value", 0) + self.horizontalSlider_2.setSliderPosition(0) + self.horizontalSlider_2.setTracking(True) + self.horizontalSlider_2.setOrientation(QtCore.Qt.Horizontal) + self.horizontalSlider_2.setInvertedAppearance(False) + self.horizontalSlider_2.setInvertedControls(False) + self.horizontalSlider_2.setTickPosition(QtWidgets.QSlider.TicksBothSides) + self.horizontalSlider_2.setTickInterval(0) + self.horizontalSlider_2.setObjectName("horizontalSlider_2") + self.tabWidget.raise_() + self.label_dark.raise_() + self.horizontalSlider.raise_() + self.tableWidget.raise_() + self.pushButton_last.raise_() + self.pushButton_first.raise_() + self.label_6.raise_() + self.label_save.raise_() + self.horizontalSlider_2.raise_() + MainWindow.setCentralWidget(self.centralwidget) + + self.retranslateUi(MainWindow) + self.tabWidget.setCurrentIndex(0) + QtCore.QMetaObject.connectSlotsByName(MainWindow) + + def retranslateUi(self, MainWindow): + _translate = QtCore.QCoreApplication.translate + MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow")) + self.label_5.setText(_translate("MainWindow", "Change Contacts:")) + self.label_2.setText(_translate("MainWindow", "Last Name:")) + self.label_3.setText(_translate("MainWindow", "Phone:")) + self.label.setText(_translate("MainWindow", "First Name:")) + self.label_4.setText(_translate("MainWindow", "Email:")) + self.pushButton_add.setText(_translate("MainWindow", "Add")) + self.pushButton_update.setText(_translate("MainWindow", "Update")) + self.pushButton_remove.setText(_translate("MainWindow", "Remove")) + self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_2), _translate("MainWindow", "Contacts")) + self.lineEdit.setText(_translate("MainWindow", "www.fakenamegenerator.com")) + self.pushButton_add_2.setText(_translate("MainWindow", "Add")) + self.label_11.setText(_translate("MainWindow", "Get Contact From Web:")) + self.label_8.setText(_translate("MainWindow", "Last Name:")) + self.label_10.setText(_translate("MainWindow", "Email:")) + self.label_9.setText(_translate("MainWindow", "Phone:")) + self.label_7.setText(_translate("MainWindow", "First Name:")) + self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_3), _translate("MainWindow", "Web Scraping")) + self.pushButton_Find.setText(_translate("MainWindow", "Find")) + self.label_12.setText(_translate("MainWindow", "Find Contact In Text:")) + self.label_13.setText(_translate("MainWindow", "Text:")) + self.label_14.setText(_translate("MainWindow", "Name:")) + self.label_15.setText(_translate("MainWindow", "Phones:")) + self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_4), _translate("MainWindow", "Contact Finding")) + self.label_dark.setText(_translate("MainWindow", "Dark")) + item = self.tableWidget.horizontalHeaderItem(0) + item.setText(_translate("MainWindow", "First Name")) + item = self.tableWidget.horizontalHeaderItem(1) + item.setText(_translate("MainWindow", "Last Name")) + item = self.tableWidget.horizontalHeaderItem(2) + item.setText(_translate("MainWindow", "Phone Number")) + item = self.tableWidget.horizontalHeaderItem(3) + item.setText(_translate("MainWindow", "Email Address")) + self.pushButton_last.setText(_translate("MainWindow", "Last Name")) + self.pushButton_first.setText(_translate("MainWindow", "First Name")) + self.label_6.setText(_translate("MainWindow", "Sort:")) + self.label_save.setText(_translate("MainWindow", "Save")) + + +if __name__ == "__main__": + import sys + app = QtWidgets.QApplication(sys.argv) + MainWindow = QtWidgets.QMainWindow() + ui = Ui_MainWindow() + ui.setupUi(MainWindow) + MainWindow.show() + sys.exit(app.exec_()) diff --git a/Other Students' Projects/5/Win.ui b/Other Students' Projects/5/Win.ui new file mode 100644 index 0000000..197d9df --- /dev/null +++ b/Other Students' Projects/5/Win.ui @@ -0,0 +1,1198 @@ + + + MainWindow + + + + 0 + 0 + 969 + 644 + + + + MainWindow + + + color:#BFFF00 + + + + + + 0 + 0 + 969 + 644 + + + + + 15 + 75 + true + + + + background-color:#0E1621; color:#BFFF00 + + + QTabWidget::North + + + QTabWidget::Triangular + + + 0 + + + true + + + + Contacts + + + + + 10 + 20 + 951 + 41 + + + + + 14 + 75 + true + + + + color:white + + + Change Contacts: + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + 10 + 460 + 361 + 41 + + + + + 75 + true + + + + background-color:#0E1621; color:white + + + + + + 10 + 190 + 101 + 41 + + + + + 10 + 75 + true + + + + background-color:#242F3D;color:#E9E8E8 + + + Last Name: + + + Qt::AlignCenter + + + + + + 10 + 300 + 101 + 41 + + + + + 10 + 75 + true + + + + background-color:#242F3D;color:#E9E8E8 + + + Phone: + + + Qt::AlignCenter + + + + + + 10 + 350 + 361 + 41 + + + + + 75 + true + + + + background-color:#0E1621; color:white + + + + + + 10 + 130 + 361 + 41 + + + + + 75 + true + + + + background-color:#0E1621; color:white + + + + + + + + + 10 + 80 + 101 + 41 + + + + + 10 + 75 + true + + + + background-color:#242F3D;color:#E9E8E8 + + + First Name: + + + Qt::AlignCenter + + + + + + 10 + 240 + 361 + 41 + + + + + 75 + true + + + + background-color:#0E1621; color:white + + + + + + + + + 10 + 410 + 101 + 41 + + + + + 10 + 75 + true + + + + background-color:#242F3D;color:#E9E8E8 + + + Email: + + + Qt::AlignCenter + + + + + + 20 + 550 + 71 + 41 + + + + + 10 + 75 + true + + + + PointingHandCursor + + + background-color:#29A0DD; color:white + + + Add + + + false + + + false + + + false + + + + + + 110 + 550 + 71 + 41 + + + + + 10 + 75 + true + + + + PointingHandCursor + + + background-color:#29A0DD; color:white + + + Update + + + false + + + false + + + false + + + + + + 200 + 550 + 71 + 41 + + + + + 9 + 75 + true + + + + PointingHandCursor + + + background-color:#29A0DD; color:white + + + Remove + + + false + + + false + + + false + + + + + + 10 + 510 + 361 + 21 + + + + + 10 + 75 + true + + + + color:#F03B33 + + + + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + Web Scraping + + + + + 10 + 550 + 281 + 41 + + + + + 10 + 75 + true + + + + background-color:#313B4D; color:white + + + + www.fakenamegenerator.com + + + Qt::AlignCenter + + + true + + + + + + 10 + 510 + 361 + 21 + + + + + 9 + 75 + true + + + + color:#F03B33 + + + + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + 300 + 550 + 71 + 41 + + + + + 10 + 75 + true + + + + PointingHandCursor + + + background-color:#29A0DD; color:white + + + Add + + + + + + 10 + 20 + 951 + 41 + + + + + 14 + 75 + true + + + + color:white + + + Get Contact From Web: + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + 10 + 190 + 101 + 41 + + + + + 10 + 75 + true + + + + background-color:#242F3D;color:#E9E8E8 + + + Last Name: + + + Qt::AlignCenter + + + + + + 10 + 350 + 361 + 41 + + + + + 75 + true + + + + background-color:#0E1621; color:white + + + + + + 10 + 410 + 101 + 41 + + + + + 10 + 75 + true + + + + background-color:#242F3D;color:#E9E8E8 + + + Email: + + + Qt::AlignCenter + + + + + + 10 + 300 + 101 + 41 + + + + + 10 + 75 + true + + + + background-color:#242F3D;color:#E9E8E8 + + + Phone: + + + Qt::AlignCenter + + + + + + 10 + 80 + 101 + 41 + + + + + 10 + 75 + true + + + + background-color:#242F3D;color:#E9E8E8 + + + First Name: + + + Qt::AlignCenter + + + + + + 10 + 240 + 361 + 41 + + + + + 75 + true + + + + background-color:#0E1621; color:white + + + + + + + + + 10 + 460 + 361 + 41 + + + + + 75 + true + + + + background-color:#0E1621; color:white + + + + + + 10 + 130 + 361 + 41 + + + + + 75 + true + + + + background-color:#0E1621; color:white + + + + + + + + + Contact Finding + + + + + 20 + 80 + 101 + 51 + + + + + 10 + 75 + true + + + + PointingHandCursor + + + background-color:#29A0DD; color:white + + + Find + + + + + + 130 + 150 + 821 + 191 + + + + + 11 + + + + background-color:#0E1621; color:white + + + QFrame::StyledPanel + + + QFrame::Sunken + + + false + + + + + + 130 + 370 + 341 + 171 + + + + + 11 + + + + background-color:#0E1621; color:white + + + QFrame::StyledPanel + + + QFrame::Sunken + + + false + + + + + + 10 + 20 + 951 + 41 + + + + + 14 + 75 + true + + + + color:white + + + Find Contact In Text: + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + 610 + 370 + 341 + 171 + + + + + 11 + + + + background-color:#0E1621; color:white + + + QFrame::StyledPanel + + + QFrame::Sunken + + + false + + + + + + 20 + 150 + 101 + 41 + + + + + 10 + 75 + true + + + + background-color:#242F3D;color:#E9E8E8 + + + Text: + + + Qt::AlignCenter + + + + + + 20 + 370 + 101 + 41 + + + + + 10 + 75 + true + + + + background-color:#242F3D;color:#E9E8E8 + + + Name: + + + Qt::AlignCenter + + + + + + 500 + 370 + 101 + 41 + + + + + 10 + 75 + true + + + + background-color:#242F3D;color:#E9E8E8 + + + Phones: + + + Qt::AlignCenter + + + + + + + + 915 + 590 + 41 + 20 + + + + 1 + + + 10 + + + 1 + + + 1 + + + true + + + Qt::Horizontal + + + false + + + false + + + QSlider::TicksBothSides + + + 0 + + + + + + 915 + 610 + 41 + 21 + + + + + 9 + 75 + true + + + + background-color:#0E1621; color:#BFFF00 + + + Dark + + + Qt::AlignCenter + + + + + + 400 + 120 + 541 + 431 + + + + background-color:#242F3D;color:#8D94A6 + + + 130 + + + false + + + true + + + + First Name + + + + + Last Name + + + + + Phone Number + + + + + Email Address + + + + + + + 610 + 570 + 91 + 41 + + + + + 10 + 75 + true + + + + PointingHandCursor + + + background-color:#29A0DD; color:white + + + Last Name + + + false + + + false + + + false + + + + + + 500 + 570 + 91 + 41 + + + + + 10 + 75 + true + + + + PointingHandCursor + + + background-color:#29A0DD; color:white + + + First Name + + + false + + + false + + + false + + + + + + 410 + 570 + 71 + 41 + + + + + 11 + 75 + true + + + + background-color:#242F3D;color:#E9E8E8 + + + Sort: + + + Qt::AlignCenter + + + + + + 860 + 610 + 41 + 21 + + + + + 9 + 75 + true + + + + background-color:#0E1621; color:#BFFF00 + + + Save + + + Qt::AlignCenter + + + + + + 860 + 590 + 41 + 20 + + + + 1 + + + 10 + + + 0 + + + 0 + + + true + + + Qt::Horizontal + + + false + + + false + + + QSlider::TicksBothSides + + + 0 + + + tabWidget + label_dark + horizontalSlider + tableWidget + pushButton_last + pushButton_first + label_6 + label_save + horizontalSlider_2 + + + + + diff --git a/Other Students' Projects/5/keep.txt b/Other Students' Projects/5/keep.txt new file mode 100644 index 0000000..05cc2e5 --- /dev/null +++ b/Other Students' Projects/5/keep.txt @@ -0,0 +1,15 @@ +libraries: + pip install pyqt5-tools + pip install PyQt5 + pip install requests + pip install beautifulsoup4 + pip install lxml + +Designer: + C:\Program Files\Python37\Lib\site-packages\qt5_applications\Qt\bin\designer.exe + +Ui to Py: + Pyuic5 -x -o Win.py Win.ui + +Py to exe: + pyinstaller Application.py --name CMS4 --onefile --noconsole \ No newline at end of file diff --git a/Other Students' Projects/6/.idea/.gitignore b/Other Students' Projects/6/.idea/.gitignore new file mode 100644 index 0000000..0848fad --- /dev/null +++ b/Other Students' Projects/6/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Datasource local storage ignored files +/../../../../../../:\University\2nd Term\Others Homeworks\Negin\.idea/dataSources/ +/dataSources.local.xml +# Editor-based HTTP Client requests +/httpRequests/ diff --git a/Other Students' Projects/6/.idea/Negin.iml b/Other Students' Projects/6/.idea/Negin.iml new file mode 100644 index 0000000..d0876a7 --- /dev/null +++ b/Other Students' Projects/6/.idea/Negin.iml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/Other Students' Projects/6/.idea/inspectionProfiles/Project_Default.xml b/Other Students' Projects/6/.idea/inspectionProfiles/Project_Default.xml new file mode 100644 index 0000000..6eeafb9 --- /dev/null +++ b/Other Students' Projects/6/.idea/inspectionProfiles/Project_Default.xml @@ -0,0 +1,24 @@ + + + + \ No newline at end of file diff --git a/Other Students' Projects/6/.idea/inspectionProfiles/profiles_settings.xml b/Other Students' Projects/6/.idea/inspectionProfiles/profiles_settings.xml new file mode 100644 index 0000000..105ce2d --- /dev/null +++ b/Other Students' Projects/6/.idea/inspectionProfiles/profiles_settings.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/Other Students' Projects/6/.idea/misc.xml b/Other Students' Projects/6/.idea/misc.xml new file mode 100644 index 0000000..a2e120d --- /dev/null +++ b/Other Students' Projects/6/.idea/misc.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/Other Students' Projects/6/.idea/modules.xml b/Other Students' Projects/6/.idea/modules.xml new file mode 100644 index 0000000..6b00cfe --- /dev/null +++ b/Other Students' Projects/6/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/Other Students' Projects/6/Combiner.py b/Other Students' Projects/6/Combiner.py new file mode 100644 index 0000000..d7a1acb --- /dev/null +++ b/Other Students' Projects/6/Combiner.py @@ -0,0 +1,334 @@ +import json +from bs4 import BeautifulSoup +import requests +import re +from PyQt5 import QtCore, QtWidgets +from UI.Main import Ui_MainWindow +from UI.Extract import Ui_DialogEx +from UI.Manager import Ui_DialogMa +from UI.Online import Ui_DialogOn +from UI.Table import Ui_DialogTa +import sys + +# Hidpi scaling +QtWidgets.QApplication.setAttribute(QtCore.Qt.AA_EnableHighDpiScaling, True) +# use Hidpi icons +QtWidgets.QApplication.setAttribute(QtCore.Qt.AA_UseHighDpiPixmaps, True) + + +class Cms(Ui_MainWindow): + def __init__(self): + self.AllContacts = [] + + def setupUi(self, MenuWindow): + super().setupUi(MenuWindow) + + self.ReadDatabase() + self.pushButton.clicked.connect(self.PageMa) + self.pushButton_2.clicked.connect(self.PageTa) + self.pushButton_3.clicked.connect(self.PageEx) + self.pushButton_4.clicked.connect(self.PageOn) + + def retranslateUi(self, MenuWindow): + super().retranslateUi(MenuWindow) + + ## + def PageEx(self): + appEx = QtWidgets.QDialog() + self.Ex = Ui_DialogEx() + self.Ex.setupUi(appEx) + + self.Ex.pushButton.clicked.connect(self.ExtractText) + + appEx.show() + appEx.exec_() + + def ExtractText(self): + name = re.findall(r'[@]([\w]+)', self.Ex.textBrowser.toPlainText()) + number = re.findall(r'[#]([\d]+)', self.Ex.textBrowser.toPlainText()) + + self.Ex.textBrowser_2.setText("\n".join(name)) + self.Ex.textBrowser_3.setText("\n".join(number)) + + ## + def PageMa(self): + appMa = QtWidgets.QDialog() + self.Ma = Ui_DialogMa() + self.Ma.setupUi(appMa) + + self.ComboboxMa() + self.Ma.pushButton.clicked.connect(self.AddContact) + self.Ma.pushButton_2.clicked.connect(self.DeleteContact) + self.Ma.pushButton_3.clicked.connect(self.UpdateContact) + self.Ma.comboBox.currentIndexChanged.connect(self.LineEditsComboboxMa) + + appMa.show() + appMa.exec_() + + def AddContact(self): + List = [self.Ma.lineEdit_name.text(), self.Ma.lineEdit_lastname.text(), + self.Ma.lineEdit_number.text(), self.Ma.lineEdit_email.text()] + + self.Ma.label_error.clear() + if List[0]: + if self.Email(List[3]): + if List not in self.AllContacts: self.AllContacts.append(List) + try: + self.TableFill() + except: + pass + self.ComboboxMa() + self.LineEditsMa([]) + + else: + self.Ma.label_error.setText("Email address is not a valid one.") + + else: + self.Ma.label_error.setText("Name is necessary.") + + def UpdateContact(self): + contact_index = self.Ma.comboBox.currentIndex() + self.Ma.label_error.clear() + + if contact_index >= 0: + List = [self.Ma.lineEdit_name.text(), self.Ma.lineEdit_lastname.text(), + self.Ma.lineEdit_number.text(), self.Ma.lineEdit_email.text()] + + if List[0]: + if self.Email(List[3]): + self.AllContacts[contact_index] = List + try: + self.TableFill() + except: + pass + self.ComboboxMa() + self.LineEditsMa([]) + + else: + self.Ma.label_error.setText("Email address is not a valid one.") + + else: + self.Ma.label_error.setText("Name is necessary.") + + else: + self.Ma.label_error.setText("No contact selected from combobox.") + + def DeleteContact(self): + contact_index = self.Ma.comboBox.currentIndex() + + if contact_index >= 0: + self.AllContacts.pop(contact_index) + try: + self.TableFill() + except: + pass + self.ComboboxMa() + self.LineEditsMa([]) + + else: + self.Ma.label_error.setText("No contact selected from combobox.") + + def Email(self, address): + if address == "": + return True + else: + regex = '^[a-z0-9]+[\._]?[a-z0-9]+[@][a-z0-9]+[.][a-z0-9]{2,3}$' + + if re.search(regex, address.lower()): + return True + else: + return False + + def LineEditsMa(self, List): + if List: + self.Ma.lineEdit_name.setText(List[0]) + self.Ma.lineEdit_lastname.setText(List[1]) + self.Ma.lineEdit_number.setText(List[2]) + self.Ma.lineEdit_email.setText(List[3]) + + else: + self.Ma.lineEdit_name.clear() + self.Ma.lineEdit_lastname.clear() + self.Ma.lineEdit_number.clear() + self.Ma.lineEdit_email.clear() + + def ComboboxMa(self): + self.Ma.comboBox.clear() + self.Ma.comboBox.addItems(['{} {}'.format(i[0], i[1]) for i in self.AllContacts]) + self.Ma.comboBox.setCurrentIndex(-1) + + def LineEditsComboboxMa(self): + index = self.Ma.comboBox.currentIndex() + + if index > -1: + self.Ma.lineEdit_name.setText(self.AllContacts[index][0]) + self.Ma.lineEdit_lastname.setText(self.AllContacts[index][1]) + self.Ma.lineEdit_number.setText(self.AllContacts[index][2]) + self.Ma.lineEdit_email.setText(self.AllContacts[index][3]) + + + ## + def PageOn(self): + appOn = QtWidgets.QDialog() + self.On = Ui_DialogOn() + self.On.setupUi(appOn) + + self.On.pushButton.clicked.connect(self.ConnectToWeb) + self.On.comboBox.currentIndexChanged.connect(self.LineEditsComboboxOn) + self.On.pushButton_2.clicked.connect(self.EditWeb) + + appOn.show() + appOn.exec_() + + def ConnectToWeb(self): + link = "https://www.fakenamegenerator.com/" + self.On.label_error.clear() + self.LineEditsOn([]) + QtWidgets.QApplication.processEvents() + + try: + html = requests.get(link, headers=({'User-Agent': 'Chrome x64'})) + soup = BeautifulSoup(html.content, "html.parser") + + name = [i.get_text() for i in soup.select("div.address")] + info = [i.get_text() for i in soup.select("dl.dl-horizontal")] + + List = [name[0].split()[0], name[0].split()[2], + "+1" + info[3].split()[1], info[8].split()[2]] + + self.LineEditsOn(List) + self.On.label_error.setText("Added To Database.") + self.AllContacts.append(List) + try: + self.TableFill() + except: + pass + try: + self.ComboboxMa() + self.LineEditsMa([]) + except: + pass + self.On.comboBox.setCurrentIndex(0) + self.On.lineEdit_edit.setText(List[0]) + + except: + self.On.label_error.setText("Connection interrupt.") + + def LineEditsOn(self, List): + if List: + self.On.label_name.setText(List[0]) + self.On.label_lastname.setText(List[1]) + self.On.label_number.setText(List[2]) + self.On.label_email.setText(List[3]) + self.On.comboBox.setCurrentIndex(0) + + else: + self.On.label_name.clear() + self.On.label_lastname.clear() + self.On.label_number.clear() + self.On.label_email.clear() + + def LineEditsComboboxOn(self): + index = self.On.comboBox.currentIndex() + + if index == 0: + self.On.lineEdit_edit.setText(self.On.label_name.text()) + + elif index == 1: + self.On.lineEdit_edit.setText(self.On.label_lastname.text()) + + elif index == 2: + self.On.lineEdit_edit.setText(self.On.label_number.text()) + + else: + self.On.lineEdit_edit.setText(self.On.label_email.text()) + + def EditWeb(self): + List = [self.On.label_name.text(), self.On.label_lastname.text(), + self.On.label_number.text(), self.On.label_email.text()] + + index = self.On.comboBox.currentIndex() + List[index] = self.On.lineEdit_edit.text() + + self.AllContacts[-1] = List + self.LineEditsOn(List) + try: + self.TableFill() + except: + pass + try: + self.ComboboxMa() + self.LineEditsMa([]) + except: + pass + + ## + def PageTa(self): + appTa = QtWidgets.QDialog() + self.Ta = Ui_DialogTa() + self.Ta.setupUi(appTa) + + self.TableFill() + self.Ta.checkBox.clicked.connect(self.SortName) + self.Ta.checkBox_2.clicked.connect(self.SortLastName) + + appTa.show() + appTa.exec_() + + def SortName(self): + if self.Ta.checkBox.checkState() > 0: + self.Ta.checkBox_2.setCheckState(0) + else: + self.Ta.checkBox_2.setCheckState(2) + self.TableFill('sort') + + def SortLastName(self): + if self.Ta.checkBox_2.checkState() > 0: + self.Ta.checkBox.setCheckState(0) + else: + self.Ta.checkBox.setCheckState(2) + self.TableFill('sort') + + def TableFill(self, index=None): + SortList = self.AllContacts + + if index: + index = 0 if self.Ta.checkBox.checkState() else 1 + SortList = [i for i in sorted(self.AllContacts, key=lambda item: item[index])] + + x = 0 + self.Ta.tableWidget.setRowCount(0) + while x < len(self.AllContacts): + self.Ta.tableWidget.insertRow(x) + self.Ta.tableWidget.setItem(x, 0, QtWidgets.QTableWidgetItem(SortList[x][0])) + self.Ta.tableWidget.setItem(x, 1, QtWidgets.QTableWidgetItem(SortList[x][1])) + self.Ta.tableWidget.setItem(x, 2, QtWidgets.QTableWidgetItem(SortList[x][2])) + self.Ta.tableWidget.setItem(x, 3, QtWidgets.QTableWidgetItem(SortList[x][3])) + x += 1 + + ## + def ReadDatabase(self): + try: + with open("ContactsDB.txt", 'r') as file: + self.AllContacts = json.loads(file.read()) + + except: + with open("ContactsDB.txt", 'w') as file: + pass + + def SaveDatabase(self, _): + with open("ContactsDB.txt", 'w') as file: + file.write(json.dumps(self.AllContacts)) + + +if __name__ == "__main__": + app = QtWidgets.QApplication(sys.argv) + app.setStyle(QtWidgets.QStyleFactory.create("Fusion")) + window = QtWidgets.QMainWindow() + + gui = Cms() + gui.setupUi(window) + window.closeEvent = gui.SaveDatabase + + window.show() + sys.exit(app.exec_()) diff --git a/Other Students' Projects/6/ContactsDB.txt b/Other Students' Projects/6/ContactsDB.txt new file mode 100644 index 0000000..6a655a7 --- /dev/null +++ b/Other Students' Projects/6/ContactsDB.txt @@ -0,0 +1 @@ +[["Carol", "Johnson", "+1276-655-5785", "CarolCJohnson@jourrapide.com"], ["Lois", "Smith", "+1704-599-5061", "LoisJSmith@teleworm.us"], ["Briana", "Chambliss", "+1318-751-0539", "BrianaGChambliss@armyspy.com"], ["Eleanor", "Evans", "+1562-499-6732", "EleanorDEvans@dayrep.com"], ["Salvatore", "Funderburk", "+1662-253-4652", "SalvatoreTFunderburk@dayrep.com"]] \ No newline at end of file diff --git a/Other Students' Projects/6/Presentation.docx b/Other Students' Projects/6/Presentation.docx new file mode 100644 index 0000000..6a038c3 Binary files /dev/null and b/Other Students' Projects/6/Presentation.docx differ diff --git a/Other Students' Projects/6/UI/Extract.py b/Other Students' Projects/6/UI/Extract.py new file mode 100644 index 0000000..20fb585 --- /dev/null +++ b/Other Students' Projects/6/UI/Extract.py @@ -0,0 +1,157 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file 'Extract.ui' +# +# Created by: PyQt5 UI code generator 5.15.4 +# +# WARNING: Any manual changes made to this file will be lost when pyuic5 is +# run again. Do not edit this file unless you know what you are doing. + + +from PyQt5 import QtCore, QtGui, QtWidgets + + +class Ui_DialogEx(object): + def setupUi(self, DialogEx): + DialogEx.setObjectName("DialogEx") + DialogEx.resize(630, 737) + DialogEx.setStyleSheet("background-color:#676767") + self.label_3 = QtWidgets.QLabel(DialogEx) + self.label_3.setGeometry(QtCore.QRect(10, 150, 91, 41)) + font = QtGui.QFont() + font.setPointSize(14) + font.setBold(True) + font.setWeight(75) + self.label_3.setFont(font) + self.label_3.setStyleSheet("color:#FFDB00") + self.label_3.setFrameShape(QtWidgets.QFrame.Box) + self.label_3.setAlignment(QtCore.Qt.AlignCenter) + self.label_3.setObjectName("label_3") + self.textBrowser = QtWidgets.QTextBrowser(DialogEx) + self.textBrowser.setGeometry(QtCore.QRect(11, 191, 599, 150)) + font = QtGui.QFont() + font.setPointSize(13) + self.textBrowser.setFont(font) + self.textBrowser.viewport().setProperty("cursor", QtGui.QCursor(QtCore.Qt.IBeamCursor)) + self.textBrowser.setStyleSheet("color:white") + self.textBrowser.setFrameShape(QtWidgets.QFrame.NoFrame) + self.textBrowser.setReadOnly(False) + self.textBrowser.setObjectName("textBrowser") + self.label_4 = QtWidgets.QLabel(DialogEx) + self.label_4.setGeometry(QtCore.QRect(10, 460, 91, 41)) + font = QtGui.QFont() + font.setPointSize(14) + font.setBold(True) + font.setWeight(75) + self.label_4.setFont(font) + self.label_4.setStyleSheet("color:#FFDB00") + self.label_4.setFrameShape(QtWidgets.QFrame.Box) + self.label_4.setAlignment(QtCore.Qt.AlignCenter) + self.label_4.setObjectName("label_4") + self.text_2 = QtWidgets.QTextBrowser(DialogEx) + self.text_2.setGeometry(QtCore.QRect(10, 460, 291, 192)) + font = QtGui.QFont() + font.setPointSize(13) + self.text_2.setFont(font) + self.text_2.viewport().setProperty("cursor", QtGui.QCursor(QtCore.Qt.ArrowCursor)) + self.text_2.setReadOnly(True) + self.text_2.setObjectName("text_2") + self.label_2 = QtWidgets.QLabel(DialogEx) + self.label_2.setGeometry(QtCore.QRect(10, 40, 611, 61)) + font = QtGui.QFont() + font.setPointSize(21) + font.setBold(True) + font.setWeight(75) + self.label_2.setFont(font) + self.label_2.setStyleSheet("color:#FFDB00") + self.label_2.setAlignment(QtCore.Qt.AlignCenter) + self.label_2.setObjectName("label_2") + self.text_3 = QtWidgets.QTextBrowser(DialogEx) + self.text_3.setGeometry(QtCore.QRect(320, 460, 291, 192)) + font = QtGui.QFont() + font.setPointSize(13) + self.text_3.setFont(font) + self.text_3.viewport().setProperty("cursor", QtGui.QCursor(QtCore.Qt.ArrowCursor)) + self.text_3.setReadOnly(True) + self.text_3.setObjectName("text_3") + self.label_5 = QtWidgets.QLabel(DialogEx) + self.label_5.setGeometry(QtCore.QRect(320, 460, 121, 41)) + font = QtGui.QFont() + font.setPointSize(14) + font.setBold(True) + font.setWeight(75) + self.label_5.setFont(font) + self.label_5.setStyleSheet("color:#FFDB00") + self.label_5.setFrameShape(QtWidgets.QFrame.Box) + self.label_5.setAlignment(QtCore.Qt.AlignCenter) + self.label_5.setObjectName("label_5") + self.pushButton = QtWidgets.QPushButton(DialogEx) + self.pushButton.setGeometry(QtCore.QRect(500, 370, 111, 61)) + font = QtGui.QFont() + font.setPointSize(11) + font.setBold(True) + font.setWeight(75) + self.pushButton.setFont(font) + self.pushButton.setStyleSheet("background-color:#7018EB;color:white") + self.pushButton.setObjectName("pushButton") + self.text = QtWidgets.QTextBrowser(DialogEx) + self.text.setGeometry(QtCore.QRect(10, 150, 601, 192)) + self.text.viewport().setProperty("cursor", QtGui.QCursor(QtCore.Qt.ArrowCursor)) + self.text.setReadOnly(True) + self.text.setObjectName("text") + self.textBrowser_2 = QtWidgets.QTextBrowser(DialogEx) + self.textBrowser_2.setGeometry(QtCore.QRect(11, 501, 289, 150)) + font = QtGui.QFont() + font.setPointSize(13) + self.textBrowser_2.setFont(font) + self.textBrowser_2.viewport().setProperty("cursor", QtGui.QCursor(QtCore.Qt.IBeamCursor)) + self.textBrowser_2.setStyleSheet("color:white") + self.textBrowser_2.setFrameShape(QtWidgets.QFrame.NoFrame) + self.textBrowser_2.setReadOnly(True) + self.textBrowser_2.setObjectName("textBrowser_2") + self.textBrowser_3 = QtWidgets.QTextBrowser(DialogEx) + self.textBrowser_3.setGeometry(QtCore.QRect(321, 501, 289, 150)) + font = QtGui.QFont() + font.setPointSize(13) + self.textBrowser_3.setFont(font) + self.textBrowser_3.viewport().setProperty("cursor", QtGui.QCursor(QtCore.Qt.IBeamCursor)) + self.textBrowser_3.setStyleSheet("color:white") + self.textBrowser_3.setFrameShape(QtWidgets.QFrame.NoFrame) + self.textBrowser_3.setReadOnly(True) + self.textBrowser_3.setObjectName("textBrowser_3") + self.text.raise_() + self.textBrowser.raise_() + self.text_2.raise_() + self.label_3.raise_() + self.label_2.raise_() + self.label_4.raise_() + self.text_3.raise_() + self.label_5.raise_() + self.pushButton.raise_() + self.textBrowser_2.raise_() + self.textBrowser_3.raise_() + + self.retranslateUi(DialogEx) + QtCore.QMetaObject.connectSlotsByName(DialogEx) + + def retranslateUi(self, DialogEx): + _translate = QtCore.QCoreApplication.translate + DialogEx.setWindowTitle(_translate("DialogEx", "Dialog")) + self.label_3.setText(_translate("DialogEx", "Input:")) + self.textBrowser.setPlaceholderText(_translate("DialogEx", "Enter text ...")) + self.label_4.setText(_translate("DialogEx", "Names:")) + self.label_2.setText(_translate("DialogEx", "Contact Manageing System")) + self.label_5.setText(_translate("DialogEx", "Numbers:")) + self.pushButton.setText(_translate("DialogEx", "Extract")) + self.textBrowser_2.setPlaceholderText(_translate("DialogEx", "Results ...")) + self.textBrowser_3.setPlaceholderText(_translate("DialogEx", "Results ...")) + + +if __name__ == "__main__": + import sys + app = QtWidgets.QApplication(sys.argv) + DialogEx = QtWidgets.QDialog() + ui = Ui_DialogEx() + ui.setupUi(DialogEx) + DialogEx.show() + sys.exit(app.exec_()) diff --git a/Other Students' Projects/6/UI/Extract.ui b/Other Students' Projects/6/UI/Extract.ui new file mode 100644 index 0000000..eac69f1 --- /dev/null +++ b/Other Students' Projects/6/UI/Extract.ui @@ -0,0 +1,317 @@ + + + DialogEx + + + + 0 + 0 + 630 + 737 + + + + Dialog + + + background-color:#676767 + + + + + 10 + 150 + 91 + 41 + + + + + 14 + 75 + true + + + + color:#FFDB00 + + + QFrame::Box + + + Input: + + + Qt::AlignCenter + + + + + + 11 + 191 + 599 + 150 + + + + + 13 + + + + IBeamCursor + + + color:white + + + QFrame::NoFrame + + + false + + + Enter text ... + + + + + + 10 + 460 + 91 + 41 + + + + + 14 + 75 + true + + + + color:#FFDB00 + + + QFrame::Box + + + Names: + + + Qt::AlignCenter + + + + + + 10 + 460 + 291 + 192 + + + + + 13 + + + + ArrowCursor + + + true + + + + + + 10 + 40 + 611 + 61 + + + + + 21 + 75 + true + + + + color:#FFDB00 + + + Contact Manageing System + + + Qt::AlignCenter + + + + + + 320 + 460 + 291 + 192 + + + + + 13 + + + + ArrowCursor + + + true + + + + + + 320 + 460 + 121 + 41 + + + + + 14 + 75 + true + + + + color:#FFDB00 + + + QFrame::Box + + + Numbers: + + + Qt::AlignCenter + + + + + + 500 + 370 + 111 + 61 + + + + + 11 + 75 + true + + + + background-color:#7018EB;color:white + + + Extract + + + + + + 10 + 150 + 601 + 192 + + + + ArrowCursor + + + true + + + + + + 11 + 501 + 289 + 150 + + + + + 13 + + + + IBeamCursor + + + color:white + + + QFrame::NoFrame + + + true + + + Results ... + + + + + + 321 + 501 + 289 + 150 + + + + + 13 + + + + IBeamCursor + + + color:white + + + QFrame::NoFrame + + + true + + + Results ... + + + text + textBrowser + text_2 + label_3 + label_2 + label_4 + text_3 + label_5 + pushButton + textBrowser_2 + textBrowser_3 + + + + diff --git a/Other Students' Projects/6/UI/Main.py b/Other Students' Projects/6/UI/Main.py new file mode 100644 index 0000000..1f54b74 --- /dev/null +++ b/Other Students' Projects/6/UI/Main.py @@ -0,0 +1,114 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file 'Main.ui' +# +# Created by: PyQt5 UI code generator 5.15.4 +# +# WARNING: Any manual changes made to this file will be lost when pyuic5 is +# run again. Do not edit this file unless you know what you are doing. + + +from PyQt5 import QtCore, QtGui, QtWidgets + + +class Ui_MainWindow(object): + def setupUi(self, MainWindow): + MainWindow.setObjectName("MainWindow") + MainWindow.resize(630, 737) + MainWindow.setStyleSheet("background-color:#676767") + self.centralwidget = QtWidgets.QWidget(MainWindow) + self.centralwidget.setObjectName("centralwidget") + self.pushButton = QtWidgets.QPushButton(self.centralwidget) + self.pushButton.setGeometry(QtCore.QRect(220, 200, 191, 71)) + font = QtGui.QFont() + font.setPointSize(11) + font.setBold(True) + font.setWeight(75) + self.pushButton.setFont(font) + self.pushButton.setStyleSheet("background-color:#CC7722;color:white") + self.pushButton.setObjectName("pushButton") + self.label = QtWidgets.QLabel(self.centralwidget) + self.label.setGeometry(QtCore.QRect(10, 60, 611, 61)) + font = QtGui.QFont() + font.setPointSize(21) + font.setBold(True) + font.setWeight(75) + self.label.setFont(font) + self.label.setStyleSheet("color:#FFDB00") + self.label.setAlignment(QtCore.Qt.AlignCenter) + self.label.setObjectName("label") + self.pushButton_2 = QtWidgets.QPushButton(self.centralwidget) + self.pushButton_2.setGeometry(QtCore.QRect(220, 310, 191, 71)) + font = QtGui.QFont() + font.setPointSize(11) + font.setBold(True) + font.setWeight(75) + self.pushButton_2.setFont(font) + self.pushButton_2.setStyleSheet("background-color:#CC7722;color:white") + self.pushButton_2.setObjectName("pushButton_2") + self.pushButton_4 = QtWidgets.QPushButton(self.centralwidget) + self.pushButton_4.setGeometry(QtCore.QRect(220, 530, 191, 71)) + font = QtGui.QFont() + font.setPointSize(11) + font.setBold(True) + font.setWeight(75) + self.pushButton_4.setFont(font) + self.pushButton_4.setStyleSheet("background-color:#CC7722;color:white") + self.pushButton_4.setObjectName("pushButton_4") + self.pushButton_3 = QtWidgets.QPushButton(self.centralwidget) + self.pushButton_3.setGeometry(QtCore.QRect(220, 420, 191, 71)) + font = QtGui.QFont() + font.setPointSize(11) + font.setBold(True) + font.setWeight(75) + self.pushButton_3.setFont(font) + self.pushButton_3.setStyleSheet("background-color:#CC7722;color:white") + self.pushButton_3.setObjectName("pushButton_3") + self.label_2 = QtWidgets.QLabel(self.centralwidget) + self.label_2.setGeometry(QtCore.QRect(55, 680, 541, 31)) + font = QtGui.QFont() + font.setPointSize(9) + font.setBold(True) + font.setWeight(75) + self.label_2.setFont(font) + self.label_2.setStyleSheet("color:#4ACCFB") + self.label_2.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.label_2.setObjectName("label_2") + self.label_3 = QtWidgets.QLabel(self.centralwidget) + self.label_3.setGeometry(QtCore.QRect(10, 680, 41, 31)) + font = QtGui.QFont() + font.setPointSize(9) + font.setBold(True) + font.setWeight(75) + self.label_3.setFont(font) + self.label_3.setStyleSheet("color:#50C878") + self.label_3.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.label_3.setObjectName("label_3") + MainWindow.setCentralWidget(self.centralwidget) + self.statusbar = QtWidgets.QStatusBar(MainWindow) + self.statusbar.setObjectName("statusbar") + MainWindow.setStatusBar(self.statusbar) + + self.retranslateUi(MainWindow) + QtCore.QMetaObject.connectSlotsByName(MainWindow) + + def retranslateUi(self, MainWindow): + _translate = QtCore.QCoreApplication.translate + MainWindow.setWindowTitle(_translate("MainWindow", "Menu")) + self.pushButton.setText(_translate("MainWindow", "Manage Contacts")) + self.label.setText(_translate("MainWindow", "Contact Manageing System")) + self.pushButton_2.setText(_translate("MainWindow", "List Contacts")) + self.pushButton_4.setText(_translate("MainWindow", "Online Contacts")) + self.pushButton_3.setText(_translate("MainWindow", "Find Contacts")) + self.label_2.setText(_translate("MainWindow", "Database loads and saves automatically in opening and closing the program.")) + self.label_3.setText(_translate("MainWindow", "Note:")) + + +if __name__ == "__main__": + import sys + app = QtWidgets.QApplication(sys.argv) + MainWindow = QtWidgets.QMainWindow() + ui = Ui_MainWindow() + ui.setupUi(MainWindow) + MainWindow.show() + sys.exit(app.exec_()) diff --git a/Other Students' Projects/6/UI/Main.ui b/Other Students' Projects/6/UI/Main.ui new file mode 100644 index 0000000..064ec8e --- /dev/null +++ b/Other Students' Projects/6/UI/Main.ui @@ -0,0 +1,195 @@ + + + MainWindow + + + + 0 + 0 + 630 + 737 + + + + Menu + + + background-color:#676767 + + + + + + 220 + 200 + 191 + 71 + + + + + 11 + 75 + true + + + + background-color:#CC7722;color:white + + + Manage Contacts + + + + + + 10 + 60 + 611 + 61 + + + + + 21 + 75 + true + + + + color:#FFDB00 + + + Contact Manageing System + + + Qt::AlignCenter + + + + + + 220 + 310 + 191 + 71 + + + + + 11 + 75 + true + + + + background-color:#CC7722;color:white + + + List Contacts + + + + + + 220 + 530 + 191 + 71 + + + + + 11 + 75 + true + + + + background-color:#CC7722;color:white + + + Online Contacts + + + + + + 220 + 420 + 191 + 71 + + + + + 11 + 75 + true + + + + background-color:#CC7722;color:white + + + Find Contacts + + + + + + 55 + 680 + 541 + 31 + + + + + 9 + 75 + true + + + + color:#4ACCFB + + + Database loads and saves automatically in opening and closing the program. + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + 10 + 680 + 41 + 31 + + + + + 9 + 75 + true + + + + color:#50C878 + + + Note: + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + + + diff --git a/Other Students' Projects/6/UI/Manager.py b/Other Students' Projects/6/UI/Manager.py new file mode 100644 index 0000000..704223e --- /dev/null +++ b/Other Students' Projects/6/UI/Manager.py @@ -0,0 +1,195 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file 'Manager.ui' +# +# Created by: PyQt5 UI code generator 5.15.4 +# +# WARNING: Any manual changes made to this file will be lost when pyuic5 is +# run again. Do not edit this file unless you know what you are doing. + + +from PyQt5 import QtCore, QtGui, QtWidgets + + +class Ui_DialogMa(object): + def setupUi(self, DialogMa): + DialogMa.setObjectName("DialogMa") + DialogMa.resize(630, 737) + DialogMa.setStyleSheet("background-color:#676767") + self.label_5 = QtWidgets.QLabel(DialogMa) + self.label_5.setGeometry(QtCore.QRect(10, 400, 91, 41)) + font = QtGui.QFont() + font.setPointSize(14) + font.setBold(True) + font.setWeight(75) + self.label_5.setFont(font) + self.label_5.setStyleSheet("color:#DA614E;background-color:white") + self.label_5.setFrameShape(QtWidgets.QFrame.Box) + self.label_5.setAlignment(QtCore.Qt.AlignCenter) + self.label_5.setObjectName("label_5") + self.label_2 = QtWidgets.QLabel(DialogMa) + self.label_2.setGeometry(QtCore.QRect(10, 160, 91, 41)) + font = QtGui.QFont() + font.setPointSize(14) + font.setBold(True) + font.setWeight(75) + self.label_2.setFont(font) + self.label_2.setStyleSheet("color:#DA614E;background-color:white") + self.label_2.setFrameShape(QtWidgets.QFrame.Box) + self.label_2.setAlignment(QtCore.Qt.AlignCenter) + self.label_2.setObjectName("label_2") + self.label_4 = QtWidgets.QLabel(DialogMa) + self.label_4.setGeometry(QtCore.QRect(10, 320, 91, 41)) + font = QtGui.QFont() + font.setPointSize(13) + font.setBold(True) + font.setWeight(75) + self.label_4.setFont(font) + self.label_4.setStyleSheet("color:#DA614E;background-color:white") + self.label_4.setFrameShape(QtWidgets.QFrame.Box) + self.label_4.setAlignment(QtCore.Qt.AlignCenter) + self.label_4.setObjectName("label_4") + self.label_3 = QtWidgets.QLabel(DialogMa) + self.label_3.setGeometry(QtCore.QRect(10, 240, 91, 41)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.label_3.setFont(font) + self.label_3.setStyleSheet("color:#DA614E;background-color:white") + self.label_3.setFrameShape(QtWidgets.QFrame.Box) + self.label_3.setAlignment(QtCore.Qt.AlignCenter) + self.label_3.setObjectName("label_3") + self.label = QtWidgets.QLabel(DialogMa) + self.label.setGeometry(QtCore.QRect(10, 30, 611, 61)) + font = QtGui.QFont() + font.setPointSize(21) + font.setBold(True) + font.setWeight(75) + self.label.setFont(font) + self.label.setStyleSheet("color:#FFDB00") + self.label.setAlignment(QtCore.Qt.AlignCenter) + self.label.setObjectName("label") + self.comboBox = QtWidgets.QComboBox(DialogMa) + self.comboBox.setGeometry(QtCore.QRect(110, 480, 501, 41)) + font = QtGui.QFont() + font.setPointSize(10) + self.comboBox.setFont(font) + self.comboBox.setStyleSheet("color:#645452;background-color:white") + self.comboBox.setFrame(False) + self.comboBox.setObjectName("comboBox") + self.label_6 = QtWidgets.QLabel(DialogMa) + self.label_6.setGeometry(QtCore.QRect(10, 480, 91, 41)) + font = QtGui.QFont() + font.setPointSize(13) + font.setBold(True) + font.setWeight(75) + self.label_6.setFont(font) + self.label_6.setStyleSheet("color:#DA614E;background-color:white") + self.label_6.setFrameShape(QtWidgets.QFrame.Box) + self.label_6.setAlignment(QtCore.Qt.AlignCenter) + self.label_6.setObjectName("label_6") + self.pushButton = QtWidgets.QPushButton(DialogMa) + self.pushButton.setGeometry(QtCore.QRect(540, 540, 71, 51)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.pushButton.setFont(font) + self.pushButton.setStyleSheet("background-color:#7018EB;color:white") + self.pushButton.setObjectName("pushButton") + self.pushButton_3 = QtWidgets.QPushButton(DialogMa) + self.pushButton_3.setGeometry(QtCore.QRect(380, 540, 71, 51)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.pushButton_3.setFont(font) + self.pushButton_3.setStyleSheet("background-color:#7018EB;color:white") + self.pushButton_3.setObjectName("pushButton_3") + self.pushButton_2 = QtWidgets.QPushButton(DialogMa) + self.pushButton_2.setGeometry(QtCore.QRect(460, 540, 71, 51)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.pushButton_2.setFont(font) + self.pushButton_2.setStyleSheet("background-color:#7018EB;color:white") + self.pushButton_2.setObjectName("pushButton_2") + self.label_error = QtWidgets.QLabel(DialogMa) + self.label_error.setGeometry(QtCore.QRect(10, 540, 361, 21)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.label_error.setFont(font) + self.label_error.setStyleSheet("color:#FAFA37") + self.label_error.setFrameShape(QtWidgets.QFrame.NoFrame) + self.label_error.setText("") + self.label_error.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.label_error.setObjectName("label_error") + self.lineEdit_name = QtWidgets.QLineEdit(DialogMa) + self.lineEdit_name.setGeometry(QtCore.QRect(110, 160, 501, 41)) + font = QtGui.QFont() + font.setPointSize(10) + self.lineEdit_name.setFont(font) + self.lineEdit_name.setStyleSheet("color:#645452;background-color:white") + self.lineEdit_name.setClearButtonEnabled(True) + self.lineEdit_name.setObjectName("lineEdit_name") + self.lineEdit_lastname = QtWidgets.QLineEdit(DialogMa) + self.lineEdit_lastname.setGeometry(QtCore.QRect(110, 240, 501, 41)) + font = QtGui.QFont() + font.setPointSize(10) + self.lineEdit_lastname.setFont(font) + self.lineEdit_lastname.setStyleSheet("color:#645452;background-color:white") + self.lineEdit_lastname.setClearButtonEnabled(True) + self.lineEdit_lastname.setObjectName("lineEdit_lastname") + self.lineEdit_number = QtWidgets.QLineEdit(DialogMa) + self.lineEdit_number.setGeometry(QtCore.QRect(110, 320, 501, 41)) + font = QtGui.QFont() + font.setPointSize(10) + self.lineEdit_number.setFont(font) + self.lineEdit_number.setStyleSheet("color:#645452;background-color:white") + self.lineEdit_number.setClearButtonEnabled(True) + self.lineEdit_number.setObjectName("lineEdit_number") + self.lineEdit_email = QtWidgets.QLineEdit(DialogMa) + self.lineEdit_email.setGeometry(QtCore.QRect(110, 400, 501, 41)) + font = QtGui.QFont() + font.setPointSize(10) + self.lineEdit_email.setFont(font) + self.lineEdit_email.setStyleSheet("color:#645452;background-color:white") + self.lineEdit_email.setClearButtonEnabled(True) + self.lineEdit_email.setObjectName("lineEdit_email") + + self.retranslateUi(DialogMa) + QtCore.QMetaObject.connectSlotsByName(DialogMa) + DialogMa.setTabOrder(self.lineEdit_name, self.lineEdit_lastname) + DialogMa.setTabOrder(self.lineEdit_lastname, self.lineEdit_number) + DialogMa.setTabOrder(self.lineEdit_number, self.lineEdit_email) + DialogMa.setTabOrder(self.lineEdit_email, self.comboBox) + DialogMa.setTabOrder(self.comboBox, self.pushButton_3) + DialogMa.setTabOrder(self.pushButton_3, self.pushButton_2) + DialogMa.setTabOrder(self.pushButton_2, self.pushButton) + + def retranslateUi(self, DialogMa): + _translate = QtCore.QCoreApplication.translate + DialogMa.setWindowTitle(_translate("DialogMa", "Manager")) + self.label_5.setText(_translate("DialogMa", "Email")) + self.label_2.setText(_translate("DialogMa", "Name")) + self.label_4.setText(_translate("DialogMa", "Number")) + self.label_3.setText(_translate("DialogMa", "Last Name")) + self.label.setText(_translate("DialogMa", "Contact Manageing System")) + self.label_6.setText(_translate("DialogMa", "Contact")) + self.pushButton.setText(_translate("DialogMa", "Add")) + self.pushButton_3.setText(_translate("DialogMa", "Update")) + self.pushButton_2.setText(_translate("DialogMa", "Delete")) + + +if __name__ == "__main__": + import sys + app = QtWidgets.QApplication(sys.argv) + DialogMa = QtWidgets.QDialog() + ui = Ui_DialogMa() + ui.setupUi(DialogMa) + DialogMa.show() + sys.exit(app.exec_()) diff --git a/Other Students' Projects/6/UI/Manager.ui b/Other Students' Projects/6/UI/Manager.ui new file mode 100644 index 0000000..43cd666 --- /dev/null +++ b/Other Students' Projects/6/UI/Manager.ui @@ -0,0 +1,406 @@ + + + DialogMa + + + + 0 + 0 + 630 + 737 + + + + Manager + + + background-color:#676767 + + + + + 10 + 400 + 91 + 41 + + + + + 14 + 75 + true + + + + color:#DA614E;background-color:white + + + QFrame::Box + + + Email + + + Qt::AlignCenter + + + + + + 10 + 160 + 91 + 41 + + + + + 14 + 75 + true + + + + color:#DA614E;background-color:white + + + QFrame::Box + + + Name + + + Qt::AlignCenter + + + + + + 10 + 320 + 91 + 41 + + + + + 13 + 75 + true + + + + color:#DA614E;background-color:white + + + QFrame::Box + + + Number + + + Qt::AlignCenter + + + + + + 10 + 240 + 91 + 41 + + + + + 10 + 75 + true + + + + color:#DA614E;background-color:white + + + QFrame::Box + + + Last Name + + + Qt::AlignCenter + + + + + + 10 + 30 + 611 + 61 + + + + + 21 + 75 + true + + + + color:#FFDB00 + + + Contact Manageing System + + + Qt::AlignCenter + + + + + + 110 + 480 + 501 + 41 + + + + + 10 + + + + color:#645452;background-color:white + + + false + + + + + + 10 + 480 + 91 + 41 + + + + + 13 + 75 + true + + + + color:#DA614E;background-color:white + + + QFrame::Box + + + Contact + + + Qt::AlignCenter + + + + + + 540 + 540 + 71 + 51 + + + + + 10 + 75 + true + + + + background-color:#7018EB;color:white + + + Add + + + + + + 380 + 540 + 71 + 51 + + + + + 10 + 75 + true + + + + background-color:#7018EB;color:white + + + Update + + + + + + 460 + 540 + 71 + 51 + + + + + 10 + 75 + true + + + + background-color:#7018EB;color:white + + + Delete + + + + + + 10 + 540 + 361 + 21 + + + + + 10 + 75 + true + + + + color:#FAFA37 + + + QFrame::NoFrame + + + + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + 110 + 160 + 501 + 41 + + + + + 10 + + + + color:#645452;background-color:white + + + true + + + + + + 110 + 240 + 501 + 41 + + + + + 10 + + + + color:#645452;background-color:white + + + true + + + + + + 110 + 320 + 501 + 41 + + + + + 10 + + + + color:#645452;background-color:white + + + true + + + + + + 110 + 400 + 501 + 41 + + + + + 10 + + + + color:#645452;background-color:white + + + true + + + + + lineEdit_name + lineEdit_lastname + lineEdit_number + lineEdit_email + comboBox + pushButton_3 + pushButton_2 + pushButton + + + + diff --git a/Other Students' Projects/6/UI/Online.py b/Other Students' Projects/6/UI/Online.py new file mode 100644 index 0000000..fb5646d --- /dev/null +++ b/Other Students' Projects/6/UI/Online.py @@ -0,0 +1,212 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file 'Online.ui' +# +# Created by: PyQt5 UI code generator 5.15.4 +# +# WARNING: Any manual changes made to this file will be lost when pyuic5 is +# run again. Do not edit this file unless you know what you are doing. + + +from PyQt5 import QtCore, QtGui, QtWidgets + + +class Ui_DialogOn(object): + def setupUi(self, DialogOn): + DialogOn.setObjectName("DialogOn") + DialogOn.resize(630, 737) + font = QtGui.QFont() + font.setPointSize(3) + DialogOn.setFont(font) + DialogOn.setStyleSheet("background-color:#676767") + self.label = QtWidgets.QLabel(DialogOn) + self.label.setGeometry(QtCore.QRect(10, 30, 611, 61)) + font = QtGui.QFont() + font.setPointSize(21) + font.setBold(True) + font.setWeight(75) + self.label.setFont(font) + self.label.setStyleSheet("color:#FFDB00") + self.label.setAlignment(QtCore.Qt.AlignCenter) + self.label.setObjectName("label") + self.label_2 = QtWidgets.QLabel(DialogOn) + self.label_2.setGeometry(QtCore.QRect(10, 150, 91, 41)) + font = QtGui.QFont() + font.setPointSize(14) + font.setBold(True) + font.setWeight(75) + self.label_2.setFont(font) + self.label_2.setStyleSheet("color:#DA614E;background-color:white") + self.label_2.setFrameShape(QtWidgets.QFrame.Box) + self.label_2.setAlignment(QtCore.Qt.AlignCenter) + self.label_2.setObjectName("label_2") + self.label_name = QtWidgets.QLabel(DialogOn) + self.label_name.setGeometry(QtCore.QRect(110, 150, 501, 41)) + font = QtGui.QFont() + font.setPointSize(16) + font.setBold(True) + font.setWeight(75) + self.label_name.setFont(font) + self.label_name.setStyleSheet("color:#645452;background-color:white") + self.label_name.setFrameShape(QtWidgets.QFrame.Box) + self.label_name.setText("") + self.label_name.setAlignment(QtCore.Qt.AlignCenter) + self.label_name.setObjectName("label_name") + self.label_3 = QtWidgets.QLabel(DialogOn) + self.label_3.setGeometry(QtCore.QRect(10, 230, 91, 41)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.label_3.setFont(font) + self.label_3.setStyleSheet("color:#DA614E;background-color:white") + self.label_3.setFrameShape(QtWidgets.QFrame.Box) + self.label_3.setAlignment(QtCore.Qt.AlignCenter) + self.label_3.setObjectName("label_3") + self.label_lastname = QtWidgets.QLabel(DialogOn) + self.label_lastname.setGeometry(QtCore.QRect(110, 230, 501, 41)) + font = QtGui.QFont() + font.setPointSize(14) + font.setBold(True) + font.setWeight(75) + self.label_lastname.setFont(font) + self.label_lastname.setStyleSheet("color:#645452;background-color:white") + self.label_lastname.setFrameShape(QtWidgets.QFrame.Box) + self.label_lastname.setText("") + self.label_lastname.setAlignment(QtCore.Qt.AlignCenter) + self.label_lastname.setObjectName("label_lastname") + self.label_4 = QtWidgets.QLabel(DialogOn) + self.label_4.setGeometry(QtCore.QRect(10, 310, 91, 41)) + font = QtGui.QFont() + font.setPointSize(13) + font.setBold(True) + font.setWeight(75) + self.label_4.setFont(font) + self.label_4.setStyleSheet("color:#DA614E;background-color:white") + self.label_4.setFrameShape(QtWidgets.QFrame.Box) + self.label_4.setAlignment(QtCore.Qt.AlignCenter) + self.label_4.setObjectName("label_4") + self.label_number = QtWidgets.QLabel(DialogOn) + self.label_number.setGeometry(QtCore.QRect(110, 310, 501, 41)) + font = QtGui.QFont() + font.setPointSize(14) + font.setBold(True) + font.setWeight(75) + self.label_number.setFont(font) + self.label_number.setStyleSheet("color:#645452;background-color:white") + self.label_number.setFrameShape(QtWidgets.QFrame.Box) + self.label_number.setText("") + self.label_number.setAlignment(QtCore.Qt.AlignCenter) + self.label_number.setObjectName("label_number") + self.label_email = QtWidgets.QLabel(DialogOn) + self.label_email.setGeometry(QtCore.QRect(110, 390, 501, 41)) + font = QtGui.QFont() + font.setPointSize(14) + font.setBold(True) + font.setWeight(75) + self.label_email.setFont(font) + self.label_email.setStyleSheet("color:#645452;background-color:white") + self.label_email.setFrameShape(QtWidgets.QFrame.Box) + self.label_email.setText("") + self.label_email.setAlignment(QtCore.Qt.AlignCenter) + self.label_email.setObjectName("label_email") + self.label_5 = QtWidgets.QLabel(DialogOn) + self.label_5.setGeometry(QtCore.QRect(10, 390, 91, 41)) + font = QtGui.QFont() + font.setPointSize(14) + font.setBold(True) + font.setWeight(75) + self.label_5.setFont(font) + self.label_5.setStyleSheet("color:#DA614E;background-color:white") + self.label_5.setFrameShape(QtWidgets.QFrame.Box) + self.label_5.setAlignment(QtCore.Qt.AlignCenter) + self.label_5.setObjectName("label_5") + self.pushButton = QtWidgets.QPushButton(DialogOn) + self.pushButton.setGeometry(QtCore.QRect(540, 450, 71, 51)) + font = QtGui.QFont() + font.setPointSize(9) + font.setBold(True) + font.setWeight(75) + self.pushButton.setFont(font) + self.pushButton.setStyleSheet("background-color:#7018EB;color:white") + self.pushButton.setObjectName("pushButton") + self.label_error = QtWidgets.QLabel(DialogOn) + self.label_error.setGeometry(QtCore.QRect(10, 450, 521, 21)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.label_error.setFont(font) + self.label_error.setStyleSheet("color:#FAFA37") + self.label_error.setFrameShape(QtWidgets.QFrame.NoFrame) + self.label_error.setText("") + self.label_error.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.label_error.setObjectName("label_error") + self.label_6 = QtWidgets.QLabel(DialogOn) + self.label_6.setGeometry(QtCore.QRect(10, 530, 91, 41)) + font = QtGui.QFont() + font.setPointSize(14) + font.setBold(True) + font.setWeight(75) + self.label_6.setFont(font) + self.label_6.setStyleSheet("color:#DA614E;background-color:white") + self.label_6.setFrameShape(QtWidgets.QFrame.Box) + self.label_6.setAlignment(QtCore.Qt.AlignCenter) + self.label_6.setObjectName("label_6") + self.comboBox = QtWidgets.QComboBox(DialogOn) + self.comboBox.setGeometry(QtCore.QRect(110, 530, 101, 41)) + font = QtGui.QFont() + font.setPointSize(10) + self.comboBox.setFont(font) + self.comboBox.setStyleSheet("color:#645452;background-color:white") + self.comboBox.setObjectName("comboBox") + self.comboBox.addItem("") + self.comboBox.addItem("") + self.comboBox.addItem("") + self.comboBox.addItem("") + self.pushButton_2 = QtWidgets.QPushButton(DialogOn) + self.pushButton_2.setGeometry(QtCore.QRect(540, 530, 71, 41)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.pushButton_2.setFont(font) + self.pushButton_2.setStyleSheet("background-color:#7018EB;color:white") + self.pushButton_2.setObjectName("pushButton_2") + self.lineEdit_edit = QtWidgets.QLineEdit(DialogOn) + self.lineEdit_edit.setGeometry(QtCore.QRect(220, 530, 311, 41)) + font = QtGui.QFont() + font.setPointSize(10) + self.lineEdit_edit.setFont(font) + self.lineEdit_edit.setStyleSheet("color:#645452;background-color:white") + self.lineEdit_edit.setClearButtonEnabled(True) + self.lineEdit_edit.setObjectName("lineEdit_edit") + + self.retranslateUi(DialogOn) + QtCore.QMetaObject.connectSlotsByName(DialogOn) + + def retranslateUi(self, DialogOn): + _translate = QtCore.QCoreApplication.translate + DialogOn.setWindowTitle(_translate("DialogOn", "Online")) + self.label.setText(_translate("DialogOn", "Contact Manageing System")) + self.label_2.setText(_translate("DialogOn", "Name")) + self.label_3.setText(_translate("DialogOn", "Last Name")) + self.label_4.setText(_translate("DialogOn", "Number")) + self.label_5.setText(_translate("DialogOn", "Email")) + self.pushButton.setText(_translate("DialogOn", "Connect")) + self.label_6.setText(_translate("DialogOn", "Edit")) + self.comboBox.setItemText(0, _translate("DialogOn", "Name")) + self.comboBox.setItemText(1, _translate("DialogOn", "Last Name")) + self.comboBox.setItemText(2, _translate("DialogOn", "Number")) + self.comboBox.setItemText(3, _translate("DialogOn", "Email")) + self.pushButton_2.setText(_translate("DialogOn", "Change")) + + +if __name__ == "__main__": + import sys + app = QtWidgets.QApplication(sys.argv) + DialogOn = QtWidgets.QDialog() + ui = Ui_DialogOn() + ui.setupUi(DialogOn) + DialogOn.show() + sys.exit(app.exec_()) diff --git a/Other Students' Projects/6/UI/Online.ui b/Other Students' Projects/6/UI/Online.ui new file mode 100644 index 0000000..bc5ee12 --- /dev/null +++ b/Other Students' Projects/6/UI/Online.ui @@ -0,0 +1,448 @@ + + + DialogOn + + + + 0 + 0 + 630 + 737 + + + + + 3 + + + + Online + + + background-color:#676767 + + + + + 10 + 30 + 611 + 61 + + + + + 21 + 75 + true + + + + color:#FFDB00 + + + Contact Manageing System + + + Qt::AlignCenter + + + + + + 10 + 150 + 91 + 41 + + + + + 14 + 75 + true + + + + color:#DA614E;background-color:white + + + QFrame::Box + + + Name + + + Qt::AlignCenter + + + + + + 110 + 150 + 501 + 41 + + + + + 16 + 75 + true + + + + color:#645452;background-color:white + + + QFrame::Box + + + + + + Qt::AlignCenter + + + + + + 10 + 230 + 91 + 41 + + + + + 10 + 75 + true + + + + color:#DA614E;background-color:white + + + QFrame::Box + + + Last Name + + + Qt::AlignCenter + + + + + + 110 + 230 + 501 + 41 + + + + + 14 + 75 + true + + + + color:#645452;background-color:white + + + QFrame::Box + + + + + + Qt::AlignCenter + + + + + + 10 + 310 + 91 + 41 + + + + + 13 + 75 + true + + + + color:#DA614E;background-color:white + + + QFrame::Box + + + Number + + + Qt::AlignCenter + + + + + + 110 + 310 + 501 + 41 + + + + + 14 + 75 + true + + + + color:#645452;background-color:white + + + QFrame::Box + + + + + + Qt::AlignCenter + + + + + + 110 + 390 + 501 + 41 + + + + + 14 + 75 + true + + + + color:#645452;background-color:white + + + QFrame::Box + + + + + + Qt::AlignCenter + + + + + + 10 + 390 + 91 + 41 + + + + + 14 + 75 + true + + + + color:#DA614E;background-color:white + + + QFrame::Box + + + Email + + + Qt::AlignCenter + + + + + + 540 + 450 + 71 + 51 + + + + + 9 + 75 + true + + + + background-color:#7018EB;color:white + + + Connect + + + + + + 10 + 450 + 521 + 21 + + + + + 10 + 75 + true + + + + color:#FAFA37 + + + QFrame::NoFrame + + + + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + 10 + 530 + 91 + 41 + + + + + 14 + 75 + true + + + + color:#DA614E;background-color:white + + + QFrame::Box + + + Edit + + + Qt::AlignCenter + + + + + + 110 + 530 + 101 + 41 + + + + + 10 + + + + color:#645452;background-color:white + + + + Name + + + + + Last Name + + + + + Number + + + + + Email + + + + + + + 540 + 530 + 71 + 41 + + + + + 10 + 75 + true + + + + background-color:#7018EB;color:white + + + Change + + + + + + 220 + 530 + 311 + 41 + + + + + 10 + + + + color:#645452;background-color:white + + + true + + + + + + diff --git a/Other Students' Projects/6/UI/Table.py b/Other Students' Projects/6/UI/Table.py new file mode 100644 index 0000000..38244c4 --- /dev/null +++ b/Other Students' Projects/6/UI/Table.py @@ -0,0 +1,92 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file 'Table.ui' +# +# Created by: PyQt5 UI code generator 5.15.4 +# +# WARNING: Any manual changes made to this file will be lost when pyuic5 is +# run again. Do not edit this file unless you know what you are doing. + + +from PyQt5 import QtCore, QtGui, QtWidgets + + +class Ui_DialogTa(object): + def setupUi(self, DialogTa): + DialogTa.setObjectName("DialogTa") + DialogTa.resize(630, 737) + DialogTa.setStyleSheet("background-color:#676767") + self.checkBox = QtWidgets.QCheckBox(DialogTa) + self.checkBox.setGeometry(QtCore.QRect(30, 110, 111, 19)) + font = QtGui.QFont() + font.setBold(True) + font.setWeight(75) + self.checkBox.setFont(font) + self.checkBox.setStyleSheet("color:#FFDB00") + self.checkBox.setChecked(True) + self.checkBox.setTristate(False) + self.checkBox.setObjectName("checkBox") + self.checkBox_2 = QtWidgets.QCheckBox(DialogTa) + self.checkBox_2.setGeometry(QtCore.QRect(150, 110, 141, 19)) + font = QtGui.QFont() + font.setBold(True) + font.setWeight(75) + self.checkBox_2.setFont(font) + self.checkBox_2.setStyleSheet("color:#FFDB00") + self.checkBox_2.setTristate(False) + self.checkBox_2.setObjectName("checkBox_2") + self.tableWidget = QtWidgets.QTableWidget(DialogTa) + self.tableWidget.setGeometry(QtCore.QRect(20, 140, 591, 581)) + self.tableWidget.setStyleSheet("color:white") + self.tableWidget.setObjectName("tableWidget") + self.tableWidget.setColumnCount(4) + self.tableWidget.setRowCount(0) + item = QtWidgets.QTableWidgetItem() + self.tableWidget.setHorizontalHeaderItem(0, item) + item = QtWidgets.QTableWidgetItem() + self.tableWidget.setHorizontalHeaderItem(1, item) + item = QtWidgets.QTableWidgetItem() + self.tableWidget.setHorizontalHeaderItem(2, item) + item = QtWidgets.QTableWidgetItem() + self.tableWidget.setHorizontalHeaderItem(3, item) + self.tableWidget.horizontalHeader().setDefaultSectionSize(130) + self.tableWidget.horizontalHeader().setSortIndicatorShown(False) + self.tableWidget.horizontalHeader().setStretchLastSection(True) + self.label = QtWidgets.QLabel(DialogTa) + self.label.setGeometry(QtCore.QRect(10, 30, 611, 61)) + font = QtGui.QFont() + font.setPointSize(21) + font.setBold(True) + font.setWeight(75) + self.label.setFont(font) + self.label.setStyleSheet("color:#FFDB00") + self.label.setAlignment(QtCore.Qt.AlignCenter) + self.label.setObjectName("label") + + self.retranslateUi(DialogTa) + QtCore.QMetaObject.connectSlotsByName(DialogTa) + + def retranslateUi(self, DialogTa): + _translate = QtCore.QCoreApplication.translate + DialogTa.setWindowTitle(_translate("DialogTa", "Table")) + self.checkBox.setText(_translate("DialogTa", "Sort By Name")) + self.checkBox_2.setText(_translate("DialogTa", "Sort By Last Name")) + item = self.tableWidget.horizontalHeaderItem(0) + item.setText(_translate("DialogTa", "Name")) + item = self.tableWidget.horizontalHeaderItem(1) + item.setText(_translate("DialogTa", "Last Name")) + item = self.tableWidget.horizontalHeaderItem(2) + item.setText(_translate("DialogTa", "Number")) + item = self.tableWidget.horizontalHeaderItem(3) + item.setText(_translate("DialogTa", "Email")) + self.label.setText(_translate("DialogTa", "Contact Manageing System")) + + +if __name__ == "__main__": + import sys + app = QtWidgets.QApplication(sys.argv) + DialogTa = QtWidgets.QDialog() + ui = Ui_DialogTa() + ui.setupUi(DialogTa) + DialogTa.show() + sys.exit(app.exec_()) diff --git a/Other Students' Projects/6/UI/Table.ui b/Other Students' Projects/6/UI/Table.ui new file mode 100644 index 0000000..b46610c --- /dev/null +++ b/Other Students' Projects/6/UI/Table.ui @@ -0,0 +1,143 @@ + + + DialogTa + + + + 0 + 0 + 630 + 737 + + + + Table + + + background-color:#676767 + + + + + 30 + 110 + 111 + 19 + + + + + 75 + true + + + + color:#FFDB00 + + + Sort By Name + + + true + + + false + + + + + + 150 + 110 + 141 + 19 + + + + + 75 + true + + + + color:#FFDB00 + + + Sort By Last Name + + + false + + + + + + 20 + 140 + 591 + 581 + + + + color:white + + + 130 + + + false + + + true + + + + Name + + + + + Last Name + + + + + Number + + + + + Email + + + + + + + 10 + 30 + 611 + 61 + + + + + 21 + 75 + true + + + + color:#FFDB00 + + + Contact Manageing System + + + Qt::AlignCenter + + + + + + diff --git a/Other Students' Projects/6/keep.txt b/Other Students' Projects/6/keep.txt new file mode 100644 index 0000000..5555d7e --- /dev/null +++ b/Other Students' Projects/6/keep.txt @@ -0,0 +1,19 @@ +libraries: + pip install pyqt5-tools + pip install PyQt5 + pip install requests + pip install beautifulsoup4 + +Designer: + C:\Program Files\Python37\Lib\site-packages\qt5_applications\Qt\bin\designer.exe + +Ui to Py: + Pyuic5 -x -o UI\Extract.py UI\Extract.ui + Pyuic5 -x -o UI\Main.py UI\Main.ui + Pyuic5 -x -o UI\Manager.py UI\Manager.ui + Pyuic5 -x -o UI\Online.py UI\Online.ui + Pyuic5 -x -o UI\Table.py UI\Table.ui + + +py to exe: + pyinstaller .\Combiner.py --name Neg_CMS --onefile --noconsole \ No newline at end of file diff --git a/Other Students' Projects/7/.idea/.gitignore b/Other Students' Projects/7/.idea/.gitignore new file mode 100644 index 0000000..373e2ae --- /dev/null +++ b/Other Students' Projects/7/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Datasource local storage ignored files +/../../../../../../:\University\2nd Term\Others Homeworks\Omid\.idea/dataSources/ +/dataSources.local.xml +# Editor-based HTTP Client requests +/httpRequests/ diff --git a/Other Students' Projects/7/.idea/Omid.iml b/Other Students' Projects/7/.idea/Omid.iml new file mode 100644 index 0000000..d0876a7 --- /dev/null +++ b/Other Students' Projects/7/.idea/Omid.iml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/Other Students' Projects/7/.idea/inspectionProfiles/Project_Default.xml b/Other Students' Projects/7/.idea/inspectionProfiles/Project_Default.xml new file mode 100644 index 0000000..6eeafb9 --- /dev/null +++ b/Other Students' Projects/7/.idea/inspectionProfiles/Project_Default.xml @@ -0,0 +1,24 @@ + + + + \ No newline at end of file diff --git a/Other Students' Projects/7/.idea/inspectionProfiles/profiles_settings.xml b/Other Students' Projects/7/.idea/inspectionProfiles/profiles_settings.xml new file mode 100644 index 0000000..105ce2d --- /dev/null +++ b/Other Students' Projects/7/.idea/inspectionProfiles/profiles_settings.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/Other Students' Projects/7/.idea/misc.xml b/Other Students' Projects/7/.idea/misc.xml new file mode 100644 index 0000000..a2e120d --- /dev/null +++ b/Other Students' Projects/7/.idea/misc.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/Other Students' Projects/7/.idea/modules.xml b/Other Students' Projects/7/.idea/modules.xml new file mode 100644 index 0000000..1f5a3a0 --- /dev/null +++ b/Other Students' Projects/7/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/Other Students' Projects/7/CMS-App.py b/Other Students' Projects/7/CMS-App.py new file mode 100644 index 0000000..3d2af37 --- /dev/null +++ b/Other Students' Projects/7/CMS-App.py @@ -0,0 +1,387 @@ +import re +import sqlite3 +import sys +import json +from bs4 import BeautifulSoup +from lxml import etree +from requests import get +from random import randint +from PyQt5 import QtCore, QtWidgets, QtGui +from mainwin import Ui_MainWindow as Window + +# Hidpi scaling +QtWidgets.QApplication.setAttribute(QtCore.Qt.AA_EnableHighDpiScaling, True) +# use Hidpi icons +QtWidgets.QApplication.setAttribute(QtCore.Qt.AA_UseHighDpiPixmaps, True) + + +class MainClass(Window): + def setupUi(self, Main): + super().setupUi(Main) + + self.ContactsList = [] + + photo = QtGui.QPixmap('Photo.png') + self.labelPhoto.setPixmap(photo) + + self.label_version.setText("1.0.8") + + self.pushButtonAdd.clicked.connect(self.addContact) + self.pushButtonDelete.clicked.connect(self.deleteContact) + self.pushButtonUpdate.clicked.connect(self.updateContact) + self.comboBoxContact.currentIndexChanged.connect(self.InputContact) + self.lineEditEmail.textChanged.connect(self.CheckEmail) + self.lineEditPhone.textChanged.connect(self.CheckPhone) + + self.lineEditSearch.textChanged.connect(self.search) + self.pushButtonName.clicked.connect(self.sortName) + self.pushButtonFamily.clicked.connect(self.sortFamily) + + self.pushButtonCrawl.clicked.connect(self.crawl) + + self.pushButtonScrap.clicked.connect(self.scrap) + self.pushButtonUse.clicked.connect(self.use) + + self.pushButtonSQLSave.clicked.connect(self.saveSqlite) + self.pushButtonSQLRead.clicked.connect(self.readSqlite) + self.pushButtonTXTSave.clicked.connect(self.saveTXT) + self.pushButtonTXTRead.clicked.connect(self.readTXT) + + def retranslateUi(self, Main): + super().retranslateUi(Main) + + def addContact(self): + if self.lineEditName.text(): + self.error.clear() + first_name = self.lineEditName.text() + last_name = self.lineEditFamily.text() + phone_number = self.lineEditPhone.text() + email_address = self.lineEditEmail.text() + + temp = {'name': first_name, 'family': last_name, 'phone': phone_number, 'email': email_address} + + if temp not in self.ContactsList: + self.ContactsList.append(temp) + self.fillCombo() + self.table() + self.empty1() + else: + self.error.setText("Duplicated Contact !") + else: + self.error.setText("Name is empty !") + + def deleteContact(self): + if self.comboBoxContact.currentIndex() == -1: + self.error.setText("Please select a contact !") + else: + self.ContactsList.pop(self.comboBoxContact.currentIndex()) + self.error.clear() + self.fillCombo() + self.table() + self.empty1() + + def updateContact(self): + if self.comboBoxContact.currentIndex() == -1: + self.error.setText("Please select a contact !") + + else: + if self.lineEditName.text(): + self.error.clear() + first_name = self.lineEditName.text() + last_name = self.lineEditFamily.text() + phone_number = self.lineEditPhone.text() + email_address = self.lineEditEmail.text() + + temp = {'name': first_name, 'family': last_name, 'phone': phone_number, 'email': email_address} + + if temp not in self.ContactsList: + self.ContactsList[self.comboBoxContact.currentIndex()] = temp + self.fillCombo() + self.table() + self.empty1() + else: + self.error.setText("Duplicated Contact !") + else: + self.error.setText("Name is empty !") + + def empty1(self): + self.lineEditName.clear() + self.lineEditFamily.clear() + self.lineEditPhone.clear() + self.lineEditEmail.clear() + + def fillCombo(self): + self.comboBoxContact.clear() + self.comboBoxContact.addItems([f'{i["name"]}, {i["family"]}' for i in self.ContactsList]) + self.comboBoxContact.setCurrentIndex(-1) + + def InputContact(self): + if self.comboBoxContact.currentIndex() != -1: + contact = self.ContactsList[self.comboBoxContact.currentIndex()] + self.lineEditName.setText(contact['name']) + self.lineEditFamily.setText(contact['family']) + self.lineEditPhone.setText(contact['phone']) + self.lineEditEmail.setText(contact['email']) + + def CheckEmail(self): + text = self.lineEditEmail.text().lower() + regex = r'^(\w|\.|\_|\-)+[@](\w|\_|\-|\.)+[.]\w{2,3}$' + if text == "" or re.search(regex, text): + self.pushButtonUpdate.setEnabled(True) + self.pushButtonAdd.setEnabled(True) + self.error.clear() + + else: + self.pushButtonUpdate.setEnabled(False) + self.pushButtonAdd.setEnabled(False) + self.error.setText("Email address invalid !") + + def CheckPhone(self): + numbers = self.lineEditPhone.text() + if numbers == "" or numbers.isdigit(): + self.pushButtonUpdate.setEnabled(True) + self.pushButtonAdd.setEnabled(True) + self.error.clear() + + else: + self.pushButtonUpdate.setEnabled(False) + self.pushButtonAdd.setEnabled(False) + self.error.setText("Phone number invalid !") + + def search(self): + self.tableWidget.setRowCount(0) + + found = [] + searching = self.lineEditSearch.text() + for i in self.ContactsList: + for j in [j.lower() for j in i.values()]: + if searching.lower() in j: + if i not in found: + found.append(i) + + i = 0 + while i < len(found): + self.tableWidget.insertRow(i) + self.tableWidget.setItem(i, 0, QtWidgets.QTableWidgetItem(found[i]['name'])) + self.tableWidget.setItem(i, 1, QtWidgets.QTableWidgetItem(found[i]['family'])) + self.tableWidget.setItem(i, 2, QtWidgets.QTableWidgetItem(found[i]['phone'])) + self.tableWidget.setItem(i, 3, QtWidgets.QTableWidgetItem(found[i]['email'])) + i += 1 + + def sortName(self): + self.table('name') + + def sortFamily(self): + self.table('family') + + def table(self, sorting='name'): + self.tableWidget.setRowCount(0) + + sort = [i for i in sorted(self.ContactsList, key=lambda obj: obj[sorting])] + + i = 0 + while i < len(sort): + self.tableWidget.insertRow(i) + self.tableWidget.setItem(i, 0, QtWidgets.QTableWidgetItem(sort[i]['name'])) + self.tableWidget.setItem(i, 1, QtWidgets.QTableWidgetItem(sort[i]['family'])) + self.tableWidget.setItem(i, 2, QtWidgets.QTableWidgetItem(sort[i]['phone'])) + self.tableWidget.setItem(i, 3, QtWidgets.QTableWidgetItem(sort[i]['email'])) + i += 1 + + def crawl(self): + self.textBrowser_2.setText("\n".join(re.findall('[@]([a-zA-Z]+)', self.textBrowser.toPlainText()))) + self.textBrowser_3.setText("\n".join(re.findall('[#]([0-9]+)', self.textBrowser.toPlainText()))) + + def scrap(self): + site = self.comboBoxSite.currentIndex() + name, family, phone, email = "", "", "", "" + + if site == 0: + self.error_2.setVisible(False) + + site = "https://www.fakenamegenerator.com/" + + try: + webpage = get(site, headers={'User-Agent': 'mOMIDs'}) + soup = BeautifulSoup(webpage.content, "html.parser") + dom = etree.HTML(str(soup)) + + name = dom.xpath('/html/body/div[2]/div/div/div[1]/div/div[3]/div[2]/div[2]/div/div[1]/h3')[0].text + family = name.split()[-1] + name = name.replace(f' {family}', "") + phone = dom.xpath('/html/body/div[2]/div/div/div[1]/div/div[3]/div[2]/div[2]/div/div[2]/dl[4]/dd/text()')[0].replace("-", "") + email = dom.xpath('/html/body/div[2]/div/div/div[1]/div/div[3]/div[2]/div[2]/div/div[2]/dl[9]/dd/text()')[0].replace(" ", "") + + except: + self.error_2.setVisible(True) + self.error_2.setText("Inter Problem Detected !") + + else: + self.error_2.setVisible(False) + + random_contact = str(randint(10001, 99999)) + + site = "https://www.random-name-generator.com/united-states?gender=&n=1&s=" + random_contact + + try: + webpage = get(site, headers={'User-Agent': 'mOMIDs'}) + soup = BeautifulSoup(webpage.content, "html.parser") + dom = etree.HTML(str(soup)) + + name = dom.xpath('/html/body/div/div[4]/div[2]/div/div/div[5]/div/div/dl[1]/dd[1]/text()')[0].split()[0] + family = dom.xpath('/html/body/div/div[4]/div[2]/div/div/div[5]/div/div/dl[1]/dd[1]/text()')[0].split()[ + 1] + phone = dom.xpath('/html/body/div/div[4]/div[2]/div/div/div[5]/div/div/dl[1]/dd[3]/text()')[0] + phone = phone.replace("(", "").replace(") ", "").replace("+1", "").split()[0].replace("-", " ").replace( + ".", " ").replace(" ", "") + email = dom.xpath('/html/body/div/div[4]/div[2]/div/div/div[5]/div/div/dl[2]/dd[1]/text()')[0].replace( + "\n", "") + + except: + self.error_2.setVisible(True) + self.error_2.setText("Inter Problem Detected !") + + self.lineEditName_2.setText(name) + self.lineEditFamily_2.setText(family) + self.lineEditPhone_2.setText(phone) + self.lineEditEmail_2.setText(email) + + def use(self): + self.error.clear() + first_name = self.lineEditName_2.text() + last_name = self.lineEditFamily_2.text() + phone_number = self.lineEditPhone_2.text() + email_address = self.lineEditEmail_2.text() + + temp = {'name': first_name, 'family': last_name, 'phone': phone_number, 'email': email_address} + + if temp not in self.ContactsList: + self.ContactsList.append(temp) + self.fillCombo() + self.table() + self.empty1() + self.lineEditName_2.clear() + self.lineEditFamily_2.clear() + self.lineEditPhone_2.clear() + self.lineEditEmail_2.clear() + + else: + self.error_2.setText("Duplicated Contact !") + + def saveSqlite(self): + def create_connection(db_file): + try: + with open(db_file, "r") as file: + pass + except: + with open(db_file, "w") as file: + pass + + conn = None + try: + conn = sqlite3.connect(db_file) + return conn + except: + pass + + return conn + + # create a database connection + conn = create_connection("Database.db") + + # create tables + create_table_exe = """ CREATE TABLE IF NOT EXISTS Contacts ( + id integer PRIMARY KEY, + name text NOT NULL, + family text, + email text, + phone text + ); """ + c = conn.cursor() + c.execute(create_table_exe) + + # delete data + sql = 'DELETE FROM Contacts' + cur = conn.cursor() + cur.execute(sql) + conn.commit() + + # insert data + if self.ContactsList: + for i in self.ContactsList: + sql = ''' INSERT INTO Contacts(name,family,phone,email) + VALUES(?,?,?,?) ''' + cur = conn.cursor() + cur.execute(sql, list(i.values())) + conn.commit() + + self.error_3.setText("Sqlite Saved. !") + + def readSqlite(self): + ok = False + self.error_3.clear() + try: + with open("Database.db", "r") as file: + ok = True + self.error_3.setText("Sqlite loaded into program.") + + except: + self.error_3.setText("No sqlite database were found in directory.") + + if ok: + def create_connection(db_file): + conn = None + try: + conn = sqlite3.connect(db_file) + return conn + except: + pass + + return conn + + # create a database connection + conn = create_connection("Database.db") + + # read data + cur = conn.cursor() + cur.execute("SELECT * FROM Contacts") + rows = cur.fetchall() + self.ContactsList = [] + for row in rows: + temp = {'name': row[1], 'family': row[2], 'phone': row[4], 'email': row[3]} + self.ContactsList.append(temp) + + self.table() + + def saveTXT(self): + with open("Database.txt", 'w') as file: + file.write(json.dumps(self.ContactsList)) + + self.error_3.setText("TXT Saved. !") + + def readTXT(self): + try: + with open("Database.txt", 'r') as file: + self.ContactsList = json.loads(file.read()) + self.error_3.setText("TXT loaded into program.") + except: + self.error_3.setText("No TXT database were found in directory. A new One Created.") + with open("Database.txt", 'w') as file: + pass + + self.table() + + +if __name__ == "__main__": + CMSApp = QtWidgets.QApplication(sys.argv) + Window = QtWidgets.QMainWindow() + + Class = MainClass() + Class.setupUi(Window) + Class.readTXT() + Class.table() + Class.fillCombo() + Class.empty1() + + Window.show() + sys.exit(CMSApp.exec_()) diff --git a/Other Students' Projects/7/Database.txt b/Other Students' Projects/7/Database.txt new file mode 100644 index 0000000..b57d4d8 --- /dev/null +++ b/Other Students' Projects/7/Database.txt @@ -0,0 +1 @@ +[{"name": "Talia J.", "family": "Oquinn", "phone": "9035646528", "email": "TaliaJOquinn@dayrep.com"}, {"name": "Jeffrey D.", "family": "Deguzman", "phone": "3176585079", "email": "JeffreyDDeguzman@dayrep.com"}, {"name": "Angela G.", "family": "Patch", "phone": "9033347628", "email": "AngelaGPatch@rhyta.com"}] \ No newline at end of file diff --git a/Other Students' Projects/7/Photo.png b/Other Students' Projects/7/Photo.png new file mode 100644 index 0000000..c43d9be Binary files /dev/null and b/Other Students' Projects/7/Photo.png differ diff --git a/Other Students' Projects/7/Presentation.docx b/Other Students' Projects/7/Presentation.docx new file mode 100644 index 0000000..458caea Binary files /dev/null and b/Other Students' Projects/7/Presentation.docx differ diff --git a/Other Students' Projects/7/keep.txt b/Other Students' Projects/7/keep.txt new file mode 100644 index 0000000..8b4aa48 --- /dev/null +++ b/Other Students' Projects/7/keep.txt @@ -0,0 +1,16 @@ +libraries: +################# + pip install pyqt5-tools + pip install PyQt5 + pip install requests + pip install parsel + pip install dicttoxml + +Designer: + C:\Program Files\Python37\Lib\site-packages\qt5_applications\Qt\bin\designer.exe + +Ui to Py: + Pyuic5 -x -o mainwin.py mainwin.ui + +py to exe: + pyinstaller CMS-App.py --name mOMIDsCMS --onefile --noconsole \ No newline at end of file diff --git a/Other Students' Projects/7/mainwin.py b/Other Students' Projects/7/mainwin.py new file mode 100644 index 0000000..f88235d --- /dev/null +++ b/Other Students' Projects/7/mainwin.py @@ -0,0 +1,685 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file 'mainwin.ui' +# +# Created by: PyQt5 UI code generator 5.15.4 +# +# WARNING: Any manual changes made to this file will be lost when pyuic5 is +# run again. Do not edit this file unless you know what you are doing. + + +from PyQt5 import QtCore, QtGui, QtWidgets + + +class Ui_MainWindow(object): + def setupUi(self, MainWindow): + MainWindow.setObjectName("MainWindow") + MainWindow.resize(781, 652) + MainWindow.setMinimumSize(QtCore.QSize(781, 652)) + MainWindow.setMaximumSize(QtCore.QSize(781, 652)) + MainWindow.setStyleSheet("background-color:#67669F") + self.centralwidget = QtWidgets.QWidget(MainWindow) + self.centralwidget.setObjectName("centralwidget") + self.tabWidget = QtWidgets.QTabWidget(self.centralwidget) + self.tabWidget.setGeometry(QtCore.QRect(0, 0, 781, 581)) + font = QtGui.QFont() + font.setPointSize(11) + font.setBold(True) + font.setWeight(75) + self.tabWidget.setFont(font) + self.tabWidget.setStyleSheet("background-color:#67669F") + self.tabWidget.setTabShape(QtWidgets.QTabWidget.Rounded) + self.tabWidget.setElideMode(QtCore.Qt.ElideNone) + self.tabWidget.setDocumentMode(True) + self.tabWidget.setMovable(False) + self.tabWidget.setTabBarAutoHide(False) + self.tabWidget.setObjectName("tabWidget") + self.tab = QtWidgets.QWidget() + self.tab.setObjectName("tab") + self.label_3 = QtWidgets.QLabel(self.tab) + self.label_3.setGeometry(QtCore.QRect(20, 130, 131, 41)) + font = QtGui.QFont() + font.setPointSize(9) + font.setBold(True) + font.setWeight(75) + self.label_3.setFont(font) + self.label_3.setStyleSheet("background-color:#FFF44F;color:black;border-radius:0.2em") + self.label_3.setAlignment(QtCore.Qt.AlignCenter) + self.label_3.setObjectName("label_3") + self.lineEditName = QtWidgets.QLineEdit(self.tab) + self.lineEditName.setGeometry(QtCore.QRect(160, 130, 601, 41)) + font = QtGui.QFont() + font.setPointSize(9) + font.setBold(True) + font.setWeight(75) + self.lineEditName.setFont(font) + self.lineEditName.setStyleSheet("background-color:#E3FF00;color:#9457EB;border-radius:0.2em") + self.lineEditName.setObjectName("lineEditName") + self.label_4 = QtWidgets.QLabel(self.tab) + self.label_4.setGeometry(QtCore.QRect(20, 200, 131, 41)) + font = QtGui.QFont() + font.setPointSize(9) + font.setBold(True) + font.setWeight(75) + self.label_4.setFont(font) + self.label_4.setStyleSheet("background-color:#FFF44F;color:black;border-radius:0.2em") + self.label_4.setAlignment(QtCore.Qt.AlignCenter) + self.label_4.setObjectName("label_4") + self.lineEditFamily = QtWidgets.QLineEdit(self.tab) + self.lineEditFamily.setGeometry(QtCore.QRect(160, 200, 601, 41)) + font = QtGui.QFont() + font.setPointSize(9) + font.setBold(True) + font.setWeight(75) + self.lineEditFamily.setFont(font) + self.lineEditFamily.setStyleSheet("background-color:#E3FF00;color:#9457EB;border-radius:0.2em") + self.lineEditFamily.setObjectName("lineEditFamily") + self.label_5 = QtWidgets.QLabel(self.tab) + self.label_5.setGeometry(QtCore.QRect(20, 270, 131, 41)) + font = QtGui.QFont() + font.setPointSize(9) + font.setBold(True) + font.setWeight(75) + self.label_5.setFont(font) + self.label_5.setStyleSheet("background-color:#FFF44F;color:black;border-radius:0.2em") + self.label_5.setAlignment(QtCore.Qt.AlignCenter) + self.label_5.setObjectName("label_5") + self.lineEditPhone = QtWidgets.QLineEdit(self.tab) + self.lineEditPhone.setGeometry(QtCore.QRect(160, 270, 601, 41)) + font = QtGui.QFont() + font.setPointSize(9) + font.setBold(True) + font.setWeight(75) + self.lineEditPhone.setFont(font) + self.lineEditPhone.setStyleSheet("background-color:#E3FF00;color:#9457EB;border-radius:0.2em") + self.lineEditPhone.setObjectName("lineEditPhone") + self.label_6 = QtWidgets.QLabel(self.tab) + self.label_6.setGeometry(QtCore.QRect(20, 340, 131, 41)) + font = QtGui.QFont() + font.setPointSize(9) + font.setBold(True) + font.setWeight(75) + self.label_6.setFont(font) + self.label_6.setStyleSheet("background-color:#FFF44F;color:black;border-radius:0.2em") + self.label_6.setAlignment(QtCore.Qt.AlignCenter) + self.label_6.setObjectName("label_6") + self.lineEditEmail = QtWidgets.QLineEdit(self.tab) + self.lineEditEmail.setGeometry(QtCore.QRect(160, 340, 601, 41)) + font = QtGui.QFont() + font.setPointSize(9) + font.setBold(True) + font.setWeight(75) + self.lineEditEmail.setFont(font) + self.lineEditEmail.setStyleSheet("background-color:#E3FF00;color:#9457EB;border-radius:0.2em") + self.lineEditEmail.setObjectName("lineEditEmail") + self.pushButtonAdd = QtWidgets.QPushButton(self.tab) + self.pushButtonAdd.setGeometry(QtCore.QRect(700, 410, 61, 41)) + font = QtGui.QFont() + font.setPointSize(9) + font.setBold(True) + font.setWeight(75) + self.pushButtonAdd.setFont(font) + self.pushButtonAdd.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) + self.pushButtonAdd.setStyleSheet("background-color:#E07F5B;border-radius:0.2em") + self.pushButtonAdd.setObjectName("pushButtonAdd") + self.pushButtonDelete = QtWidgets.QPushButton(self.tab) + self.pushButtonDelete.setGeometry(QtCore.QRect(630, 410, 61, 41)) + font = QtGui.QFont() + font.setPointSize(9) + font.setBold(True) + font.setWeight(75) + self.pushButtonDelete.setFont(font) + self.pushButtonDelete.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) + self.pushButtonDelete.setStyleSheet("background-color:#E0BC5B;border-radius:0.2em") + self.pushButtonDelete.setObjectName("pushButtonDelete") + self.pushButtonUpdate = QtWidgets.QPushButton(self.tab) + self.pushButtonUpdate.setGeometry(QtCore.QRect(560, 410, 61, 41)) + font = QtGui.QFont() + font.setPointSize(9) + font.setBold(True) + font.setWeight(75) + self.pushButtonUpdate.setFont(font) + self.pushButtonUpdate.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) + self.pushButtonUpdate.setStyleSheet("background-color:#E0BC5B;border-radius:0.2em") + self.pushButtonUpdate.setObjectName("pushButtonUpdate") + self.label_12 = QtWidgets.QLabel(self.tab) + self.label_12.setGeometry(QtCore.QRect(20, 40, 741, 51)) + font = QtGui.QFont() + font.setPointSize(12) + font.setBold(True) + font.setWeight(75) + self.label_12.setFont(font) + self.label_12.setStyleSheet("background-color:#FF6347;color:white;border-radius:0.2em") + self.label_12.setAlignment(QtCore.Qt.AlignCenter) + self.label_12.setObjectName("label_12") + self.label_13 = QtWidgets.QLabel(self.tab) + self.label_13.setGeometry(QtCore.QRect(20, 410, 131, 41)) + font = QtGui.QFont() + font.setPointSize(9) + font.setBold(True) + font.setWeight(75) + self.label_13.setFont(font) + self.label_13.setStyleSheet("background-color:#FFF44F;color:black;border-radius:0.2em") + self.label_13.setAlignment(QtCore.Qt.AlignCenter) + self.label_13.setObjectName("label_13") + self.comboBoxContact = QtWidgets.QComboBox(self.tab) + self.comboBoxContact.setGeometry(QtCore.QRect(160, 410, 391, 41)) + font = QtGui.QFont() + font.setPointSize(9) + font.setBold(True) + font.setWeight(75) + self.comboBoxContact.setFont(font) + self.comboBoxContact.setStyleSheet("background-color:#E3FF00;color:#9457EB;border-radius:0.2em") + self.comboBoxContact.setObjectName("comboBoxContact") + self.error = QtWidgets.QLabel(self.tab) + self.error.setGeometry(QtCore.QRect(20, 460, 741, 21)) + font = QtGui.QFont() + font.setPointSize(9) + font.setBold(True) + font.setWeight(75) + self.error.setFont(font) + self.error.setStyleSheet("color:red") + self.error.setText("") + self.error.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.error.setObjectName("error") + self.tabWidget.addTab(self.tab, "") + self.tab_3 = QtWidgets.QWidget() + self.tab_3.setObjectName("tab_3") + self.tableWidget = QtWidgets.QTableWidget(self.tab_3) + self.tableWidget.setGeometry(QtCore.QRect(20, 170, 741, 361)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(False) + font.setWeight(50) + self.tableWidget.setFont(font) + self.tableWidget.setStyleSheet("background-color:#F8D568") + self.tableWidget.setObjectName("tableWidget") + self.tableWidget.setColumnCount(4) + self.tableWidget.setRowCount(0) + item = QtWidgets.QTableWidgetItem() + self.tableWidget.setHorizontalHeaderItem(0, item) + item = QtWidgets.QTableWidgetItem() + self.tableWidget.setHorizontalHeaderItem(1, item) + item = QtWidgets.QTableWidgetItem() + self.tableWidget.setHorizontalHeaderItem(2, item) + item = QtWidgets.QTableWidgetItem() + self.tableWidget.setHorizontalHeaderItem(3, item) + self.tableWidget.horizontalHeader().setDefaultSectionSize(158) + self.tableWidget.horizontalHeader().setStretchLastSection(True) + self.label_14 = QtWidgets.QLabel(self.tab_3) + self.label_14.setGeometry(QtCore.QRect(20, 40, 741, 51)) + font = QtGui.QFont() + font.setPointSize(12) + font.setBold(True) + font.setWeight(75) + self.label_14.setFont(font) + self.label_14.setStyleSheet("background-color:#FF6347;color:white;border-radius:0.2em") + self.label_14.setAlignment(QtCore.Qt.AlignCenter) + self.label_14.setObjectName("label_14") + self.lineEditSearch = QtWidgets.QLineEdit(self.tab_3) + self.lineEditSearch.setGeometry(QtCore.QRect(20, 110, 531, 41)) + font = QtGui.QFont() + font.setPointSize(9) + font.setBold(True) + font.setWeight(75) + self.lineEditSearch.setFont(font) + self.lineEditSearch.setStyleSheet("background-color:#E3FF00;color:#9457EB;border-radius:0.2em") + self.lineEditSearch.setObjectName("lineEditSearch") + self.pushButtonName = QtWidgets.QPushButton(self.tab_3) + self.pushButtonName.setGeometry(QtCore.QRect(630, 110, 61, 41)) + font = QtGui.QFont() + font.setPointSize(9) + font.setBold(True) + font.setWeight(75) + self.pushButtonName.setFont(font) + self.pushButtonName.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) + self.pushButtonName.setStyleSheet("background-color:#E0BC5B;border-radius:0.2em") + self.pushButtonName.setObjectName("pushButtonName") + self.pushButtonFamily = QtWidgets.QPushButton(self.tab_3) + self.pushButtonFamily.setGeometry(QtCore.QRect(700, 110, 61, 41)) + font = QtGui.QFont() + font.setPointSize(9) + font.setBold(True) + font.setWeight(75) + self.pushButtonFamily.setFont(font) + self.pushButtonFamily.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) + self.pushButtonFamily.setStyleSheet("background-color:#E0BC5B;border-radius:0.2em") + self.pushButtonFamily.setObjectName("pushButtonFamily") + self.label_15 = QtWidgets.QLabel(self.tab_3) + self.label_15.setGeometry(QtCore.QRect(560, 110, 61, 41)) + font = QtGui.QFont() + font.setPointSize(9) + font.setBold(True) + font.setWeight(75) + self.label_15.setFont(font) + self.label_15.setStyleSheet("background-color:#FFF44F;color:black;border-radius:0.2em") + self.label_15.setAlignment(QtCore.Qt.AlignCenter) + self.label_15.setObjectName("label_15") + self.tabWidget.addTab(self.tab_3, "") + self.tab_2 = QtWidgets.QWidget() + self.tab_2.setObjectName("tab_2") + self.textBrowser = QtWidgets.QTextBrowser(self.tab_2) + self.textBrowser.setGeometry(QtCore.QRect(20, 160, 731, 151)) + font = QtGui.QFont() + font.setPointSize(11) + self.textBrowser.setFont(font) + self.textBrowser.viewport().setProperty("cursor", QtGui.QCursor(QtCore.Qt.IBeamCursor)) + self.textBrowser.setStyleSheet("background-color:#E3FF00;color:#9457EB;border-radius:0.2em") + self.textBrowser.setReadOnly(False) + self.textBrowser.setObjectName("textBrowser") + self.label_16 = QtWidgets.QLabel(self.tab_2) + self.label_16.setGeometry(QtCore.QRect(20, 40, 741, 51)) + font = QtGui.QFont() + font.setPointSize(12) + font.setBold(True) + font.setWeight(75) + self.label_16.setFont(font) + self.label_16.setStyleSheet("background-color:#FF6347;color:white;border-radius:0.2em") + self.label_16.setAlignment(QtCore.Qt.AlignCenter) + self.label_16.setObjectName("label_16") + self.label_17 = QtWidgets.QLabel(self.tab_2) + self.label_17.setGeometry(QtCore.QRect(20, 110, 91, 41)) + font = QtGui.QFont() + font.setPointSize(9) + font.setBold(True) + font.setWeight(75) + self.label_17.setFont(font) + self.label_17.setStyleSheet("background-color:#FFF44F;color:black;border-radius:0.2em") + self.label_17.setAlignment(QtCore.Qt.AlignCenter) + self.label_17.setObjectName("label_17") + self.textBrowser_2 = QtWidgets.QTextBrowser(self.tab_2) + self.textBrowser_2.setGeometry(QtCore.QRect(20, 370, 361, 151)) + font = QtGui.QFont() + font.setPointSize(11) + self.textBrowser_2.setFont(font) + self.textBrowser_2.viewport().setProperty("cursor", QtGui.QCursor(QtCore.Qt.IBeamCursor)) + self.textBrowser_2.setStyleSheet("background-color:#E3FF00;color:#9457EB;border-radius:0.2em") + self.textBrowser_2.setObjectName("textBrowser_2") + self.label_18 = QtWidgets.QLabel(self.tab_2) + self.label_18.setGeometry(QtCore.QRect(20, 320, 161, 41)) + font = QtGui.QFont() + font.setPointSize(9) + font.setBold(True) + font.setWeight(75) + self.label_18.setFont(font) + self.label_18.setStyleSheet("background-color:#FFF44F;color:black;border-radius:0.2em") + self.label_18.setAlignment(QtCore.Qt.AlignCenter) + self.label_18.setObjectName("label_18") + self.textBrowser_3 = QtWidgets.QTextBrowser(self.tab_2) + self.textBrowser_3.setGeometry(QtCore.QRect(390, 370, 361, 151)) + font = QtGui.QFont() + font.setPointSize(11) + self.textBrowser_3.setFont(font) + self.textBrowser_3.viewport().setProperty("cursor", QtGui.QCursor(QtCore.Qt.IBeamCursor)) + self.textBrowser_3.setStyleSheet("background-color:#E3FF00;color:#9457EB;border-radius:0.2em") + self.textBrowser_3.setObjectName("textBrowser_3") + self.label_19 = QtWidgets.QLabel(self.tab_2) + self.label_19.setGeometry(QtCore.QRect(390, 320, 161, 41)) + font = QtGui.QFont() + font.setPointSize(9) + font.setBold(True) + font.setWeight(75) + self.label_19.setFont(font) + self.label_19.setStyleSheet("background-color:#FFF44F;color:black;border-radius:0.2em") + self.label_19.setAlignment(QtCore.Qt.AlignCenter) + self.label_19.setObjectName("label_19") + self.pushButtonCrawl = QtWidgets.QPushButton(self.tab_2) + self.pushButtonCrawl.setGeometry(QtCore.QRect(690, 110, 61, 41)) + font = QtGui.QFont() + font.setPointSize(9) + font.setBold(True) + font.setWeight(75) + self.pushButtonCrawl.setFont(font) + self.pushButtonCrawl.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) + self.pushButtonCrawl.setStyleSheet("background-color:#E0BC5B;border-radius:0.2em") + self.pushButtonCrawl.setObjectName("pushButtonCrawl") + self.tabWidget.addTab(self.tab_2, "") + self.tab_4 = QtWidgets.QWidget() + self.tab_4.setObjectName("tab_4") + self.label_2 = QtWidgets.QLabel(self.tab_4) + self.label_2.setGeometry(QtCore.QRect(20, 130, 131, 41)) + font = QtGui.QFont() + font.setPointSize(9) + font.setBold(True) + font.setWeight(75) + self.label_2.setFont(font) + self.label_2.setStyleSheet("background-color:#FFF44F;color:black;border-radius:0.2em") + self.label_2.setAlignment(QtCore.Qt.AlignCenter) + self.label_2.setObjectName("label_2") + self.comboBoxSite = QtWidgets.QComboBox(self.tab_4) + self.comboBoxSite.setGeometry(QtCore.QRect(160, 130, 441, 41)) + font = QtGui.QFont() + font.setPointSize(9) + font.setBold(True) + font.setWeight(75) + self.comboBoxSite.setFont(font) + self.comboBoxSite.setStyleSheet("background-color:#E3FF00;color:#9457EB;border-radius:0.2em") + self.comboBoxSite.setObjectName("comboBoxSite") + self.comboBoxSite.addItem("") + self.comboBoxSite.addItem("") + self.lineEditEmail_2 = QtWidgets.QLineEdit(self.tab_4) + self.lineEditEmail_2.setGeometry(QtCore.QRect(160, 410, 601, 41)) + font = QtGui.QFont() + font.setPointSize(9) + font.setBold(True) + font.setWeight(75) + self.lineEditEmail_2.setFont(font) + self.lineEditEmail_2.setStyleSheet("background-color:#E3FF00;color:#9457EB;border-radius:0.2em") + self.lineEditEmail_2.setObjectName("lineEditEmail_2") + self.label_7 = QtWidgets.QLabel(self.tab_4) + self.label_7.setGeometry(QtCore.QRect(20, 270, 131, 41)) + font = QtGui.QFont() + font.setPointSize(9) + font.setBold(True) + font.setWeight(75) + self.label_7.setFont(font) + self.label_7.setStyleSheet("background-color:#FFF44F;color:black;border-radius:0.2em") + self.label_7.setAlignment(QtCore.Qt.AlignCenter) + self.label_7.setObjectName("label_7") + self.label_8 = QtWidgets.QLabel(self.tab_4) + self.label_8.setGeometry(QtCore.QRect(20, 410, 131, 41)) + font = QtGui.QFont() + font.setPointSize(9) + font.setBold(True) + font.setWeight(75) + self.label_8.setFont(font) + self.label_8.setStyleSheet("background-color:#FFF44F;color:black;border-radius:0.2em") + self.label_8.setAlignment(QtCore.Qt.AlignCenter) + self.label_8.setObjectName("label_8") + self.label_9 = QtWidgets.QLabel(self.tab_4) + self.label_9.setGeometry(QtCore.QRect(20, 200, 131, 41)) + font = QtGui.QFont() + font.setPointSize(9) + font.setBold(True) + font.setWeight(75) + self.label_9.setFont(font) + self.label_9.setStyleSheet("background-color:#FFF44F;color:black;border-radius:0.2em") + self.label_9.setAlignment(QtCore.Qt.AlignCenter) + self.label_9.setObjectName("label_9") + self.label_10 = QtWidgets.QLabel(self.tab_4) + self.label_10.setGeometry(QtCore.QRect(20, 340, 131, 41)) + font = QtGui.QFont() + font.setPointSize(9) + font.setBold(True) + font.setWeight(75) + self.label_10.setFont(font) + self.label_10.setStyleSheet("background-color:#FFF44F;color:black;border-radius:0.2em") + self.label_10.setAlignment(QtCore.Qt.AlignCenter) + self.label_10.setObjectName("label_10") + self.lineEditName_2 = QtWidgets.QLineEdit(self.tab_4) + self.lineEditName_2.setGeometry(QtCore.QRect(160, 200, 601, 41)) + font = QtGui.QFont() + font.setPointSize(9) + font.setBold(True) + font.setWeight(75) + self.lineEditName_2.setFont(font) + self.lineEditName_2.setStyleSheet("background-color:#E3FF00;color:#9457EB;border-radius:0.2em") + self.lineEditName_2.setObjectName("lineEditName_2") + self.lineEditFamily_2 = QtWidgets.QLineEdit(self.tab_4) + self.lineEditFamily_2.setGeometry(QtCore.QRect(160, 270, 601, 41)) + font = QtGui.QFont() + font.setPointSize(9) + font.setBold(True) + font.setWeight(75) + self.lineEditFamily_2.setFont(font) + self.lineEditFamily_2.setStyleSheet("background-color:#E3FF00;color:#9457EB;border-radius:0.2em") + self.lineEditFamily_2.setObjectName("lineEditFamily_2") + self.lineEditPhone_2 = QtWidgets.QLineEdit(self.tab_4) + self.lineEditPhone_2.setGeometry(QtCore.QRect(160, 340, 601, 41)) + font = QtGui.QFont() + font.setPointSize(9) + font.setBold(True) + font.setWeight(75) + self.lineEditPhone_2.setFont(font) + self.lineEditPhone_2.setStyleSheet("background-color:#E3FF00;color:#9457EB;border-radius:0.2em") + self.lineEditPhone_2.setObjectName("lineEditPhone_2") + self.pushButtonScrap = QtWidgets.QPushButton(self.tab_4) + self.pushButtonScrap.setGeometry(QtCore.QRect(620, 130, 61, 41)) + font = QtGui.QFont() + font.setPointSize(9) + font.setBold(True) + font.setWeight(75) + self.pushButtonScrap.setFont(font) + self.pushButtonScrap.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) + self.pushButtonScrap.setStyleSheet("background-color:#E0BC5B;border-radius:0.2em") + self.pushButtonScrap.setObjectName("pushButtonScrap") + self.pushButtonUse = QtWidgets.QPushButton(self.tab_4) + self.pushButtonUse.setGeometry(QtCore.QRect(700, 130, 61, 41)) + font = QtGui.QFont() + font.setPointSize(9) + font.setBold(True) + font.setWeight(75) + self.pushButtonUse.setFont(font) + self.pushButtonUse.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) + self.pushButtonUse.setStyleSheet("background-color:#E0BC5B;border-radius:0.2em") + self.pushButtonUse.setObjectName("pushButtonUse") + self.label_11 = QtWidgets.QLabel(self.tab_4) + self.label_11.setGeometry(QtCore.QRect(20, 40, 741, 51)) + font = QtGui.QFont() + font.setPointSize(12) + font.setBold(True) + font.setWeight(75) + self.label_11.setFont(font) + self.label_11.setStyleSheet("background-color:#FF6347;color:white;border-radius:0.2em") + self.label_11.setAlignment(QtCore.Qt.AlignCenter) + self.label_11.setObjectName("label_11") + self.error_2 = QtWidgets.QLabel(self.tab_4) + self.error_2.setGeometry(QtCore.QRect(20, 460, 741, 21)) + font = QtGui.QFont() + font.setPointSize(9) + font.setBold(True) + font.setWeight(75) + self.error_2.setFont(font) + self.error_2.setStyleSheet("color:red") + self.error_2.setText("") + self.error_2.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.error_2.setObjectName("error_2") + self.tabWidget.addTab(self.tab_4, "") + self.tab_5 = QtWidgets.QWidget() + self.tab_5.setObjectName("tab_5") + self.pushButtonTXTSave = QtWidgets.QPushButton(self.tab_5) + self.pushButtonTXTSave.setGeometry(QtCore.QRect(320, 120, 61, 41)) + font = QtGui.QFont() + font.setPointSize(9) + font.setBold(True) + font.setWeight(75) + self.pushButtonTXTSave.setFont(font) + self.pushButtonTXTSave.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) + self.pushButtonTXTSave.setStyleSheet("background-color:#E0BC5B;border-radius:0.2em") + self.pushButtonTXTSave.setObjectName("pushButtonTXTSave") + self.pushButtonSQLSave = QtWidgets.QPushButton(self.tab_5) + self.pushButtonSQLSave.setGeometry(QtCore.QRect(240, 120, 61, 41)) + font = QtGui.QFont() + font.setPointSize(9) + font.setBold(True) + font.setWeight(75) + self.pushButtonSQLSave.setFont(font) + self.pushButtonSQLSave.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) + self.pushButtonSQLSave.setStyleSheet("background-color:#E0BC5B;border-radius:0.2em") + self.pushButtonSQLSave.setObjectName("pushButtonSQLSave") + self.label_20 = QtWidgets.QLabel(self.tab_5) + self.label_20.setGeometry(QtCore.QRect(20, 40, 741, 51)) + font = QtGui.QFont() + font.setPointSize(12) + font.setBold(True) + font.setWeight(75) + self.label_20.setFont(font) + self.label_20.setStyleSheet("background-color:#FF6347;color:white;border-radius:0.2em") + self.label_20.setAlignment(QtCore.Qt.AlignCenter) + self.label_20.setObjectName("label_20") + self.label_21 = QtWidgets.QLabel(self.tab_5) + self.label_21.setGeometry(QtCore.QRect(20, 120, 201, 41)) + font = QtGui.QFont() + font.setPointSize(9) + font.setBold(True) + font.setWeight(75) + self.label_21.setFont(font) + self.label_21.setStyleSheet("background-color:#FFF44F;color:black;border-radius:0.2em") + self.label_21.setAlignment(QtCore.Qt.AlignCenter) + self.label_21.setObjectName("label_21") + self.pushButtonTXTRead = QtWidgets.QPushButton(self.tab_5) + self.pushButtonTXTRead.setGeometry(QtCore.QRect(320, 190, 61, 41)) + font = QtGui.QFont() + font.setPointSize(9) + font.setBold(True) + font.setWeight(75) + self.pushButtonTXTRead.setFont(font) + self.pushButtonTXTRead.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) + self.pushButtonTXTRead.setStyleSheet("background-color:#E0BC5B;border-radius:0.2em") + self.pushButtonTXTRead.setObjectName("pushButtonTXTRead") + self.label_42 = QtWidgets.QLabel(self.tab_5) + self.label_42.setGeometry(QtCore.QRect(20, 190, 201, 41)) + font = QtGui.QFont() + font.setPointSize(9) + font.setBold(True) + font.setWeight(75) + self.label_42.setFont(font) + self.label_42.setStyleSheet("background-color:#FFF44F;color:black;border-radius:0.2em") + self.label_42.setAlignment(QtCore.Qt.AlignCenter) + self.label_42.setObjectName("label_42") + self.pushButtonSQLRead = QtWidgets.QPushButton(self.tab_5) + self.pushButtonSQLRead.setGeometry(QtCore.QRect(240, 190, 61, 41)) + font = QtGui.QFont() + font.setPointSize(9) + font.setBold(True) + font.setWeight(75) + self.pushButtonSQLRead.setFont(font) + self.pushButtonSQLRead.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) + self.pushButtonSQLRead.setStyleSheet("background-color:#E0BC5B;border-radius:0.2em") + self.pushButtonSQLRead.setObjectName("pushButtonSQLRead") + self.error_3 = QtWidgets.QLabel(self.tab_5) + self.error_3.setGeometry(QtCore.QRect(20, 240, 741, 21)) + font = QtGui.QFont() + font.setPointSize(9) + font.setBold(True) + font.setWeight(75) + self.error_3.setFont(font) + self.error_3.setStyleSheet("color:red") + self.error_3.setText("") + self.error_3.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.error_3.setObjectName("error_3") + self.tabWidget.addTab(self.tab_5, "") + self.label_22 = QtWidgets.QLabel(self.centralwidget) + self.label_22.setGeometry(QtCore.QRect(20, 580, 61, 31)) + font = QtGui.QFont() + font.setPointSize(9) + font.setBold(True) + font.setWeight(75) + self.label_22.setFont(font) + self.label_22.setStyleSheet("background-color:#FFF44F;color:black;border-radius:0.2em") + self.label_22.setAlignment(QtCore.Qt.AlignCenter) + self.label_22.setObjectName("label_22") + self.label_version = QtWidgets.QLabel(self.centralwidget) + self.label_version.setGeometry(QtCore.QRect(90, 580, 61, 31)) + font = QtGui.QFont() + font.setPointSize(9) + font.setBold(True) + font.setWeight(75) + self.label_version.setFont(font) + self.label_version.setStyleSheet("background-color:#D1E231;color:black;border-radius:0.2em") + self.label_version.setText("") + self.label_version.setAlignment(QtCore.Qt.AlignCenter) + self.label_version.setObjectName("label_version") + self.labelPhoto = QtWidgets.QLabel(self.centralwidget) + self.labelPhoto.setGeometry(QtCore.QRect(720, 569, 51, 50)) + font = QtGui.QFont() + font.setPointSize(13) + self.labelPhoto.setFont(font) + self.labelPhoto.setStyleSheet("border-radius:0.2em") + self.labelPhoto.setText("") + self.labelPhoto.setObjectName("labelPhoto") + MainWindow.setCentralWidget(self.centralwidget) + self.statusbar = QtWidgets.QStatusBar(MainWindow) + self.statusbar.setStyleSheet("color:white") + self.statusbar.setObjectName("statusbar") + MainWindow.setStatusBar(self.statusbar) + + self.retranslateUi(MainWindow) + self.tabWidget.setCurrentIndex(0) + QtCore.QMetaObject.connectSlotsByName(MainWindow) + + def retranslateUi(self, MainWindow): + _translate = QtCore.QCoreApplication.translate + MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow")) + self.label_3.setText(_translate("MainWindow", "First Name")) + self.lineEditName.setPlaceholderText(_translate("MainWindow", "First Name ...")) + self.label_4.setText(_translate("MainWindow", "Family Name")) + self.lineEditFamily.setPlaceholderText(_translate("MainWindow", "Family Name ...")) + self.label_5.setText(_translate("MainWindow", "Phone number")) + self.lineEditPhone.setPlaceholderText(_translate("MainWindow", "Phone number ...")) + self.label_6.setText(_translate("MainWindow", "Email Address")) + self.lineEditEmail.setPlaceholderText(_translate("MainWindow", "Email Address ...")) + self.pushButtonAdd.setStatusTip(_translate("MainWindow", "Click To Add Contact")) + self.pushButtonAdd.setText(_translate("MainWindow", "Add")) + self.pushButtonDelete.setStatusTip(_translate("MainWindow", "Click To Delete Contact")) + self.pushButtonDelete.setText(_translate("MainWindow", "Delete")) + self.pushButtonUpdate.setStatusTip(_translate("MainWindow", "Click To Update Contact")) + self.pushButtonUpdate.setText(_translate("MainWindow", "Update")) + self.label_12.setText(_translate("MainWindow", "Select to contact Update or Delete, or just click Add")) + self.label_13.setText(_translate("MainWindow", "Select Contact")) + self.comboBoxContact.setStatusTip(_translate("MainWindow", "Select Contact To Update Or Delete")) + self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab), _translate("MainWindow", "✂️ Contacts")) + item = self.tableWidget.horizontalHeaderItem(0) + item.setText(_translate("MainWindow", "First Name")) + item = self.tableWidget.horizontalHeaderItem(1) + item.setText(_translate("MainWindow", "Family Name")) + item = self.tableWidget.horizontalHeaderItem(2) + item.setText(_translate("MainWindow", "Phone Number")) + item = self.tableWidget.horizontalHeaderItem(3) + item.setText(_translate("MainWindow", "Email Address")) + self.label_14.setText(_translate("MainWindow", "Type Into EditLine Below To Search, click Sort")) + self.lineEditSearch.setStatusTip(_translate("MainWindow", "Type Here To Search")) + self.lineEditSearch.setPlaceholderText(_translate("MainWindow", "Search In Name, Family Name, Phone, Email ...")) + self.pushButtonName.setStatusTip(_translate("MainWindow", "Click To Sort Table By First Name")) + self.pushButtonName.setText(_translate("MainWindow", "Name")) + self.pushButtonFamily.setStatusTip(_translate("MainWindow", "Click To Sort Table By Family Name")) + self.pushButtonFamily.setText(_translate("MainWindow", "Family")) + self.label_15.setText(_translate("MainWindow", "Sort By")) + self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_3), _translate("MainWindow", "🔎 List-Search")) + self.label_16.setText(_translate("MainWindow", "Type Text To Crawl Names And Phone Numbers")) + self.label_17.setText(_translate("MainWindow", "Raw Text")) + self.label_18.setText(_translate("MainWindow", "Extracted Names")) + self.label_19.setText(_translate("MainWindow", "Extracted Phones")) + self.pushButtonCrawl.setStatusTip(_translate("MainWindow", "Click To Crawl Text")) + self.pushButtonCrawl.setText(_translate("MainWindow", "Crawl")) + self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_2), _translate("MainWindow", "🕷 Text Crawling")) + self.label_2.setText(_translate("MainWindow", "Select Website")) + self.comboBoxSite.setItemText(0, _translate("MainWindow", "www.fakenamegenerator.com")) + self.comboBoxSite.setItemText(1, _translate("MainWindow", "www.random-name-generator.com")) + self.lineEditEmail_2.setPlaceholderText(_translate("MainWindow", "Email Address ...")) + self.label_7.setText(_translate("MainWindow", "Family Name")) + self.label_8.setText(_translate("MainWindow", "Email Address")) + self.label_9.setText(_translate("MainWindow", "First Name")) + self.label_10.setText(_translate("MainWindow", "Phone number")) + self.lineEditName_2.setPlaceholderText(_translate("MainWindow", "First Name ...")) + self.lineEditFamily_2.setPlaceholderText(_translate("MainWindow", "Family Name ...")) + self.lineEditPhone_2.setPlaceholderText(_translate("MainWindow", "Phone number ...")) + self.pushButtonScrap.setStatusTip(_translate("MainWindow", "Click To Find Contact Online")) + self.pushButtonScrap.setText(_translate("MainWindow", "Scrap")) + self.pushButtonUse.setStatusTip(_translate("MainWindow", "Click To Add This Contact To Database")) + self.pushButtonUse.setText(_translate("MainWindow", "Use")) + self.label_11.setText(_translate("MainWindow", "Click Scrap to get data from web, and click Use to add them into database")) + self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_4), _translate("MainWindow", "🌎 Web Scraping")) + self.pushButtonTXTSave.setStatusTip(_translate("MainWindow", "Click To Save Database As TXT")) + self.pushButtonTXTSave.setText(_translate("MainWindow", "TXT")) + self.pushButtonSQLSave.setStatusTip(_translate("MainWindow", "Click To Save Database As Sqlite")) + self.pushButtonSQLSave.setText(_translate("MainWindow", "Sqlite")) + self.label_20.setText(_translate("MainWindow", "Select A File Type To Read Or Write Its Data")) + self.label_21.setText(_translate("MainWindow", "Save Database To File")) + self.pushButtonTXTRead.setStatusTip(_translate("MainWindow", "Click To Load Database From TXT")) + self.pushButtonTXTRead.setText(_translate("MainWindow", "TXT")) + self.label_42.setText(_translate("MainWindow", "Load Database From File")) + self.pushButtonSQLRead.setStatusTip(_translate("MainWindow", "Click To Load Database From Sqlite")) + self.pushButtonSQLRead.setText(_translate("MainWindow", "Sqlite")) + self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_5), _translate("MainWindow", "💾 File")) + self.label_22.setText(_translate("MainWindow", "Version")) + + +if __name__ == "__main__": + import sys + app = QtWidgets.QApplication(sys.argv) + MainWindow = QtWidgets.QMainWindow() + ui = Ui_MainWindow() + ui.setupUi(MainWindow) + MainWindow.show() + sys.exit(app.exec_()) diff --git a/Other Students' Projects/7/mainwin.ui b/Other Students' Projects/7/mainwin.ui new file mode 100644 index 0000000..2da2430 --- /dev/null +++ b/Other Students' Projects/7/mainwin.ui @@ -0,0 +1,1524 @@ + + + MainWindow + + + + 0 + 0 + 781 + 652 + + + + + 781 + 652 + + + + + 781 + 652 + + + + MainWindow + + + background-color:#67669F + + + + + + 0 + 0 + 781 + 581 + + + + + 11 + 75 + true + + + + background-color:#67669F + + + QTabWidget::Rounded + + + 0 + + + Qt::ElideNone + + + true + + + false + + + false + + + + ✂️ Contacts + + + + + 20 + 130 + 131 + 41 + + + + + 9 + 75 + true + + + + background-color:#FFF44F;color:black;border-radius:0.2em + + + First Name + + + Qt::AlignCenter + + + + + + 160 + 130 + 601 + 41 + + + + + 9 + 75 + true + + + + background-color:#E3FF00;color:#9457EB;border-radius:0.2em + + + First Name ... + + + + + + 20 + 200 + 131 + 41 + + + + + 9 + 75 + true + + + + background-color:#FFF44F;color:black;border-radius:0.2em + + + Family Name + + + Qt::AlignCenter + + + + + + 160 + 200 + 601 + 41 + + + + + 9 + 75 + true + + + + background-color:#E3FF00;color:#9457EB;border-radius:0.2em + + + Family Name ... + + + + + + 20 + 270 + 131 + 41 + + + + + 9 + 75 + true + + + + background-color:#FFF44F;color:black;border-radius:0.2em + + + Phone number + + + Qt::AlignCenter + + + + + + 160 + 270 + 601 + 41 + + + + + 9 + 75 + true + + + + background-color:#E3FF00;color:#9457EB;border-radius:0.2em + + + Phone number ... + + + + + + 20 + 340 + 131 + 41 + + + + + 9 + 75 + true + + + + background-color:#FFF44F;color:black;border-radius:0.2em + + + Email Address + + + Qt::AlignCenter + + + + + + 160 + 340 + 601 + 41 + + + + + 9 + 75 + true + + + + background-color:#E3FF00;color:#9457EB;border-radius:0.2em + + + Email Address ... + + + + + + 700 + 410 + 61 + 41 + + + + + 9 + 75 + true + + + + PointingHandCursor + + + Click To Add Contact + + + background-color:#E07F5B;border-radius:0.2em + + + Add + + + + + + 630 + 410 + 61 + 41 + + + + + 9 + 75 + true + + + + PointingHandCursor + + + Click To Delete Contact + + + background-color:#E0BC5B;border-radius:0.2em + + + Delete + + + + + + 560 + 410 + 61 + 41 + + + + + 9 + 75 + true + + + + PointingHandCursor + + + Click To Update Contact + + + background-color:#E0BC5B;border-radius:0.2em + + + Update + + + + + + 20 + 40 + 741 + 51 + + + + + 12 + 75 + true + + + + background-color:#FF6347;color:white;border-radius:0.2em + + + Select to contact Update or Delete, or just click Add + + + Qt::AlignCenter + + + + + + 20 + 410 + 131 + 41 + + + + + 9 + 75 + true + + + + background-color:#FFF44F;color:black;border-radius:0.2em + + + Select Contact + + + Qt::AlignCenter + + + + + + 160 + 410 + 391 + 41 + + + + + 9 + 75 + true + + + + Select Contact To Update Or Delete + + + background-color:#E3FF00;color:#9457EB;border-radius:0.2em + + + + + + 20 + 460 + 741 + 21 + + + + + 9 + 75 + true + + + + color:red + + + + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + 🔎 List-Search + + + + + 20 + 170 + 741 + 361 + + + + + 10 + 50 + false + + + + background-color:#F8D568 + + + 158 + + + true + + + + First Name + + + + + Family Name + + + + + Phone Number + + + + + Email Address + + + + + + + 20 + 40 + 741 + 51 + + + + + 12 + 75 + true + + + + background-color:#FF6347;color:white;border-radius:0.2em + + + Type Into EditLine Below To Search, click Sort + + + Qt::AlignCenter + + + + + + 20 + 110 + 531 + 41 + + + + + 9 + 75 + true + + + + Type Here To Search + + + background-color:#E3FF00;color:#9457EB;border-radius:0.2em + + + Search In Name, Family Name, Phone, Email ... + + + + + + 630 + 110 + 61 + 41 + + + + + 9 + 75 + true + + + + PointingHandCursor + + + Click To Sort Table By First Name + + + background-color:#E0BC5B;border-radius:0.2em + + + Name + + + + + + 700 + 110 + 61 + 41 + + + + + 9 + 75 + true + + + + PointingHandCursor + + + Click To Sort Table By Family Name + + + background-color:#E0BC5B;border-radius:0.2em + + + Family + + + + + + 560 + 110 + 61 + 41 + + + + + 9 + 75 + true + + + + background-color:#FFF44F;color:black;border-radius:0.2em + + + Sort By + + + Qt::AlignCenter + + + + + + 🕷 Text Crawling + + + + + 20 + 160 + 731 + 151 + + + + + 11 + + + + IBeamCursor + + + background-color:#E3FF00;color:#9457EB;border-radius:0.2em + + + false + + + + + + 20 + 40 + 741 + 51 + + + + + 12 + 75 + true + + + + background-color:#FF6347;color:white;border-radius:0.2em + + + Type Text To Crawl Names And Phone Numbers + + + Qt::AlignCenter + + + + + + 20 + 110 + 91 + 41 + + + + + 9 + 75 + true + + + + background-color:#FFF44F;color:black;border-radius:0.2em + + + Raw Text + + + Qt::AlignCenter + + + + + + 20 + 370 + 361 + 151 + + + + + 11 + + + + IBeamCursor + + + background-color:#E3FF00;color:#9457EB;border-radius:0.2em + + + + + + 20 + 320 + 161 + 41 + + + + + 9 + 75 + true + + + + background-color:#FFF44F;color:black;border-radius:0.2em + + + Extracted Names + + + Qt::AlignCenter + + + + + + 390 + 370 + 361 + 151 + + + + + 11 + + + + IBeamCursor + + + background-color:#E3FF00;color:#9457EB;border-radius:0.2em + + + + + + 390 + 320 + 161 + 41 + + + + + 9 + 75 + true + + + + background-color:#FFF44F;color:black;border-radius:0.2em + + + Extracted Phones + + + Qt::AlignCenter + + + + + + 690 + 110 + 61 + 41 + + + + + 9 + 75 + true + + + + PointingHandCursor + + + Click To Crawl Text + + + background-color:#E0BC5B;border-radius:0.2em + + + Crawl + + + + + + 🌎 Web Scraping + + + + + 20 + 130 + 131 + 41 + + + + + 9 + 75 + true + + + + background-color:#FFF44F;color:black;border-radius:0.2em + + + Select Website + + + Qt::AlignCenter + + + + + + 160 + 130 + 441 + 41 + + + + + 9 + 75 + true + + + + background-color:#E3FF00;color:#9457EB;border-radius:0.2em + + + + www.fakenamegenerator.com + + + + + www.random-name-generator.com + + + + + + + 160 + 410 + 601 + 41 + + + + + 9 + 75 + true + + + + background-color:#E3FF00;color:#9457EB;border-radius:0.2em + + + Email Address ... + + + + + + 20 + 270 + 131 + 41 + + + + + 9 + 75 + true + + + + background-color:#FFF44F;color:black;border-radius:0.2em + + + Family Name + + + Qt::AlignCenter + + + + + + 20 + 410 + 131 + 41 + + + + + 9 + 75 + true + + + + background-color:#FFF44F;color:black;border-radius:0.2em + + + Email Address + + + Qt::AlignCenter + + + + + + 20 + 200 + 131 + 41 + + + + + 9 + 75 + true + + + + background-color:#FFF44F;color:black;border-radius:0.2em + + + First Name + + + Qt::AlignCenter + + + + + + 20 + 340 + 131 + 41 + + + + + 9 + 75 + true + + + + background-color:#FFF44F;color:black;border-radius:0.2em + + + Phone number + + + Qt::AlignCenter + + + + + + 160 + 200 + 601 + 41 + + + + + 9 + 75 + true + + + + background-color:#E3FF00;color:#9457EB;border-radius:0.2em + + + First Name ... + + + + + + 160 + 270 + 601 + 41 + + + + + 9 + 75 + true + + + + background-color:#E3FF00;color:#9457EB;border-radius:0.2em + + + Family Name ... + + + + + + 160 + 340 + 601 + 41 + + + + + 9 + 75 + true + + + + background-color:#E3FF00;color:#9457EB;border-radius:0.2em + + + Phone number ... + + + + + + 620 + 130 + 61 + 41 + + + + + 9 + 75 + true + + + + PointingHandCursor + + + Click To Find Contact Online + + + background-color:#E0BC5B;border-radius:0.2em + + + Scrap + + + + + + 700 + 130 + 61 + 41 + + + + + 9 + 75 + true + + + + PointingHandCursor + + + Click To Add This Contact To Database + + + background-color:#E0BC5B;border-radius:0.2em + + + Use + + + + + + 20 + 40 + 741 + 51 + + + + + 12 + 75 + true + + + + background-color:#FF6347;color:white;border-radius:0.2em + + + Click Scrap to get data from web, and click Use to add them into database + + + Qt::AlignCenter + + + + + + 20 + 460 + 741 + 21 + + + + + 9 + 75 + true + + + + color:red + + + + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + 💾 File + + + + + 320 + 120 + 61 + 41 + + + + + 9 + 75 + true + + + + PointingHandCursor + + + Click To Save Database As TXT + + + background-color:#E0BC5B;border-radius:0.2em + + + TXT + + + + + + 240 + 120 + 61 + 41 + + + + + 9 + 75 + true + + + + PointingHandCursor + + + Click To Save Database As Sqlite + + + background-color:#E0BC5B;border-radius:0.2em + + + Sqlite + + + + + + 20 + 40 + 741 + 51 + + + + + 12 + 75 + true + + + + background-color:#FF6347;color:white;border-radius:0.2em + + + Select A File Type To Read Or Write Its Data + + + Qt::AlignCenter + + + + + + 20 + 120 + 201 + 41 + + + + + 9 + 75 + true + + + + background-color:#FFF44F;color:black;border-radius:0.2em + + + Save Database To File + + + Qt::AlignCenter + + + + + + 320 + 190 + 61 + 41 + + + + + 9 + 75 + true + + + + PointingHandCursor + + + Click To Load Database From TXT + + + background-color:#E0BC5B;border-radius:0.2em + + + TXT + + + + + + 20 + 190 + 201 + 41 + + + + + 9 + 75 + true + + + + background-color:#FFF44F;color:black;border-radius:0.2em + + + Load Database From File + + + Qt::AlignCenter + + + + + + 240 + 190 + 61 + 41 + + + + + 9 + 75 + true + + + + PointingHandCursor + + + Click To Load Database From Sqlite + + + background-color:#E0BC5B;border-radius:0.2em + + + Sqlite + + + + + + 20 + 240 + 741 + 21 + + + + + 9 + 75 + true + + + + color:red + + + + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + + + 20 + 580 + 61 + 31 + + + + + 9 + 75 + true + + + + background-color:#FFF44F;color:black;border-radius:0.2em + + + Version + + + Qt::AlignCenter + + + + + + 90 + 580 + 61 + 31 + + + + + 9 + 75 + true + + + + background-color:#D1E231;color:black;border-radius:0.2em + + + + + + Qt::AlignCenter + + + + + + 720 + 569 + 51 + 50 + + + + + 13 + + + + border-radius:0.2em + + + + + + + + + color:white + + + + + + diff --git a/Other Students' Projects/8/.idea/.gitignore b/Other Students' Projects/8/.idea/.gitignore new file mode 100644 index 0000000..57ec0d9 --- /dev/null +++ b/Other Students' Projects/8/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Datasource local storage ignored files +/../../../../../../:\University\2nd Term\Others Homeworks\Parva\.idea/dataSources/ +/dataSources.local.xml +# Editor-based HTTP Client requests +/httpRequests/ diff --git a/Other Students' Projects/8/.idea/Parva.iml b/Other Students' Projects/8/.idea/Parva.iml new file mode 100644 index 0000000..d0876a7 --- /dev/null +++ b/Other Students' Projects/8/.idea/Parva.iml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/Other Students' Projects/8/.idea/inspectionProfiles/Project_Default.xml b/Other Students' Projects/8/.idea/inspectionProfiles/Project_Default.xml new file mode 100644 index 0000000..6eeafb9 --- /dev/null +++ b/Other Students' Projects/8/.idea/inspectionProfiles/Project_Default.xml @@ -0,0 +1,24 @@ + + + + \ No newline at end of file diff --git a/Other Students' Projects/8/.idea/inspectionProfiles/profiles_settings.xml b/Other Students' Projects/8/.idea/inspectionProfiles/profiles_settings.xml new file mode 100644 index 0000000..105ce2d --- /dev/null +++ b/Other Students' Projects/8/.idea/inspectionProfiles/profiles_settings.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/Other Students' Projects/8/.idea/misc.xml b/Other Students' Projects/8/.idea/misc.xml new file mode 100644 index 0000000..a2e120d --- /dev/null +++ b/Other Students' Projects/8/.idea/misc.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/Other Students' Projects/8/.idea/modules.xml b/Other Students' Projects/8/.idea/modules.xml new file mode 100644 index 0000000..4039371 --- /dev/null +++ b/Other Students' Projects/8/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/Other Students' Projects/8/Compile.py b/Other Students' Projects/8/Compile.py new file mode 100644 index 0000000..c41ba73 --- /dev/null +++ b/Other Students' Projects/8/Compile.py @@ -0,0 +1,227 @@ +import sys +from PyQt5 import QtWidgets, QtCore +from MainWindow import Ui_MainWindow +import re +import json +from parsel import Selector +import requests + + +# Hidpi scaling +QtWidgets.QApplication.setAttribute(QtCore.Qt.AA_EnableHighDpiScaling, True) +# use Hidpi icons +QtWidgets.QApplication.setAttribute(QtCore.Qt.AA_UseHighDpiPixmaps, True) + +class Contacts(Ui_MainWindow): + def __init__(self): + self.List = [] + + def retranslateUi(self, MenuWindow): + super().retranslateUi(MenuWindow) + + def setupUi(self, MenuWindow): + super().setupUi(MenuWindow) + + def sortTable(self): + if self.radioButton.isChecked(): + sortedList = [i for i in sorted(self.List, key=lambda item: item['first_name'])] + else: + sortedList = [i for i in sorted(self.List, key=lambda item: item['last_name'])] + + self.tableWidget.setRowCount(0) + for i in range(0, len(sortedList)): + self.tableWidget.insertRow(i) + self.tableWidget.setItem(i, 0, QtWidgets.QTableWidgetItem(sortedList[i]['first_name'])) + self.tableWidget.setItem(i, 1, QtWidgets.QTableWidgetItem(sortedList[i]['last_name'])) + self.tableWidget.setItem(i, 2, QtWidgets.QTableWidgetItem(sortedList[i]['phone_number'])) + self.tableWidget.setItem(i, 3, QtWidgets.QTableWidgetItem(sortedList[i]['email_address'])) + + def add(self): + self.label_error.setText("") + + get = [self.lineEdit.text(), self.lineEdit_2.text(), self.lineEdit_3.text(), self.lineEdit_4.text()] + dict = {"first_name": get[0], "last_name": get[1], "phone_number": get[2], "email_address": get[3]} + + if not get[0] == "": + if self.email(get[3]): + if dict not in self.List: + self.List.append(dict) + self.clear_update() + else: + self.label_error.setText("Enter a valid email address.") + else: + self.label_error.setText("Enter a name.") + + def edit(self): + self.label_error.setText("") + + selectedContact = self.comboBox.currentIndex() + if selectedContact != -1: + get = [self.lineEdit.text(), self.lineEdit_2.text(), self.lineEdit_3.text(), self.lineEdit_4.text()] + dict = {"first_name": get[0], "last_name": get[1], "phone_number": get[2], "email_address": get[3]} + + if not get[0] == "": + if self.email(get[3]): + if dict not in self.List: + self.List[selectedContact] = dict + self.clear_update() + else: + self.label_error.setText("Enter a valid email address.") + else: + self.label_error.setText("Enter a name.") + + else: + self.label_error.setText("Select a contact.") + + def remove(self): + self.label_error.setText("") + + selectedContact = self.comboBox.currentIndex() + if selectedContact != -1: + self.List.pop(selectedContact) + self.clear_update() + else: + self.label_error.setText("Select a contact.") + + def clear_update(self): + # update + self.comboBox.clear() + self.comboBox.addItems([f"{i['first_name']} {i['last_name']}" for i in self.List]) + self.comboBox.setCurrentIndex(-1) + + # clear + self.lineEdit.setText("") + self.lineEdit_2.setText("") + self.lineEdit_3.setText("") + self.lineEdit_4.setText("") + self.label_error.setText("") + + def email(self, email): + if email != "": + pattern = '^([0-9A-Za-z]|\.|\_|\-)+[@]([0-9A-Za-z]|\_|\-|\.)+[.][A-Za-z]{2,3}$' + if re.search(pattern, email): + return True + else: + return False + else: + return True + + def save(self): + file = open("contactList.txt", "w") + file.write(json.dumps(self.List)) + file.close() + + message = QtWidgets.QMessageBox() + message.setWindowTitle('Success !') + message.setIcon(QtWidgets.QMessageBox.Information) + message.setText('Program database saved in txt file !') + message.setStandardButtons(QtWidgets.QMessageBox.Ok) + + message.exec_() + + def open(self): + try: + file = open("contactList.txt", "r") + self.List = json.loads(file.read()) + file.close() + + except: + self.List = [] + file = open("contactList.txt", "w") + file.close() + + def autoSelectLineEdit(self): + if self.comboBox.currentIndex() != -1: + self.lineEdit.setText(self.List[self.comboBox.currentIndex()]['first_name']) + self.lineEdit_2.setText(self.List[self.comboBox.currentIndex()]['last_name']) + self.lineEdit_3.setText(self.List[self.comboBox.currentIndex()]['phone_number']) + self.lineEdit_4.setText(self.List[self.comboBox.currentIndex()]['email_address']) + + def web(self): + self.label_error_2.setText("Wait ...") + QtWidgets.QApplication.processEvents() + website, headers = "https://www.fakenamegenerator.com/", ({'user-agent': 'Contacts Manager'}) + + text = requests.get(website, headers=headers).text + selector = Selector(text=text, type='xml') + + name = selector.css('#details > div.content > div.info > div > div.address > h3').extract_first().replace("", "").replace("

", "").split() + phone_number = "+1" + selector.css('#details > div.content > div.info > div > div.extra > dl:nth-child(5) > dd').extract_first().replace("
", "").replace("
", "") + email_address = selector.css('#details > div.content > div.info > div > div.extra > dl:nth-child(12) > dd').extract_first().split()[0].replace("
", "") + + first_name = name[0] + " " + name[1] + last_name = name[2] + + self.lineEdit_6.setText(first_name) + self.lineEdit_7.setText(last_name) + self.lineEdit_8.setText(phone_number) + self.lineEdit_9.setText(email_address) + self.label_error_2.setText("") + + def clear_updateWeb(self): + # update + self.comboBox.clear() + self.comboBox.addItems([f"{i['first_name']} {i['last_name']}" for i in self.List]) + self.comboBox.setCurrentIndex(-1) + + # clear + self.lineEdit.setText("") + self.lineEdit_2.setText("") + self.lineEdit_3.setText("") + self.lineEdit_4.setText("") + self.label_error.setText("") + self.lineEdit_6.setText("") + self.lineEdit_7.setText("") + self.lineEdit_8.setText("") + self.lineEdit_9.setText("") + self.label_error_2.setText("") + + def addWeb(self): + self.label_error.setText("") + + get = [self.lineEdit_6.text(), self.lineEdit_7.text(), self.lineEdit_8.text(), self.lineEdit_9.text()] + dict = {"first_name": get[0], "last_name": get[1], "phone_number": get[2], "email_address": get[3]} + + if not get[0] == "": + if dict not in self.List: + self.List.append(dict) + self.clear_updateWeb() + + else: + self.label_error_2.setText("Click on \"Gather\" first !") + + def textRegex(self): + inputText = self.textBrowser.toPlainText() + + names = "\n".join(re.findall(r'[@](\w+)', inputText)) + phones = "\n".join(re.findall(r'[#]([0-9]+)', inputText)) + + name = "# Names found #\n" + names if names else "# No names were found ! #" + phone = "# Phone numbers found #\n" + phones if phones else "# No phone numbers were found ! #" + + self.textBrowser_2.setText("{}\n\n{}".format(name, phone)) + +if __name__ == "__main__": + Original_app = QtWidgets.QApplication(sys.argv) + Original_window = QtWidgets.QMainWindow() + + Con = Contacts() + Con.setupUi(Original_window) + Con.open() + Con.sortTable() + Con.clear_update() + + Con.radioButton.clicked.connect(Con.sortTable) + Con.radioButton_2.clicked.connect(Con.sortTable) + Con.pushButton_refresh.clicked.connect(Con.sortTable) + Con.pushButton.clicked.connect(Con.add) + Con.pushButton_2.clicked.connect(Con.edit) + Con.pushButton_3.clicked.connect(Con.remove) + Con.pushButton_4.clicked.connect(Con.save) + Con.comboBox.currentIndexChanged.connect(Con.autoSelectLineEdit) + Con.pushButtonGather.clicked.connect(Con.web) + Con.pushButtonAdd.clicked.connect(Con.addWeb) + Con.pushButton_Find.clicked.connect(Con.textRegex) + + Original_window.show() + sys.exit(Original_app.exec_()) \ No newline at end of file diff --git a/Other Students' Projects/8/MainWindow.py b/Other Students' Projects/8/MainWindow.py new file mode 100644 index 0000000..f3b0939 --- /dev/null +++ b/Other Students' Projects/8/MainWindow.py @@ -0,0 +1,517 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file 'MainWindow.ui' +# +# Created by: PyQt5 UI code generator 5.15.4 +# +# WARNING: Any manual changes made to this file will be lost when pyuic5 is +# run again. Do not edit this file unless you know what you are doing. + + +from PyQt5 import QtCore, QtGui, QtWidgets + + +class Ui_MainWindow(object): + def setupUi(self, MainWindow): + MainWindow.setObjectName("MainWindow") + MainWindow.resize(797, 571) + MainWindow.setStyleSheet("color:white") + self.centralwidget = QtWidgets.QWidget(MainWindow) + self.centralwidget.setObjectName("centralwidget") + self.tabWidget = QtWidgets.QTabWidget(self.centralwidget) + self.tabWidget.setGeometry(QtCore.QRect(0, 0, 801, 571)) + font = QtGui.QFont() + font.setPointSize(13) + font.setBold(True) + font.setWeight(75) + self.tabWidget.setFont(font) + self.tabWidget.setStyleSheet("background-color:#292E3E") + self.tabWidget.setTabPosition(QtWidgets.QTabWidget.South) + self.tabWidget.setTabShape(QtWidgets.QTabWidget.Triangular) + self.tabWidget.setDocumentMode(True) + self.tabWidget.setObjectName("tabWidget") + self.tab_2 = QtWidgets.QWidget() + self.tab_2.setObjectName("tab_2") + self.label_8 = QtWidgets.QLabel(self.tab_2) + self.label_8.setGeometry(QtCore.QRect(0, 40, 801, 41)) + font = QtGui.QFont() + font.setPointSize(20) + font.setBold(True) + font.setWeight(75) + self.label_8.setFont(font) + self.label_8.setStyleSheet("background-color:#343A4D; color:white") + self.label_8.setAlignment(QtCore.Qt.AlignCenter) + self.label_8.setObjectName("label_8") + self.tableWidget = QtWidgets.QTableWidget(self.tab_2) + self.tableWidget.setGeometry(QtCore.QRect(70, 160, 661, 361)) + self.tableWidget.setStyleSheet("background-color:#F8F8FF;color:#004242") + self.tableWidget.setAlternatingRowColors(True) + self.tableWidget.setTextElideMode(QtCore.Qt.ElideLeft) + self.tableWidget.setHorizontalScrollMode(QtWidgets.QAbstractItemView.ScrollPerItem) + self.tableWidget.setShowGrid(True) + self.tableWidget.setGridStyle(QtCore.Qt.SolidLine) + self.tableWidget.setCornerButtonEnabled(True) + self.tableWidget.setObjectName("tableWidget") + self.tableWidget.setColumnCount(4) + self.tableWidget.setRowCount(0) + item = QtWidgets.QTableWidgetItem() + self.tableWidget.setHorizontalHeaderItem(0, item) + item = QtWidgets.QTableWidgetItem() + self.tableWidget.setHorizontalHeaderItem(1, item) + item = QtWidgets.QTableWidgetItem() + self.tableWidget.setHorizontalHeaderItem(2, item) + item = QtWidgets.QTableWidgetItem() + self.tableWidget.setHorizontalHeaderItem(3, item) + self.tableWidget.horizontalHeader().setDefaultSectionSize(130) + self.tableWidget.horizontalHeader().setSortIndicatorShown(False) + self.tableWidget.horizontalHeader().setStretchLastSection(True) + self.label_9 = QtWidgets.QLabel(self.tab_2) + self.label_9.setGeometry(QtCore.QRect(70, 110, 71, 41)) + font = QtGui.QFont() + font.setPointSize(11) + font.setBold(True) + font.setWeight(75) + self.label_9.setFont(font) + self.label_9.setStyleSheet("background-color:#313B4D; color:#21CA78") + self.label_9.setAlignment(QtCore.Qt.AlignCenter) + self.label_9.setObjectName("label_9") + self.pushButton_refresh = QtWidgets.QPushButton(self.tab_2) + self.pushButton_refresh.setGeometry(QtCore.QRect(660, 110, 71, 41)) + font = QtGui.QFont() + font.setPointSize(9) + font.setBold(True) + font.setWeight(75) + self.pushButton_refresh.setFont(font) + self.pushButton_refresh.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) + self.pushButton_refresh.setStyleSheet("background-color:#E6A31D; color:#3D2922") + self.pushButton_refresh.setObjectName("pushButton_refresh") + self.radioButton = QtWidgets.QRadioButton(self.tab_2) + self.radioButton.setGeometry(QtCore.QRect(160, 118, 111, 21)) + font = QtGui.QFont() + font.setPointSize(11) + self.radioButton.setFont(font) + self.radioButton.setStyleSheet("color:#21CA78") + self.radioButton.setChecked(True) + self.radioButton.setObjectName("radioButton") + self.radioButton_2 = QtWidgets.QRadioButton(self.tab_2) + self.radioButton_2.setGeometry(QtCore.QRect(280, 120, 101, 19)) + font = QtGui.QFont() + font.setPointSize(10) + self.radioButton_2.setFont(font) + self.radioButton_2.setStyleSheet("color:#21CA78") + self.radioButton_2.setObjectName("radioButton_2") + self.tabWidget.addTab(self.tab_2, "") + self.tab = QtWidgets.QWidget() + self.tab.setObjectName("tab") + self.comboBox = QtWidgets.QComboBox(self.tab) + self.comboBox.setGeometry(QtCore.QRect(160, 120, 511, 41)) + font = QtGui.QFont() + font.setBold(True) + font.setWeight(75) + self.comboBox.setFont(font) + self.comboBox.setStyleSheet("background-color:#313B4D; color:white\n" +"") + self.comboBox.setObjectName("comboBox") + self.lineEdit = QtWidgets.QLineEdit(self.tab) + self.lineEdit.setGeometry(QtCore.QRect(160, 190, 511, 41)) + font = QtGui.QFont() + font.setBold(True) + font.setWeight(75) + self.lineEdit.setFont(font) + self.lineEdit.setStyleSheet("background-color:#313B4D; color:white\n" +"") + self.lineEdit.setText("") + self.lineEdit.setObjectName("lineEdit") + self.label = QtWidgets.QLabel(self.tab) + self.label.setGeometry(QtCore.QRect(40, 190, 101, 41)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.label.setFont(font) + self.label.setStyleSheet("background-color:#313B4D; color:#21CA78") + self.label.setAlignment(QtCore.Qt.AlignCenter) + self.label.setObjectName("label") + self.label_2 = QtWidgets.QLabel(self.tab) + self.label_2.setGeometry(QtCore.QRect(40, 260, 101, 41)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.label_2.setFont(font) + self.label_2.setStyleSheet("background-color:#313B4D; color:#21CA78") + self.label_2.setAlignment(QtCore.Qt.AlignCenter) + self.label_2.setObjectName("label_2") + self.lineEdit_2 = QtWidgets.QLineEdit(self.tab) + self.lineEdit_2.setGeometry(QtCore.QRect(160, 260, 511, 41)) + font = QtGui.QFont() + font.setBold(True) + font.setWeight(75) + self.lineEdit_2.setFont(font) + self.lineEdit_2.setStyleSheet("background-color:#313B4D; color:white\n" +"") + self.lineEdit_2.setText("") + self.lineEdit_2.setObjectName("lineEdit_2") + self.lineEdit_3 = QtWidgets.QLineEdit(self.tab) + self.lineEdit_3.setGeometry(QtCore.QRect(160, 330, 511, 41)) + font = QtGui.QFont() + font.setBold(True) + font.setWeight(75) + self.lineEdit_3.setFont(font) + self.lineEdit_3.setStyleSheet("background-color:#313B4D; color:white\n" +"") + self.lineEdit_3.setObjectName("lineEdit_3") + self.label_3 = QtWidgets.QLabel(self.tab) + self.label_3.setGeometry(QtCore.QRect(40, 330, 101, 41)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.label_3.setFont(font) + self.label_3.setStyleSheet("background-color:#313B4D; color:#21CA78") + self.label_3.setAlignment(QtCore.Qt.AlignCenter) + self.label_3.setObjectName("label_3") + self.label_4 = QtWidgets.QLabel(self.tab) + self.label_4.setGeometry(QtCore.QRect(40, 400, 101, 41)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.label_4.setFont(font) + self.label_4.setStyleSheet("background-color:#313B4D; color:#21CA78") + self.label_4.setAlignment(QtCore.Qt.AlignCenter) + self.label_4.setObjectName("label_4") + self.lineEdit_4 = QtWidgets.QLineEdit(self.tab) + self.lineEdit_4.setGeometry(QtCore.QRect(160, 400, 511, 41)) + font = QtGui.QFont() + font.setBold(True) + font.setWeight(75) + self.lineEdit_4.setFont(font) + self.lineEdit_4.setStyleSheet("background-color:#313B4D; color:white\n" +"") + self.lineEdit_4.setObjectName("lineEdit_4") + self.label_6 = QtWidgets.QLabel(self.tab) + self.label_6.setGeometry(QtCore.QRect(40, 120, 101, 41)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.label_6.setFont(font) + self.label_6.setStyleSheet("background-color:#313B4D; color:#21CA78") + self.label_6.setAlignment(QtCore.Qt.AlignCenter) + self.label_6.setObjectName("label_6") + self.pushButton_2 = QtWidgets.QPushButton(self.tab) + self.pushButton_2.setGeometry(QtCore.QRect(700, 200, 71, 51)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.pushButton_2.setFont(font) + self.pushButton_2.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) + self.pushButton_2.setStyleSheet("background-color:#E6A31D; color:#3D2922") + self.pushButton_2.setObjectName("pushButton_2") + self.pushButton_3 = QtWidgets.QPushButton(self.tab) + self.pushButton_3.setGeometry(QtCore.QRect(700, 280, 71, 51)) + font = QtGui.QFont() + font.setPointSize(9) + font.setBold(True) + font.setWeight(75) + self.pushButton_3.setFont(font) + self.pushButton_3.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) + self.pushButton_3.setStyleSheet("background-color:#E6A31D; color:#3D2922") + self.pushButton_3.setObjectName("pushButton_3") + self.pushButton = QtWidgets.QPushButton(self.tab) + self.pushButton.setGeometry(QtCore.QRect(700, 120, 71, 51)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.pushButton.setFont(font) + self.pushButton.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) + self.pushButton.setStyleSheet("background-color:#E6A31D; color:#3D2922") + self.pushButton.setObjectName("pushButton") + self.label_7 = QtWidgets.QLabel(self.tab) + self.label_7.setGeometry(QtCore.QRect(0, 40, 801, 41)) + font = QtGui.QFont() + font.setPointSize(20) + font.setBold(True) + font.setWeight(75) + self.label_7.setFont(font) + self.label_7.setStyleSheet("background-color:#343A4D; color:white") + self.label_7.setAlignment(QtCore.Qt.AlignCenter) + self.label_7.setObjectName("label_7") + self.label_error = QtWidgets.QLabel(self.tab) + self.label_error.setGeometry(QtCore.QRect(40, 450, 631, 21)) + font = QtGui.QFont() + font.setPointSize(9) + font.setBold(True) + font.setWeight(75) + self.label_error.setFont(font) + self.label_error.setStyleSheet("color:red") + self.label_error.setText("") + self.label_error.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.label_error.setObjectName("label_error") + self.pushButton_4 = QtWidgets.QPushButton(self.tab) + self.pushButton_4.setGeometry(QtCore.QRect(700, 360, 71, 51)) + font = QtGui.QFont() + font.setPointSize(9) + font.setBold(True) + font.setWeight(75) + self.pushButton_4.setFont(font) + self.pushButton_4.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) + self.pushButton_4.setStyleSheet("background-color:#E6A31D; color:#3D2922") + self.pushButton_4.setObjectName("pushButton_4") + self.tabWidget.addTab(self.tab, "") + self.tab_3 = QtWidgets.QWidget() + self.tab_3.setObjectName("tab_3") + self.label_10 = QtWidgets.QLabel(self.tab_3) + self.label_10.setGeometry(QtCore.QRect(40, 400, 101, 41)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.label_10.setFont(font) + self.label_10.setStyleSheet("background-color:#313B4D; color:#21CA78") + self.label_10.setAlignment(QtCore.Qt.AlignCenter) + self.label_10.setObjectName("label_10") + self.label_11 = QtWidgets.QLabel(self.tab_3) + self.label_11.setGeometry(QtCore.QRect(40, 330, 101, 41)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.label_11.setFont(font) + self.label_11.setStyleSheet("background-color:#313B4D; color:#21CA78") + self.label_11.setAlignment(QtCore.Qt.AlignCenter) + self.label_11.setObjectName("label_11") + self.lineEdit_9 = QtWidgets.QLineEdit(self.tab_3) + self.lineEdit_9.setGeometry(QtCore.QRect(160, 400, 511, 41)) + font = QtGui.QFont() + font.setBold(True) + font.setWeight(75) + self.lineEdit_9.setFont(font) + self.lineEdit_9.setStyleSheet("background-color:#313B4D; color:white\n" +"") + self.lineEdit_9.setReadOnly(True) + self.lineEdit_9.setObjectName("lineEdit_9") + self.lineEdit_8 = QtWidgets.QLineEdit(self.tab_3) + self.lineEdit_8.setGeometry(QtCore.QRect(160, 330, 511, 41)) + font = QtGui.QFont() + font.setBold(True) + font.setWeight(75) + self.lineEdit_8.setFont(font) + self.lineEdit_8.setStyleSheet("background-color:#313B4D; color:white\n" +"") + self.lineEdit_8.setReadOnly(True) + self.lineEdit_8.setObjectName("lineEdit_8") + self.lineEdit_6 = QtWidgets.QLineEdit(self.tab_3) + self.lineEdit_6.setGeometry(QtCore.QRect(160, 190, 511, 41)) + font = QtGui.QFont() + font.setBold(True) + font.setWeight(75) + self.lineEdit_6.setFont(font) + self.lineEdit_6.setStyleSheet("background-color:#313B4D; color:white\n" +"") + self.lineEdit_6.setReadOnly(True) + self.lineEdit_6.setObjectName("lineEdit_6") + self.lineEdit_7 = QtWidgets.QLineEdit(self.tab_3) + self.lineEdit_7.setGeometry(QtCore.QRect(160, 260, 511, 41)) + font = QtGui.QFont() + font.setBold(True) + font.setWeight(75) + self.lineEdit_7.setFont(font) + self.lineEdit_7.setStyleSheet("background-color:#313B4D; color:white\n" +"") + self.lineEdit_7.setText("") + self.lineEdit_7.setReadOnly(True) + self.lineEdit_7.setObjectName("lineEdit_7") + self.pushButtonAdd = QtWidgets.QPushButton(self.tab_3) + self.pushButtonAdd.setGeometry(QtCore.QRect(700, 180, 71, 51)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.pushButtonAdd.setFont(font) + self.pushButtonAdd.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) + self.pushButtonAdd.setStyleSheet("background-color:#E6A31D; color:#3D2922") + self.pushButtonAdd.setObjectName("pushButtonAdd") + self.label_15 = QtWidgets.QLabel(self.tab_3) + self.label_15.setGeometry(QtCore.QRect(0, 40, 801, 41)) + font = QtGui.QFont() + font.setPointSize(20) + font.setBold(True) + font.setWeight(75) + self.label_15.setFont(font) + self.label_15.setStyleSheet("background-color:#343A4D; color:white") + self.label_15.setAlignment(QtCore.Qt.AlignCenter) + self.label_15.setObjectName("label_15") + self.label_17 = QtWidgets.QLabel(self.tab_3) + self.label_17.setGeometry(QtCore.QRect(40, 120, 101, 41)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.label_17.setFont(font) + self.label_17.setStyleSheet("background-color:#313B4D; color:#21CA78") + self.label_17.setAlignment(QtCore.Qt.AlignCenter) + self.label_17.setObjectName("label_17") + self.lineEdit_5 = QtWidgets.QLineEdit(self.tab_3) + self.lineEdit_5.setGeometry(QtCore.QRect(160, 120, 511, 41)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.lineEdit_5.setFont(font) + self.lineEdit_5.setStyleSheet("background-color:#313B4D; color:white\n" +"") + self.lineEdit_5.setAlignment(QtCore.Qt.AlignCenter) + self.lineEdit_5.setReadOnly(True) + self.lineEdit_5.setObjectName("lineEdit_5") + self.label_error_2 = QtWidgets.QLabel(self.tab_3) + self.label_error_2.setGeometry(QtCore.QRect(40, 450, 631, 21)) + font = QtGui.QFont() + font.setPointSize(9) + font.setBold(True) + font.setWeight(75) + self.label_error_2.setFont(font) + self.label_error_2.setStyleSheet("color:red") + self.label_error_2.setText("") + self.label_error_2.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.label_error_2.setObjectName("label_error_2") + self.label_5 = QtWidgets.QLabel(self.tab_3) + self.label_5.setGeometry(QtCore.QRect(40, 190, 101, 41)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.label_5.setFont(font) + self.label_5.setStyleSheet("background-color:#313B4D; color:#21CA78") + self.label_5.setAlignment(QtCore.Qt.AlignCenter) + self.label_5.setObjectName("label_5") + self.label_12 = QtWidgets.QLabel(self.tab_3) + self.label_12.setGeometry(QtCore.QRect(40, 260, 101, 41)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.label_12.setFont(font) + self.label_12.setStyleSheet("background-color:#313B4D; color:#21CA78") + self.label_12.setAlignment(QtCore.Qt.AlignCenter) + self.label_12.setObjectName("label_12") + self.pushButtonGather = QtWidgets.QPushButton(self.tab_3) + self.pushButtonGather.setGeometry(QtCore.QRect(700, 120, 71, 51)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.pushButtonGather.setFont(font) + self.pushButtonGather.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) + self.pushButtonGather.setStyleSheet("background-color:#E6A31D; color:#3D2922") + self.pushButtonGather.setObjectName("pushButtonGather") + self.tabWidget.addTab(self.tab_3, "") + self.tab_4 = QtWidgets.QWidget() + self.tab_4.setObjectName("tab_4") + self.label_16 = QtWidgets.QLabel(self.tab_4) + self.label_16.setGeometry(QtCore.QRect(0, 40, 801, 41)) + font = QtGui.QFont() + font.setPointSize(20) + font.setBold(True) + font.setWeight(75) + self.label_16.setFont(font) + self.label_16.setStyleSheet("background-color:#343A4D; color:white") + self.label_16.setAlignment(QtCore.Qt.AlignCenter) + self.label_16.setObjectName("label_16") + self.pushButton_Find = QtWidgets.QPushButton(self.tab_4) + self.pushButton_Find.setGeometry(QtCore.QRect(710, 120, 71, 51)) + font = QtGui.QFont() + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.pushButton_Find.setFont(font) + self.pushButton_Find.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) + self.pushButton_Find.setStyleSheet("background-color:#E6A31D; color:#3D2922") + self.pushButton_Find.setObjectName("pushButton_Find") + self.textBrowser = QtWidgets.QTextBrowser(self.tab_4) + self.textBrowser.setGeometry(QtCore.QRect(30, 120, 661, 191)) + font = QtGui.QFont() + font.setPointSize(12) + self.textBrowser.setFont(font) + self.textBrowser.viewport().setProperty("cursor", QtGui.QCursor(QtCore.Qt.IBeamCursor)) + self.textBrowser.setStyleSheet("background-color:#313B4D; color:white\n" +"") + self.textBrowser.setFrameShape(QtWidgets.QFrame.StyledPanel) + self.textBrowser.setFrameShadow(QtWidgets.QFrame.Sunken) + self.textBrowser.setReadOnly(False) + self.textBrowser.setObjectName("textBrowser") + self.textBrowser_2 = QtWidgets.QTextBrowser(self.tab_4) + self.textBrowser_2.setGeometry(QtCore.QRect(30, 330, 661, 191)) + font = QtGui.QFont() + font.setPointSize(12) + self.textBrowser_2.setFont(font) + self.textBrowser_2.viewport().setProperty("cursor", QtGui.QCursor(QtCore.Qt.IBeamCursor)) + self.textBrowser_2.setStyleSheet("background-color:#313B4D; color:white\n" +"") + self.textBrowser_2.setFrameShape(QtWidgets.QFrame.StyledPanel) + self.textBrowser_2.setFrameShadow(QtWidgets.QFrame.Sunken) + self.textBrowser_2.setReadOnly(False) + self.textBrowser_2.setObjectName("textBrowser_2") + self.tabWidget.addTab(self.tab_4, "") + MainWindow.setCentralWidget(self.centralwidget) + + self.retranslateUi(MainWindow) + self.tabWidget.setCurrentIndex(0) + QtCore.QMetaObject.connectSlotsByName(MainWindow) + + def retranslateUi(self, MainWindow): + _translate = QtCore.QCoreApplication.translate + MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow")) + self.label_8.setText(_translate("MainWindow", "Contacts List And Sort")) + item = self.tableWidget.horizontalHeaderItem(0) + item.setText(_translate("MainWindow", "First Name")) + item = self.tableWidget.horizontalHeaderItem(1) + item.setText(_translate("MainWindow", "Last Name")) + item = self.tableWidget.horizontalHeaderItem(2) + item.setText(_translate("MainWindow", "Phone")) + item = self.tableWidget.horizontalHeaderItem(3) + item.setText(_translate("MainWindow", "Email")) + self.label_9.setText(_translate("MainWindow", "Sort:")) + self.pushButton_refresh.setText(_translate("MainWindow", "Refresh")) + self.radioButton.setText(_translate("MainWindow", "First Name")) + self.radioButton_2.setText(_translate("MainWindow", "Last Name")) + self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_2), _translate("MainWindow", "List - Sort")) + self.label.setText(_translate("MainWindow", "First Name:")) + self.label_2.setText(_translate("MainWindow", "Last Name:")) + self.label_3.setText(_translate("MainWindow", "Phone:")) + self.label_4.setText(_translate("MainWindow", "Email:")) + self.label_6.setText(_translate("MainWindow", "Contact:")) + self.pushButton_2.setText(_translate("MainWindow", "Edit")) + self.pushButton_3.setText(_translate("MainWindow", "Remove")) + self.pushButton.setText(_translate("MainWindow", "Add")) + self.label_7.setText(_translate("MainWindow", "Edit Contacts From Below")) + self.pushButton_4.setText(_translate("MainWindow", "Save")) + self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab), _translate("MainWindow", "Change")) + self.label_10.setText(_translate("MainWindow", "Email:")) + self.label_11.setText(_translate("MainWindow", "Phone:")) + self.pushButtonAdd.setText(_translate("MainWindow", "Add")) + self.label_15.setText(_translate("MainWindow", "Get Online Contact")) + self.label_17.setText(_translate("MainWindow", "Website:")) + self.lineEdit_5.setText(_translate("MainWindow", "www.fakenamegenerator.com")) + self.label_5.setText(_translate("MainWindow", "First Name:")) + self.label_12.setText(_translate("MainWindow", "Last Name:")) + self.pushButtonGather.setText(_translate("MainWindow", "Gather")) + self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_3), _translate("MainWindow", "Web")) + self.label_16.setText(_translate("MainWindow", "Find Contact In Text")) + self.pushButton_Find.setText(_translate("MainWindow", "Find")) + self.textBrowser.setPlaceholderText(_translate("MainWindow", "Text:")) + self.textBrowser_2.setPlaceholderText(_translate("MainWindow", "Results:")) + self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_4), _translate("MainWindow", "Find")) + + +if __name__ == "__main__": + import sys + app = QtWidgets.QApplication(sys.argv) + MainWindow = QtWidgets.QMainWindow() + ui = Ui_MainWindow() + ui.setupUi(MainWindow) + MainWindow.show() + sys.exit(app.exec_()) diff --git a/Other Students' Projects/8/MainWindow.ui b/Other Students' Projects/8/MainWindow.ui new file mode 100644 index 0000000..4994a39 --- /dev/null +++ b/Other Students' Projects/8/MainWindow.ui @@ -0,0 +1,1130 @@ + + + MainWindow + + + + 0 + 0 + 797 + 571 + + + + MainWindow + + + color:white + + + + + + 0 + 0 + 801 + 571 + + + + + 13 + 75 + true + + + + background-color:#292E3E + + + QTabWidget::South + + + QTabWidget::Triangular + + + 0 + + + true + + + + List - Sort + + + + + 0 + 40 + 801 + 41 + + + + + 20 + 75 + true + + + + background-color:#343A4D; color:white + + + Contacts List And Sort + + + Qt::AlignCenter + + + + + + 70 + 160 + 661 + 361 + + + + background-color:#F8F8FF;color:#004242 + + + true + + + Qt::ElideLeft + + + QAbstractItemView::ScrollPerItem + + + true + + + Qt::SolidLine + + + true + + + 130 + + + false + + + true + + + + First Name + + + + + Last Name + + + + + Phone + + + + + Email + + + + + + + 70 + 110 + 71 + 41 + + + + + 11 + 75 + true + + + + background-color:#313B4D; color:#21CA78 + + + Sort: + + + Qt::AlignCenter + + + + + + 660 + 110 + 71 + 41 + + + + + 9 + 75 + true + + + + PointingHandCursor + + + background-color:#E6A31D; color:#3D2922 + + + Refresh + + + + + + 160 + 118 + 111 + 21 + + + + + 11 + + + + color:#21CA78 + + + First Name + + + true + + + + + + 280 + 120 + 101 + 19 + + + + + 10 + + + + color:#21CA78 + + + Last Name + + + + + + Change + + + + + 160 + 120 + 511 + 41 + + + + + 75 + true + + + + background-color:#313B4D; color:white + + + + + + + 160 + 190 + 511 + 41 + + + + + 75 + true + + + + background-color:#313B4D; color:white + + + + + + + + + + 40 + 190 + 101 + 41 + + + + + 10 + 75 + true + + + + background-color:#313B4D; color:#21CA78 + + + First Name: + + + Qt::AlignCenter + + + + + + 40 + 260 + 101 + 41 + + + + + 10 + 75 + true + + + + background-color:#313B4D; color:#21CA78 + + + Last Name: + + + Qt::AlignCenter + + + + + + 160 + 260 + 511 + 41 + + + + + 75 + true + + + + background-color:#313B4D; color:white + + + + + + + + + + 160 + 330 + 511 + 41 + + + + + 75 + true + + + + background-color:#313B4D; color:white + + + + + + + 40 + 330 + 101 + 41 + + + + + 10 + 75 + true + + + + background-color:#313B4D; color:#21CA78 + + + Phone: + + + Qt::AlignCenter + + + + + + 40 + 400 + 101 + 41 + + + + + 10 + 75 + true + + + + background-color:#313B4D; color:#21CA78 + + + Email: + + + Qt::AlignCenter + + + + + + 160 + 400 + 511 + 41 + + + + + 75 + true + + + + background-color:#313B4D; color:white + + + + + + + 40 + 120 + 101 + 41 + + + + + 10 + 75 + true + + + + background-color:#313B4D; color:#21CA78 + + + Contact: + + + Qt::AlignCenter + + + + + + 700 + 200 + 71 + 51 + + + + + 10 + 75 + true + + + + PointingHandCursor + + + background-color:#E6A31D; color:#3D2922 + + + Edit + + + + + + 700 + 280 + 71 + 51 + + + + + 9 + 75 + true + + + + PointingHandCursor + + + background-color:#E6A31D; color:#3D2922 + + + Remove + + + + + + 700 + 120 + 71 + 51 + + + + + 10 + 75 + true + + + + PointingHandCursor + + + background-color:#E6A31D; color:#3D2922 + + + Add + + + + + + 0 + 40 + 801 + 41 + + + + + 20 + 75 + true + + + + background-color:#343A4D; color:white + + + Edit Contacts From Below + + + Qt::AlignCenter + + + + + + 40 + 450 + 631 + 21 + + + + + 9 + 75 + true + + + + color:red + + + + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + 700 + 360 + 71 + 51 + + + + + 9 + 75 + true + + + + PointingHandCursor + + + background-color:#E6A31D; color:#3D2922 + + + Save + + + + + + Web + + + + + 40 + 400 + 101 + 41 + + + + + 10 + 75 + true + + + + background-color:#313B4D; color:#21CA78 + + + Email: + + + Qt::AlignCenter + + + + + + 40 + 330 + 101 + 41 + + + + + 10 + 75 + true + + + + background-color:#313B4D; color:#21CA78 + + + Phone: + + + Qt::AlignCenter + + + + + + 160 + 400 + 511 + 41 + + + + + 75 + true + + + + background-color:#313B4D; color:white + + + + true + + + + + + 160 + 330 + 511 + 41 + + + + + 75 + true + + + + background-color:#313B4D; color:white + + + + true + + + + + + 160 + 190 + 511 + 41 + + + + + 75 + true + + + + background-color:#313B4D; color:white + + + + true + + + + + + 160 + 260 + 511 + 41 + + + + + 75 + true + + + + background-color:#313B4D; color:white + + + + + + + true + + + + + + 700 + 180 + 71 + 51 + + + + + 10 + 75 + true + + + + PointingHandCursor + + + background-color:#E6A31D; color:#3D2922 + + + Add + + + + + + 0 + 40 + 801 + 41 + + + + + 20 + 75 + true + + + + background-color:#343A4D; color:white + + + Get Online Contact + + + Qt::AlignCenter + + + + + + 40 + 120 + 101 + 41 + + + + + 10 + 75 + true + + + + background-color:#313B4D; color:#21CA78 + + + Website: + + + Qt::AlignCenter + + + + + + 160 + 120 + 511 + 41 + + + + + 10 + 75 + true + + + + background-color:#313B4D; color:white + + + + www.fakenamegenerator.com + + + Qt::AlignCenter + + + true + + + + + + 40 + 450 + 631 + 21 + + + + + 9 + 75 + true + + + + color:red + + + + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + 40 + 190 + 101 + 41 + + + + + 10 + 75 + true + + + + background-color:#313B4D; color:#21CA78 + + + First Name: + + + Qt::AlignCenter + + + + + + 40 + 260 + 101 + 41 + + + + + 10 + 75 + true + + + + background-color:#313B4D; color:#21CA78 + + + Last Name: + + + Qt::AlignCenter + + + + + + 700 + 120 + 71 + 51 + + + + + 10 + 75 + true + + + + PointingHandCursor + + + background-color:#E6A31D; color:#3D2922 + + + Gather + + + + + + Find + + + + + 0 + 40 + 801 + 41 + + + + + 20 + 75 + true + + + + background-color:#343A4D; color:white + + + Find Contact In Text + + + Qt::AlignCenter + + + + + + 710 + 120 + 71 + 51 + + + + + 10 + 75 + true + + + + PointingHandCursor + + + background-color:#E6A31D; color:#3D2922 + + + Find + + + + + + 30 + 120 + 661 + 191 + + + + + 12 + + + + IBeamCursor + + + background-color:#313B4D; color:white + + + + QFrame::StyledPanel + + + QFrame::Sunken + + + false + + + Text: + + + + + + 30 + 330 + 661 + 191 + + + + + 12 + + + + IBeamCursor + + + background-color:#313B4D; color:white + + + + QFrame::StyledPanel + + + QFrame::Sunken + + + false + + + Results: + + + + + + + + + diff --git a/Other Students' Projects/8/Presentation.docx b/Other Students' Projects/8/Presentation.docx new file mode 100644 index 0000000..2669183 Binary files /dev/null and b/Other Students' Projects/8/Presentation.docx differ diff --git a/Other Students' Projects/8/contactList.txt b/Other Students' Projects/8/contactList.txt new file mode 100644 index 0000000..9ae1b2c --- /dev/null +++ b/Other Students' Projects/8/contactList.txt @@ -0,0 +1 @@ +[{"first_name": "William O.", "last_name": "Small", "phone_number": "+1315-568-4058", "email_address": "WilliamOSmall@teleworm.us"}, {"first_name": "Marilynn B.", "last_name": "Cadle", "phone_number": "+1605-440-9640", "email_address": "MarilynnBCadle@teleworm.us"}, {"first_name": "Jennifer G.", "last_name": "Lawlor", "phone_number": "+1410-885-5185", "email_address": "JenniferGLawlor@dayrep.com"}, {"first_name": "Phyllis I.", "last_name": "Jones", "phone_number": "+1320-745-4822", "email_address": "PhyllisIJones@dayrep.com"}] \ No newline at end of file diff --git a/Other Students' Projects/8/keep.txt b/Other Students' Projects/8/keep.txt new file mode 100644 index 0000000..b95e9bd --- /dev/null +++ b/Other Students' Projects/8/keep.txt @@ -0,0 +1,14 @@ +libraries: + pip install pyqt5-tools + pip install PyQt5 + pip install requests + pip install parsel + +Designer: + C:\Program Files\Python37\Lib\site-packages\qt5_applications\Qt\bin\designer.exe + +Ui to Py: + Pyuic5 -x -o MainWindow.py MainWindow.ui + +py to exe: + pyinstaller .\Compile.py --name P_CMS --onefile --noconsole \ No newline at end of file diff --git a/Other Students' Projects/9/.idea/.gitignore b/Other Students' Projects/9/.idea/.gitignore new file mode 100644 index 0000000..c215f66 --- /dev/null +++ b/Other Students' Projects/9/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Datasource local storage ignored files +/../../../../../../:\University\2nd Term\Others Homeworks\Saeede Darvishi\.idea/dataSources/ +/dataSources.local.xml +# Editor-based HTTP Client requests +/httpRequests/ diff --git a/Other Students' Projects/9/.idea/Saeede Darvishi.iml b/Other Students' Projects/9/.idea/Saeede Darvishi.iml new file mode 100644 index 0000000..d3c276c --- /dev/null +++ b/Other Students' Projects/9/.idea/Saeede Darvishi.iml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/Other Students' Projects/9/.idea/inspectionProfiles/Project_Default.xml b/Other Students' Projects/9/.idea/inspectionProfiles/Project_Default.xml new file mode 100644 index 0000000..6eeafb9 --- /dev/null +++ b/Other Students' Projects/9/.idea/inspectionProfiles/Project_Default.xml @@ -0,0 +1,24 @@ + + + + \ No newline at end of file diff --git a/Other Students' Projects/9/.idea/inspectionProfiles/profiles_settings.xml b/Other Students' Projects/9/.idea/inspectionProfiles/profiles_settings.xml new file mode 100644 index 0000000..105ce2d --- /dev/null +++ b/Other Students' Projects/9/.idea/inspectionProfiles/profiles_settings.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/Other Students' Projects/9/.idea/misc.xml b/Other Students' Projects/9/.idea/misc.xml new file mode 100644 index 0000000..a2e120d --- /dev/null +++ b/Other Students' Projects/9/.idea/misc.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/Other Students' Projects/9/.idea/modules.xml b/Other Students' Projects/9/.idea/modules.xml new file mode 100644 index 0000000..9fb21e2 --- /dev/null +++ b/Other Students' Projects/9/.idea/modules.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/Other Students' Projects/9/.idea/vcs.xml b/Other Students' Projects/9/.idea/vcs.xml new file mode 100644 index 0000000..15e316f --- /dev/null +++ b/Other Students' Projects/9/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Other Students' Projects/9/Gui/Dialog_Edit.py b/Other Students' Projects/9/Gui/Dialog_Edit.py new file mode 100644 index 0000000..b19a878 --- /dev/null +++ b/Other Students' Projects/9/Gui/Dialog_Edit.py @@ -0,0 +1,268 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file '.\Dialog_Edit.ui' +# +# Created by: PyQt5 UI code generator 5.15.4 +# +# WARNING: Any manual changes made to this file will be lost when pyuic5 is +# run again. Do not edit this file unless you know what you are doing. + + +from PyQt5 import QtCore, QtGui, QtWidgets + + +class Ui_DialogEdit(object): + def setupUi(self, DialogEdit): + DialogEdit.setObjectName("DialogEdit") + DialogEdit.resize(622, 751) + self.widget = QtWidgets.QWidget(DialogEdit) + self.widget.setGeometry(QtCore.QRect(0, 0, 621, 751)) + self.widget.setStyleSheet("QWidget#widget{\n" +"background-color:qlineargradient(spread:pad, x1:0.0524476, y1:0.0909091, x2:1, y2:1, stop:0 rgba(209, 109, 165, 255), stop:1 rgba(255, 255, 255, 255))}") + self.widget.setObjectName("widget") + self.label = QtWidgets.QLabel(self.widget) + self.label.setGeometry(QtCore.QRect(20, 30, 581, 61)) + font = QtGui.QFont() + font.setFamily("MS Shell Dlg 2") + font.setPointSize(20) + font.setBold(True) + font.setItalic(False) + font.setUnderline(False) + font.setWeight(75) + font.setStrikeOut(False) + font.setKerning(True) + self.label.setFont(font) + self.label.setStyleSheet("color:white;") + self.label.setAlignment(QtCore.Qt.AlignCenter) + self.label.setObjectName("label") + self.lineEditFirst = QtWidgets.QLineEdit(self.widget) + self.lineEditFirst.setGeometry(QtCore.QRect(130, 310, 461, 50)) + font = QtGui.QFont() + font.setPointSize(10) + self.lineEditFirst.setFont(font) + self.lineEditFirst.setStyleSheet("background-color: rgb(207, 182, 196);color:#004242") + self.lineEditFirst.setText("") + self.lineEditFirst.setClearButtonEnabled(True) + self.lineEditFirst.setObjectName("lineEditFirst") + self.lineEditLast = QtWidgets.QLineEdit(self.widget) + self.lineEditLast.setGeometry(QtCore.QRect(130, 370, 461, 50)) + font = QtGui.QFont() + font.setPointSize(10) + self.lineEditLast.setFont(font) + self.lineEditLast.setStyleSheet("background-color: rgb(207, 182, 196);color:#004242") + self.lineEditLast.setText("") + self.lineEditLast.setClearButtonEnabled(True) + self.lineEditLast.setObjectName("lineEditLast") + self.pushButtonAdd = QtWidgets.QPushButton(self.widget) + self.pushButtonAdd.setGeometry(QtCore.QRect(30, 180, 161, 51)) + font = QtGui.QFont() + font.setFamily("MS Shell Dlg 2") + font.setPointSize(10) + self.pushButtonAdd.setFont(font) + self.pushButtonAdd.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) + self.pushButtonAdd.setStyleSheet("border-radius:20px;\n" +"background-color:rgb(115, 255, 255)") + self.pushButtonAdd.setCheckable(False) + self.pushButtonAdd.setAutoDefault(False) + self.pushButtonAdd.setDefault(False) + self.pushButtonAdd.setFlat(False) + self.pushButtonAdd.setObjectName("pushButtonAdd") + self.pushButtonChange = QtWidgets.QPushButton(self.widget) + self.pushButtonChange.setGeometry(QtCore.QRect(230, 180, 161, 51)) + font = QtGui.QFont() + font.setFamily("MS Shell Dlg 2") + font.setPointSize(10) + self.pushButtonChange.setFont(font) + self.pushButtonChange.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) + self.pushButtonChange.setStyleSheet("border-radius:20px;\n" +"background-color:rgb(115, 255, 255)") + self.pushButtonChange.setCheckable(False) + self.pushButtonChange.setAutoDefault(False) + self.pushButtonChange.setDefault(False) + self.pushButtonChange.setFlat(False) + self.pushButtonChange.setObjectName("pushButtonChange") + self.pushButtonDelete = QtWidgets.QPushButton(self.widget) + self.pushButtonDelete.setGeometry(QtCore.QRect(430, 180, 161, 51)) + font = QtGui.QFont() + font.setFamily("MS Shell Dlg 2") + font.setPointSize(10) + self.pushButtonDelete.setFont(font) + self.pushButtonDelete.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) + self.pushButtonDelete.setStyleSheet("border-radius:20px;\n" +"background-color:rgb(115, 255, 255)") + self.pushButtonDelete.setCheckable(False) + self.pushButtonDelete.setAutoDefault(False) + self.pushButtonDelete.setDefault(False) + self.pushButtonDelete.setFlat(False) + self.pushButtonDelete.setObjectName("pushButtonDelete") + self.label_3 = QtWidgets.QLabel(self.widget) + self.label_3.setGeometry(QtCore.QRect(20, 310, 101, 50)) + font = QtGui.QFont() + font.setFamily("B Nazanin") + font.setPointSize(12) + font.setBold(True) + font.setItalic(False) + font.setWeight(75) + self.label_3.setFont(font) + self.label_3.setStyleSheet("color:white") + self.label_3.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.label_3.setObjectName("label_3") + self.label_4 = QtWidgets.QLabel(self.widget) + self.label_4.setGeometry(QtCore.QRect(20, 370, 101, 50)) + font = QtGui.QFont() + font.setFamily("B Nazanin") + font.setPointSize(12) + font.setBold(True) + font.setItalic(False) + font.setWeight(75) + self.label_4.setFont(font) + self.label_4.setStyleSheet("color:white") + self.label_4.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.label_4.setObjectName("label_4") + self.lineEditEmail = QtWidgets.QLineEdit(self.widget) + self.lineEditEmail.setGeometry(QtCore.QRect(130, 430, 461, 50)) + font = QtGui.QFont() + font.setPointSize(10) + self.lineEditEmail.setFont(font) + self.lineEditEmail.setStyleSheet("background-color: rgb(207, 182, 196);color:#004242") + self.lineEditEmail.setText("") + self.lineEditEmail.setClearButtonEnabled(True) + self.lineEditEmail.setObjectName("lineEditEmail") + self.lineEditPhone = QtWidgets.QLineEdit(self.widget) + self.lineEditPhone.setGeometry(QtCore.QRect(130, 490, 461, 50)) + font = QtGui.QFont() + font.setPointSize(10) + self.lineEditPhone.setFont(font) + self.lineEditPhone.setStyleSheet("background-color: rgb(207, 182, 196);color:#004242") + self.lineEditPhone.setText("") + self.lineEditPhone.setClearButtonEnabled(True) + self.lineEditPhone.setObjectName("lineEditPhone") + self.label_5 = QtWidgets.QLabel(self.widget) + self.label_5.setGeometry(QtCore.QRect(20, 430, 101, 50)) + font = QtGui.QFont() + font.setFamily("B Nazanin") + font.setPointSize(12) + font.setBold(True) + font.setItalic(False) + font.setWeight(75) + self.label_5.setFont(font) + self.label_5.setStyleSheet("color:white") + self.label_5.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.label_5.setObjectName("label_5") + self.label_6 = QtWidgets.QLabel(self.widget) + self.label_6.setGeometry(QtCore.QRect(20, 490, 101, 50)) + font = QtGui.QFont() + font.setFamily("B Nazanin") + font.setPointSize(12) + font.setBold(True) + font.setItalic(False) + font.setWeight(75) + self.label_6.setFont(font) + self.label_6.setStyleSheet("color:white") + self.label_6.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.label_6.setObjectName("label_6") + self.label_2 = QtWidgets.QLabel(self.widget) + self.label_2.setGeometry(QtCore.QRect(20, 120, 581, 51)) + font = QtGui.QFont() + font.setFamily("B Nazanin") + font.setPointSize(14) + font.setBold(True) + font.setItalic(False) + font.setWeight(75) + self.label_2.setFont(font) + self.label_2.setStyleSheet("color:white;") + self.label_2.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.label_2.setObjectName("label_2") + self.comboBox = QtWidgets.QComboBox(self.widget) + self.comboBox.setGeometry(QtCore.QRect(380, 255, 211, 41)) + self.comboBox.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) + self.comboBox.setStyleSheet("background-color: rgb(207, 182, 196);color:#004242") + self.comboBox.setObjectName("comboBox") + self.label_order = QtWidgets.QLabel(self.widget) + self.label_order.setGeometry(QtCore.QRect(20, 250, 351, 51)) + font = QtGui.QFont() + font.setFamily("B Nazanin") + font.setPointSize(12) + font.setBold(False) + font.setItalic(False) + font.setWeight(50) + self.label_order.setFont(font) + self.label_order.setStyleSheet("color:white;font: 12pt \"B Nazanin\";") + self.label_order.setText("") + self.label_order.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.label_order.setObjectName("label_order") + self.label_order_2 = QtWidgets.QLabel(self.widget) + self.label_order_2.setGeometry(QtCore.QRect(10, 710, 531, 31)) + font = QtGui.QFont() + font.setFamily("B Nazanin") + font.setPointSize(12) + font.setBold(False) + font.setItalic(False) + font.setWeight(50) + self.label_order_2.setFont(font) + self.label_order_2.setStyleSheet("color:red;font: 12pt \"B Nazanin\";") + self.label_order_2.setText("") + self.label_order_2.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.label_order_2.setObjectName("label_order_2") + self.pushButtonConfirm = QtWidgets.QPushButton(self.widget) + self.pushButtonConfirm.setGeometry(QtCore.QRect(500, 560, 91, 51)) + font = QtGui.QFont() + font.setFamily("MS Shell Dlg 2") + font.setPointSize(10) + self.pushButtonConfirm.setFont(font) + self.pushButtonConfirm.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) + self.pushButtonConfirm.setStyleSheet("border-radius:20px;\n" +"background-color: rgb(33, 255, 181);") + self.pushButtonConfirm.setCheckable(False) + self.pushButtonConfirm.setAutoDefault(False) + self.pushButtonConfirm.setDefault(False) + self.pushButtonConfirm.setFlat(False) + self.pushButtonConfirm.setObjectName("pushButtonConfirm") + self.label_error = QtWidgets.QLabel(self.widget) + self.label_error.setGeometry(QtCore.QRect(10, 720, 601, 31)) + font = QtGui.QFont() + font.setFamily("B Nazanin") + font.setPointSize(10) + font.setBold(True) + font.setItalic(False) + font.setWeight(75) + self.label_error.setFont(font) + self.label_error.setStyleSheet("color:rgb(170, 0, 0)") + self.label_error.setText("") + self.label_error.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.label_error.setObjectName("label_error") + + self.retranslateUi(DialogEdit) + QtCore.QMetaObject.connectSlotsByName(DialogEdit) + DialogEdit.setTabOrder(self.pushButtonAdd, self.pushButtonChange) + DialogEdit.setTabOrder(self.pushButtonChange, self.pushButtonDelete) + DialogEdit.setTabOrder(self.pushButtonDelete, self.lineEditFirst) + DialogEdit.setTabOrder(self.lineEditFirst, self.lineEditLast) + DialogEdit.setTabOrder(self.lineEditLast, self.lineEditEmail) + DialogEdit.setTabOrder(self.lineEditEmail, self.lineEditPhone) + DialogEdit.setTabOrder(self.lineEditPhone, self.comboBox) + DialogEdit.setTabOrder(self.comboBox, self.pushButtonConfirm) + + def retranslateUi(self, DialogEdit): + _translate = QtCore.QCoreApplication.translate + DialogEdit.setWindowTitle(_translate("DialogEdit", "Edit Contacts")) + self.label.setText(_translate("DialogEdit", "Contact Manager System")) + self.pushButtonAdd.setText(_translate("DialogEdit", "Add")) + self.pushButtonChange.setText(_translate("DialogEdit", "Change")) + self.pushButtonDelete.setText(_translate("DialogEdit", "Delete")) + self.label_3.setText(_translate("DialogEdit", "First Name")) + self.label_4.setText(_translate("DialogEdit", "Last Name")) + self.label_5.setText(_translate("DialogEdit", "Email")) + self.label_6.setText(_translate("DialogEdit", "Phone")) + self.label_2.setText(_translate("DialogEdit", "Choose One :")) + self.pushButtonConfirm.setText(_translate("DialogEdit", "Confirm")) + + +if __name__ == "__main__": + import sys + app = QtWidgets.QApplication(sys.argv) + DialogEdit = QtWidgets.QDialog() + ui = Ui_DialogEdit() + ui.setupUi(DialogEdit) + DialogEdit.show() + sys.exit(app.exec_()) diff --git a/Other Students' Projects/9/Gui/Dialog_Edit.ui b/Other Students' Projects/9/Gui/Dialog_Edit.ui new file mode 100644 index 0000000..11bef09 --- /dev/null +++ b/Other Students' Projects/9/Gui/Dialog_Edit.ui @@ -0,0 +1,563 @@ + + + DialogEdit + + + + 0 + 0 + 622 + 751 + + + + Edit Contacts + + + + + 0 + 0 + 621 + 751 + + + + QWidget#widget{ +background-color:qlineargradient(spread:pad, x1:0.0524476, y1:0.0909091, x2:1, y2:1, stop:0 rgba(209, 109, 165, 255), stop:1 rgba(255, 255, 255, 255))} + + + + + 20 + 30 + 581 + 61 + + + + + MS Shell Dlg 2 + 20 + 75 + false + true + false + false + true + + + + color:white; + + + Contact Manager System + + + Qt::AlignCenter + + + + + + 130 + 310 + 461 + 50 + + + + + 10 + + + + background-color: rgb(207, 182, 196);color:#004242 + + + + + + true + + + + + + 130 + 370 + 461 + 50 + + + + + 10 + + + + background-color: rgb(207, 182, 196);color:#004242 + + + + + + true + + + + + + 30 + 180 + 161 + 51 + + + + + MS Shell Dlg 2 + 10 + + + + PointingHandCursor + + + border-radius:20px; +background-color:rgb(115, 255, 255) + + + Add + + + false + + + false + + + false + + + false + + + + + + 230 + 180 + 161 + 51 + + + + + MS Shell Dlg 2 + 10 + + + + PointingHandCursor + + + border-radius:20px; +background-color:rgb(115, 255, 255) + + + Change + + + false + + + false + + + false + + + false + + + + + + 430 + 180 + 161 + 51 + + + + + MS Shell Dlg 2 + 10 + + + + PointingHandCursor + + + border-radius:20px; +background-color:rgb(115, 255, 255) + + + Delete + + + false + + + false + + + false + + + false + + + + + + 20 + 310 + 101 + 50 + + + + + B Nazanin + 12 + 75 + false + true + + + + color:white + + + First Name + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + 20 + 370 + 101 + 50 + + + + + B Nazanin + 12 + 75 + false + true + + + + color:white + + + Last Name + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + 130 + 430 + 461 + 50 + + + + + 10 + + + + background-color: rgb(207, 182, 196);color:#004242 + + + + + + true + + + + + + 130 + 490 + 461 + 50 + + + + + 10 + + + + background-color: rgb(207, 182, 196);color:#004242 + + + + + + true + + + + + + 20 + 430 + 101 + 50 + + + + + B Nazanin + 12 + 75 + false + true + + + + color:white + + + Email + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + 20 + 490 + 101 + 50 + + + + + B Nazanin + 12 + 75 + false + true + + + + color:white + + + Phone + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + 20 + 120 + 581 + 51 + + + + + B Nazanin + 14 + 75 + false + true + + + + color:white; + + + Choose One : + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + 380 + 255 + 211 + 41 + + + + PointingHandCursor + + + background-color: rgb(207, 182, 196);color:#004242 + + + + + + 20 + 250 + 351 + 51 + + + + + B Nazanin + 12 + 50 + false + false + + + + color:white;font: 12pt "B Nazanin"; + + + + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + 10 + 710 + 531 + 31 + + + + + B Nazanin + 12 + 50 + false + false + + + + color:red;font: 12pt "B Nazanin"; + + + + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + 500 + 560 + 91 + 51 + + + + + MS Shell Dlg 2 + 10 + + + + PointingHandCursor + + + border-radius:20px; +background-color: rgb(33, 255, 181); + + + Confirm + + + false + + + false + + + false + + + false + + + + + + 10 + 720 + 601 + 31 + + + + + B Nazanin + 10 + 75 + false + true + + + + color:rgb(170, 0, 0) + + + + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + pushButtonAdd + pushButtonChange + pushButtonDelete + lineEditFirst + lineEditLast + lineEditEmail + lineEditPhone + comboBox + pushButtonConfirm + + + + diff --git a/Other Students' Projects/9/Gui/Dialog_Find.py b/Other Students' Projects/9/Gui/Dialog_Find.py new file mode 100644 index 0000000..9601869 --- /dev/null +++ b/Other Students' Projects/9/Gui/Dialog_Find.py @@ -0,0 +1,102 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file '.\Dialog_Find.ui' +# +# Created by: PyQt5 UI code generator 5.15.4 +# +# WARNING: Any manual changes made to this file will be lost when pyuic5 is +# run again. Do not edit this file unless you know what you are doing. + + +from PyQt5 import QtCore, QtGui, QtWidgets + + +class Ui_DialogFind(object): + def setupUi(self, DialogFind): + DialogFind.setObjectName("DialogFind") + DialogFind.resize(622, 751) + self.widget = QtWidgets.QWidget(DialogFind) + self.widget.setGeometry(QtCore.QRect(0, 0, 621, 751)) + self.widget.setStyleSheet("QWidget#widget{\n" +"background-color:qlineargradient(spread:pad, x1:0.0524476, y1:0.0909091, x2:1, y2:1, stop:0 rgba(209, 109, 165, 255), stop:1 rgba(255, 255, 255, 255))}") + self.widget.setObjectName("widget") + self.label = QtWidgets.QLabel(self.widget) + self.label.setGeometry(QtCore.QRect(20, 30, 581, 61)) + font = QtGui.QFont() + font.setFamily("MS Shell Dlg 2") + font.setPointSize(20) + font.setBold(True) + font.setItalic(False) + font.setUnderline(False) + font.setWeight(75) + font.setStrikeOut(False) + font.setKerning(True) + self.label.setFont(font) + self.label.setStyleSheet("color:white;") + self.label.setAlignment(QtCore.Qt.AlignCenter) + self.label.setObjectName("label") + self.plainTextEdit = QtWidgets.QPlainTextEdit(self.widget) + self.plainTextEdit.setGeometry(QtCore.QRect(10, 170, 601, 261)) + font = QtGui.QFont() + font.setPointSize(12) + self.plainTextEdit.setFont(font) + self.plainTextEdit.setPlainText("") + self.plainTextEdit.setObjectName("plainTextEdit") + self.plainTextEdit_2 = QtWidgets.QPlainTextEdit(self.widget) + self.plainTextEdit_2.setGeometry(QtCore.QRect(10, 480, 601, 261)) + font = QtGui.QFont() + font.setPointSize(12) + self.plainTextEdit_2.setFont(font) + self.plainTextEdit_2.setStyleSheet("background-color: rgb(229, 229, 229);") + self.plainTextEdit_2.setReadOnly(True) + self.plainTextEdit_2.setObjectName("plainTextEdit_2") + self.pushButtonFind = QtWidgets.QPushButton(self.widget) + self.pushButtonFind.setGeometry(QtCore.QRect(510, 110, 91, 51)) + font = QtGui.QFont() + font.setFamily("MS Shell Dlg 2") + font.setPointSize(10) + self.pushButtonFind.setFont(font) + self.pushButtonFind.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) + self.pushButtonFind.setStyleSheet("border-radius:20px;\n" +"background-color: rgb(33, 255, 181);") + self.pushButtonFind.setCheckable(False) + self.pushButtonFind.setAutoDefault(False) + self.pushButtonFind.setDefault(False) + self.pushButtonFind.setFlat(False) + self.pushButtonFind.setObjectName("pushButtonFind") + self.label_2 = QtWidgets.QLabel(self.widget) + self.label_2.setGeometry(QtCore.QRect(20, 110, 481, 51)) + font = QtGui.QFont() + font.setFamily("B Nazanin") + font.setPointSize(12) + font.setBold(False) + font.setItalic(False) + font.setWeight(50) + self.label_2.setFont(font) + self.label_2.setStyleSheet("color:white;font: 12pt \"B Nazanin\";") + self.label_2.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.label_2.setObjectName("label_2") + + self.retranslateUi(DialogFind) + QtCore.QMetaObject.connectSlotsByName(DialogFind) + DialogFind.setTabOrder(self.pushButtonFind, self.plainTextEdit) + DialogFind.setTabOrder(self.plainTextEdit, self.plainTextEdit_2) + + def retranslateUi(self, DialogFind): + _translate = QtCore.QCoreApplication.translate + DialogFind.setWindowTitle(_translate("DialogFind", "Find Contacts From Text")) + self.label.setText(_translate("DialogFind", "Contact Manager System")) + self.plainTextEdit.setPlaceholderText(_translate("DialogFind", "Original Text ...")) + self.plainTextEdit_2.setPlaceholderText(_translate("DialogFind", "Contact Info ...")) + self.pushButtonFind.setText(_translate("DialogFind", "Find")) + self.label_2.setText(_translate("DialogFind", "Click To Find Contacts\' Names and Phones")) + + +if __name__ == "__main__": + import sys + app = QtWidgets.QApplication(sys.argv) + DialogFind = QtWidgets.QDialog() + ui = Ui_DialogFind() + ui.setupUi(DialogFind) + DialogFind.show() + sys.exit(app.exec_()) diff --git a/Other Students' Projects/9/Gui/Dialog_Find.ui b/Other Students' Projects/9/Gui/Dialog_Find.ui new file mode 100644 index 0000000..979d602 --- /dev/null +++ b/Other Students' Projects/9/Gui/Dialog_Find.ui @@ -0,0 +1,180 @@ + + + DialogFind + + + + 0 + 0 + 622 + 751 + + + + Find Contacts From Text + + + + + 0 + 0 + 621 + 751 + + + + QWidget#widget{ +background-color:qlineargradient(spread:pad, x1:0.0524476, y1:0.0909091, x2:1, y2:1, stop:0 rgba(209, 109, 165, 255), stop:1 rgba(255, 255, 255, 255))} + + + + + 20 + 30 + 581 + 61 + + + + + MS Shell Dlg 2 + 20 + 75 + false + true + false + false + true + + + + color:white; + + + Contact Manager System + + + Qt::AlignCenter + + + + + + 10 + 170 + 601 + 261 + + + + + 12 + + + + + + + Original Text ... + + + + + + 10 + 480 + 601 + 261 + + + + + 12 + + + + background-color: rgb(229, 229, 229); + + + true + + + Contact Info ... + + + + + + 510 + 110 + 91 + 51 + + + + + MS Shell Dlg 2 + 10 + + + + PointingHandCursor + + + border-radius:20px; +background-color: rgb(33, 255, 181); + + + Find + + + false + + + false + + + false + + + false + + + + + + 20 + 110 + 481 + 51 + + + + + B Nazanin + 12 + 50 + false + false + + + + color:white;font: 12pt "B Nazanin"; + + + Click To Find Contacts' Names and Phones + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + pushButtonFind + plainTextEdit + plainTextEdit_2 + + + + diff --git a/Other Students' Projects/9/Gui/Dialog_List.py b/Other Students' Projects/9/Gui/Dialog_List.py new file mode 100644 index 0000000..6562f3e --- /dev/null +++ b/Other Students' Projects/9/Gui/Dialog_List.py @@ -0,0 +1,119 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file '.\Dialog_List.ui' +# +# Created by: PyQt5 UI code generator 5.15.4 +# +# WARNING: Any manual changes made to this file will be lost when pyuic5 is +# run again. Do not edit this file unless you know what you are doing. + + +from PyQt5 import QtCore, QtGui, QtWidgets + + +class Ui_DialogList(object): + def setupUi(self, DialogList): + DialogList.setObjectName("DialogList") + DialogList.resize(622, 751) + self.widget = QtWidgets.QWidget(DialogList) + self.widget.setGeometry(QtCore.QRect(0, 0, 621, 751)) + self.widget.setStyleSheet("QWidget#widget{\n" +"background-color:qlineargradient(spread:pad, x1:0.0524476, y1:0.0909091, x2:1, y2:1, stop:0 rgba(209, 109, 165, 255), stop:1 rgba(255, 255, 255, 255))}") + self.widget.setObjectName("widget") + self.tableWidget = QtWidgets.QTableWidget(self.widget) + self.tableWidget.setGeometry(QtCore.QRect(10, 190, 601, 551)) + self.tableWidget.setObjectName("tableWidget") + self.tableWidget.setColumnCount(4) + self.tableWidget.setRowCount(0) + item = QtWidgets.QTableWidgetItem() + self.tableWidget.setHorizontalHeaderItem(0, item) + item = QtWidgets.QTableWidgetItem() + self.tableWidget.setHorizontalHeaderItem(1, item) + item = QtWidgets.QTableWidgetItem() + self.tableWidget.setHorizontalHeaderItem(2, item) + item = QtWidgets.QTableWidgetItem() + self.tableWidget.setHorizontalHeaderItem(3, item) + self.tableWidget.horizontalHeader().setCascadingSectionResizes(False) + self.tableWidget.horizontalHeader().setDefaultSectionSize(141) + self.tableWidget.horizontalHeader().setStretchLastSection(True) + self.tableWidget.verticalHeader().setSortIndicatorShown(False) + self.tableWidget.verticalHeader().setStretchLastSection(False) + self.label_2 = QtWidgets.QLabel(self.widget) + self.label_2.setGeometry(QtCore.QRect(20, 150, 111, 41)) + font = QtGui.QFont() + font.setFamily("B Nazanin") + font.setPointSize(12) + font.setBold(False) + font.setItalic(False) + font.setWeight(50) + self.label_2.setFont(font) + self.label_2.setStyleSheet("color:white;font: 12pt \"B Nazanin\";") + self.label_2.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.label_2.setObjectName("label_2") + self.label = QtWidgets.QLabel(self.widget) + self.label.setGeometry(QtCore.QRect(20, 30, 581, 61)) + font = QtGui.QFont() + font.setFamily("MS Shell Dlg 2") + font.setPointSize(20) + font.setBold(True) + font.setItalic(False) + font.setUnderline(False) + font.setWeight(75) + font.setStrikeOut(False) + font.setKerning(True) + self.label.setFont(font) + self.label.setStyleSheet("color:white;") + self.label.setAlignment(QtCore.Qt.AlignCenter) + self.label.setObjectName("label") + self.label_3 = QtWidgets.QLabel(self.widget) + self.label_3.setGeometry(QtCore.QRect(370, 130, 61, 51)) + font = QtGui.QFont() + font.setFamily("B Nazanin") + font.setPointSize(12) + font.setBold(False) + font.setItalic(False) + font.setWeight(50) + self.label_3.setFont(font) + self.label_3.setStyleSheet("color:white;font: 12pt \"B Nazanin\";") + self.label_3.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.label_3.setObjectName("label_3") + self.radioButtonName = QtWidgets.QRadioButton(self.widget) + self.radioButtonName.setGeometry(QtCore.QRect(430, 130, 88, 19)) + self.radioButtonName.setStyleSheet("color:white;font: 10pt \"B Nazanin\";") + self.radioButtonName.setChecked(True) + self.radioButtonName.setObjectName("radioButtonName") + self.radioButtonFamily = QtWidgets.QRadioButton(self.widget) + self.radioButtonFamily.setGeometry(QtCore.QRect(430, 160, 131, 19)) + self.radioButtonFamily.setStyleSheet("color:white;font: 10pt \"B Nazanin\";") + self.radioButtonFamily.setObjectName("radioButtonFamily") + + self.retranslateUi(DialogList) + QtCore.QMetaObject.connectSlotsByName(DialogList) + + def retranslateUi(self, DialogList): + _translate = QtCore.QCoreApplication.translate + DialogList.setWindowTitle(_translate("DialogList", "List Of Contacts")) + self.tableWidget.setSortingEnabled(True) + item = self.tableWidget.horizontalHeaderItem(0) + item.setText(_translate("DialogList", "Name")) + item = self.tableWidget.horizontalHeaderItem(1) + item.setText(_translate("DialogList", "Famliy Name")) + item = self.tableWidget.horizontalHeaderItem(2) + item.setText(_translate("DialogList", "Email")) + item = self.tableWidget.horizontalHeaderItem(3) + item.setText(_translate("DialogList", "Phone")) + self.label_2.setText(_translate("DialogList", "Contacts List :")) + self.label.setText(_translate("DialogList", "Contact Manager System")) + self.label_3.setText(_translate("DialogList", "Sort")) + self.radioButtonName.setText(_translate("DialogList", "Name")) + self.radioButtonFamily.setText(_translate("DialogList", "Family Name")) + + +if __name__ == "__main__": + import sys + app = QtWidgets.QApplication(sys.argv) + DialogList = QtWidgets.QDialog() + ui = Ui_DialogList() + ui.setupUi(DialogList) + DialogList.show() + sys.exit(app.exec_()) diff --git a/Other Students' Projects/9/Gui/Dialog_List.ui b/Other Students' Projects/9/Gui/Dialog_List.ui new file mode 100644 index 0000000..5b48386 --- /dev/null +++ b/Other Students' Projects/9/Gui/Dialog_List.ui @@ -0,0 +1,203 @@ + + + DialogList + + + + 0 + 0 + 622 + 751 + + + + List Of Contacts + + + + + 0 + 0 + 621 + 751 + + + + QWidget#widget{ +background-color:qlineargradient(spread:pad, x1:0.0524476, y1:0.0909091, x2:1, y2:1, stop:0 rgba(209, 109, 165, 255), stop:1 rgba(255, 255, 255, 255))} + + + + + 10 + 190 + 601 + 551 + + + + true + + + false + + + 141 + + + true + + + false + + + false + + + + Name + + + + + Famliy Name + + + + + Email + + + + + Phone + + + + + + + 20 + 150 + 111 + 41 + + + + + B Nazanin + 12 + 50 + false + false + + + + color:white;font: 12pt "B Nazanin"; + + + Contacts List : + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + 20 + 30 + 581 + 61 + + + + + MS Shell Dlg 2 + 20 + 75 + false + true + false + false + true + + + + color:white; + + + Contact Manager System + + + Qt::AlignCenter + + + + + + 370 + 130 + 61 + 51 + + + + + B Nazanin + 12 + 50 + false + false + + + + color:white;font: 12pt "B Nazanin"; + + + Sort + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + 430 + 130 + 88 + 19 + + + + color:white;font: 10pt "B Nazanin"; + + + Name + + + true + + + + + + 430 + 160 + 131 + 19 + + + + color:white;font: 10pt "B Nazanin"; + + + Family Name + + + + + + + diff --git a/Other Students' Projects/9/Gui/Dialog_Web.py b/Other Students' Projects/9/Gui/Dialog_Web.py new file mode 100644 index 0000000..2834b6d --- /dev/null +++ b/Other Students' Projects/9/Gui/Dialog_Web.py @@ -0,0 +1,199 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file '.\Dialog_Web.ui' +# +# Created by: PyQt5 UI code generator 5.15.4 +# +# WARNING: Any manual changes made to this file will be lost when pyuic5 is +# run again. Do not edit this file unless you know what you are doing. + + +from PyQt5 import QtCore, QtGui, QtWidgets + + +class Ui_DialogWeb(object): + def setupUi(self, DialogWeb): + DialogWeb.setObjectName("DialogWeb") + DialogWeb.resize(622, 751) + self.widget = QtWidgets.QWidget(DialogWeb) + self.widget.setGeometry(QtCore.QRect(0, 0, 621, 751)) + self.widget.setStyleSheet("QWidget#widget{\n" +"background-color:qlineargradient(spread:pad, x1:0.0524476, y1:0.0909091, x2:1, y2:1, stop:0 rgba(209, 109, 165, 255), stop:1 rgba(255, 255, 255, 255))}") + self.widget.setObjectName("widget") + self.label = QtWidgets.QLabel(self.widget) + self.label.setGeometry(QtCore.QRect(20, 30, 581, 61)) + font = QtGui.QFont() + font.setFamily("MS Shell Dlg 2") + font.setPointSize(20) + font.setBold(True) + font.setItalic(False) + font.setUnderline(False) + font.setWeight(75) + font.setStrikeOut(False) + font.setKerning(True) + self.label.setFont(font) + self.label.setStyleSheet("color:white;") + self.label.setAlignment(QtCore.Qt.AlignCenter) + self.label.setObjectName("label") + self.label_6 = QtWidgets.QLabel(self.widget) + self.label_6.setGeometry(QtCore.QRect(20, 370, 101, 50)) + font = QtGui.QFont() + font.setFamily("B Nazanin") + font.setPointSize(12) + font.setBold(True) + font.setItalic(False) + font.setWeight(75) + self.label_6.setFont(font) + self.label_6.setStyleSheet("color:white") + self.label_6.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.label_6.setObjectName("label_6") + self.lineEditFirst = QtWidgets.QLineEdit(self.widget) + self.lineEditFirst.setGeometry(QtCore.QRect(130, 190, 461, 50)) + font = QtGui.QFont() + font.setPointSize(10) + self.lineEditFirst.setFont(font) + self.lineEditFirst.setStyleSheet("background-color: rgb(207, 182, 196);color:#004242") + self.lineEditFirst.setText("") + self.lineEditFirst.setClearButtonEnabled(True) + self.lineEditFirst.setObjectName("lineEditFirst") + self.pushButtonWebAdd = QtWidgets.QPushButton(self.widget) + self.pushButtonWebAdd.setGeometry(QtCore.QRect(500, 430, 91, 51)) + font = QtGui.QFont() + font.setFamily("MS Shell Dlg 2") + font.setPointSize(10) + self.pushButtonWebAdd.setFont(font) + self.pushButtonWebAdd.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) + self.pushButtonWebAdd.setStyleSheet("border-radius:20px;\n" +"background-color: rgb(33, 255, 181);") + self.pushButtonWebAdd.setCheckable(False) + self.pushButtonWebAdd.setAutoDefault(False) + self.pushButtonWebAdd.setDefault(False) + self.pushButtonWebAdd.setFlat(False) + self.pushButtonWebAdd.setObjectName("pushButtonWebAdd") + self.lineEditLast = QtWidgets.QLineEdit(self.widget) + self.lineEditLast.setGeometry(QtCore.QRect(130, 250, 461, 50)) + font = QtGui.QFont() + font.setPointSize(10) + self.lineEditLast.setFont(font) + self.lineEditLast.setStyleSheet("background-color: rgb(207, 182, 196);color:#004242") + self.lineEditLast.setText("") + self.lineEditLast.setClearButtonEnabled(True) + self.lineEditLast.setObjectName("lineEditLast") + self.lineEditEmail = QtWidgets.QLineEdit(self.widget) + self.lineEditEmail.setGeometry(QtCore.QRect(130, 310, 461, 50)) + font = QtGui.QFont() + font.setPointSize(10) + self.lineEditEmail.setFont(font) + self.lineEditEmail.setStyleSheet("background-color: rgb(207, 182, 196);color:#004242") + self.lineEditEmail.setText("") + self.lineEditEmail.setClearButtonEnabled(True) + self.lineEditEmail.setObjectName("lineEditEmail") + self.lineEditPhone = QtWidgets.QLineEdit(self.widget) + self.lineEditPhone.setGeometry(QtCore.QRect(130, 370, 461, 50)) + font = QtGui.QFont() + font.setPointSize(10) + self.lineEditPhone.setFont(font) + self.lineEditPhone.setStyleSheet("background-color: rgb(207, 182, 196);color:#004242") + self.lineEditPhone.setText("") + self.lineEditPhone.setClearButtonEnabled(True) + self.lineEditPhone.setObjectName("lineEditPhone") + self.label_5 = QtWidgets.QLabel(self.widget) + self.label_5.setGeometry(QtCore.QRect(20, 310, 101, 50)) + font = QtGui.QFont() + font.setFamily("B Nazanin") + font.setPointSize(12) + font.setBold(True) + font.setItalic(False) + font.setWeight(75) + self.label_5.setFont(font) + self.label_5.setStyleSheet("color:white") + self.label_5.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.label_5.setObjectName("label_5") + self.label_3 = QtWidgets.QLabel(self.widget) + self.label_3.setGeometry(QtCore.QRect(20, 190, 101, 50)) + font = QtGui.QFont() + font.setFamily("B Nazanin") + font.setPointSize(12) + font.setBold(True) + font.setItalic(False) + font.setWeight(75) + self.label_3.setFont(font) + self.label_3.setStyleSheet("color:white") + self.label_3.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.label_3.setObjectName("label_3") + self.label_4 = QtWidgets.QLabel(self.widget) + self.label_4.setGeometry(QtCore.QRect(20, 250, 101, 50)) + font = QtGui.QFont() + font.setFamily("B Nazanin") + font.setPointSize(12) + font.setBold(True) + font.setItalic(False) + font.setWeight(75) + self.label_4.setFont(font) + self.label_4.setStyleSheet("color:white") + self.label_4.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.label_4.setObjectName("label_4") + self.pushButtonWebGet = QtWidgets.QPushButton(self.widget) + self.pushButtonWebGet.setGeometry(QtCore.QRect(500, 130, 91, 51)) + font = QtGui.QFont() + font.setFamily("MS Shell Dlg 2") + font.setPointSize(10) + self.pushButtonWebGet.setFont(font) + self.pushButtonWebGet.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) + self.pushButtonWebGet.setStyleSheet("border-radius:20px;\n" +"background-color: rgb(33, 255, 181);") + self.pushButtonWebGet.setCheckable(False) + self.pushButtonWebGet.setAutoDefault(False) + self.pushButtonWebGet.setDefault(False) + self.pushButtonWebGet.setFlat(False) + self.pushButtonWebGet.setObjectName("pushButtonWebGet") + self.label_2 = QtWidgets.QLabel(self.widget) + self.label_2.setGeometry(QtCore.QRect(20, 130, 471, 51)) + font = QtGui.QFont() + font.setFamily("B Nazanin") + font.setPointSize(12) + font.setBold(False) + font.setItalic(False) + font.setWeight(50) + self.label_2.setFont(font) + self.label_2.setStyleSheet("color:white;font: 12pt \"B Nazanin\";") + self.label_2.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.label_2.setObjectName("label_2") + self.label_error = QtWidgets.QLabel(self.widget) + self.label_error.setGeometry(QtCore.QRect(10, 720, 601, 31)) + font = QtGui.QFont() + font.setFamily("B Nazanin") + font.setPointSize(10) + font.setBold(True) + font.setItalic(False) + font.setWeight(75) + self.label_error.setFont(font) + self.label_error.setStyleSheet("color:rgb(170, 0, 0)") + self.label_error.setText("") + self.label_error.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.label_error.setObjectName("label_error") + + self.retranslateUi(DialogWeb) + QtCore.QMetaObject.connectSlotsByName(DialogWeb) + + def retranslateUi(self, DialogWeb): + _translate = QtCore.QCoreApplication.translate + DialogWeb.setWindowTitle(_translate("DialogWeb", "Web Contact")) + self.label.setText(_translate("DialogWeb", "Contact Manager System")) + self.label_6.setText(_translate("DialogWeb", "Phone")) + self.pushButtonWebAdd.setText(_translate("DialogWeb", "Add")) + self.label_5.setText(_translate("DialogWeb", "Email")) + self.label_3.setText(_translate("DialogWeb", "First Name")) + self.label_4.setText(_translate("DialogWeb", "Last Name")) + self.pushButtonWebGet.setText(_translate("DialogWeb", "Get Info")) + self.label_2.setText(_translate("DialogWeb", "Click To Get Data From \"www.fakenamegenerator.com\"")) + + +if __name__ == "__main__": + import sys + app = QtWidgets.QApplication(sys.argv) + DialogWeb = QtWidgets.QDialog() + ui = Ui_DialogWeb() + ui.setupUi(DialogWeb) + DialogWeb.show() + sys.exit(app.exec_()) diff --git a/Other Students' Projects/9/Gui/Dialog_Web.ui b/Other Students' Projects/9/Gui/Dialog_Web.ui new file mode 100644 index 0000000..b10e337 --- /dev/null +++ b/Other Students' Projects/9/Gui/Dialog_Web.ui @@ -0,0 +1,404 @@ + + + DialogWeb + + + + 0 + 0 + 622 + 751 + + + + Web Contact + + + + + 0 + 0 + 621 + 751 + + + + QWidget#widget{ +background-color:qlineargradient(spread:pad, x1:0.0524476, y1:0.0909091, x2:1, y2:1, stop:0 rgba(209, 109, 165, 255), stop:1 rgba(255, 255, 255, 255))} + + + + + 20 + 30 + 581 + 61 + + + + + MS Shell Dlg 2 + 20 + 75 + false + true + false + false + true + + + + color:white; + + + Contact Manager System + + + Qt::AlignCenter + + + + + + 20 + 370 + 101 + 50 + + + + + B Nazanin + 12 + 75 + false + true + + + + color:white + + + Phone + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + 130 + 190 + 461 + 50 + + + + + 10 + + + + background-color: rgb(207, 182, 196);color:#004242 + + + + + + true + + + + + + 500 + 430 + 91 + 51 + + + + + MS Shell Dlg 2 + 10 + + + + PointingHandCursor + + + border-radius:20px; +background-color: rgb(33, 255, 181); + + + Add + + + false + + + false + + + false + + + false + + + + + + 130 + 250 + 461 + 50 + + + + + 10 + + + + background-color: rgb(207, 182, 196);color:#004242 + + + + + + true + + + + + + 130 + 310 + 461 + 50 + + + + + 10 + + + + background-color: rgb(207, 182, 196);color:#004242 + + + + + + true + + + + + + 130 + 370 + 461 + 50 + + + + + 10 + + + + background-color: rgb(207, 182, 196);color:#004242 + + + + + + true + + + + + + 20 + 310 + 101 + 50 + + + + + B Nazanin + 12 + 75 + false + true + + + + color:white + + + Email + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + 20 + 190 + 101 + 50 + + + + + B Nazanin + 12 + 75 + false + true + + + + color:white + + + First Name + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + 20 + 250 + 101 + 50 + + + + + B Nazanin + 12 + 75 + false + true + + + + color:white + + + Last Name + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + 500 + 130 + 91 + 51 + + + + + MS Shell Dlg 2 + 10 + + + + PointingHandCursor + + + border-radius:20px; +background-color: rgb(33, 255, 181); + + + Get Info + + + false + + + false + + + false + + + false + + + + + + 20 + 130 + 471 + 51 + + + + + B Nazanin + 12 + 50 + false + false + + + + color:white;font: 12pt "B Nazanin"; + + + Click To Get Data From "www.fakenamegenerator.com" + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + 10 + 720 + 601 + 31 + + + + + B Nazanin + 10 + 75 + false + true + + + + color:rgb(170, 0, 0) + + + + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + + diff --git a/Other Students' Projects/9/Gui/MainWin.py b/Other Students' Projects/9/Gui/MainWin.py new file mode 100644 index 0000000..ab09971 --- /dev/null +++ b/Other Students' Projects/9/Gui/MainWin.py @@ -0,0 +1,130 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file '.\MainWin.ui' +# +# Created by: PyQt5 UI code generator 5.15.4 +# +# WARNING: Any manual changes made to this file will be lost when pyuic5 is +# run again. Do not edit this file unless you know what you are doing. + + +from PyQt5 import QtCore, QtGui, QtWidgets + + +class Ui_MainWindow(object): + def setupUi(self, MainWindow): + MainWindow.setObjectName("MainWindow") + MainWindow.resize(622, 751) + self.centralwidget = QtWidgets.QWidget(MainWindow) + self.centralwidget.setObjectName("centralwidget") + self.widget = QtWidgets.QWidget(self.centralwidget) + self.widget.setGeometry(QtCore.QRect(0, 0, 621, 751)) + self.widget.setStyleSheet("QWidget#widget{\n" +"background-color:qlineargradient(spread:pad, x1:0.0524476, y1:0.0909091, x2:1, y2:1, stop:0 rgba(209, 109, 165, 255), stop:1 rgba(255, 255, 255, 255))}") + self.widget.setObjectName("widget") + self.label = QtWidgets.QLabel(self.widget) + self.label.setGeometry(QtCore.QRect(20, 90, 581, 61)) + font = QtGui.QFont() + font.setFamily("MS Shell Dlg 2") + font.setPointSize(22) + font.setBold(True) + font.setItalic(False) + font.setUnderline(False) + font.setWeight(75) + font.setStrikeOut(False) + font.setKerning(True) + self.label.setFont(font) + self.label.setStyleSheet("color:white;") + self.label.setAlignment(QtCore.Qt.AlignCenter) + self.label.setObjectName("label") + self.label_2 = QtWidgets.QLabel(self.widget) + self.label_2.setGeometry(QtCore.QRect(20, 180, 581, 61)) + font = QtGui.QFont() + font.setFamily("B Nazanin") + font.setPointSize(15) + font.setBold(False) + font.setItalic(False) + font.setWeight(50) + self.label_2.setFont(font) + self.label_2.setStyleSheet("color:white;") + self.label_2.setAlignment(QtCore.Qt.AlignCenter) + self.label_2.setObjectName("label_2") + self.pushButtonEdit = QtWidgets.QPushButton(self.widget) + self.pushButtonEdit.setGeometry(QtCore.QRect(185, 260, 251, 51)) + font = QtGui.QFont() + font.setFamily("MS Shell Dlg 2") + font.setPointSize(10) + self.pushButtonEdit.setFont(font) + self.pushButtonEdit.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) + self.pushButtonEdit.setStyleSheet("border-radius:20px;\n" +"background-color:rgb(115, 255, 255)") + self.pushButtonEdit.setCheckable(False) + self.pushButtonEdit.setAutoDefault(False) + self.pushButtonEdit.setDefault(False) + self.pushButtonEdit.setFlat(False) + self.pushButtonEdit.setObjectName("pushButtonEdit") + self.pushButtonList = QtWidgets.QPushButton(self.widget) + self.pushButtonList.setGeometry(QtCore.QRect(185, 340, 251, 51)) + font = QtGui.QFont() + font.setFamily("MS Shell Dlg 2") + font.setPointSize(10) + self.pushButtonList.setFont(font) + self.pushButtonList.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) + self.pushButtonList.setStyleSheet("border-radius:20px;\n" +"background-color:rgb(115, 255, 255)") + self.pushButtonList.setObjectName("pushButtonList") + self.pushButtonFind = QtWidgets.QPushButton(self.widget) + self.pushButtonFind.setGeometry(QtCore.QRect(185, 420, 251, 51)) + font = QtGui.QFont() + font.setFamily("MS Shell Dlg 2") + font.setPointSize(10) + self.pushButtonFind.setFont(font) + self.pushButtonFind.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) + self.pushButtonFind.setStyleSheet("border-radius:20px;\n" +"background-color:rgb(115, 255, 255)") + self.pushButtonFind.setObjectName("pushButtonFind") + self.pushButtonWeb = QtWidgets.QPushButton(self.widget) + self.pushButtonWeb.setGeometry(QtCore.QRect(185, 500, 251, 51)) + font = QtGui.QFont() + font.setFamily("MS Shell Dlg 2") + font.setPointSize(10) + self.pushButtonWeb.setFont(font) + self.pushButtonWeb.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) + self.pushButtonWeb.setStyleSheet("border-radius:20px;\n" +"background-color:rgb(115, 255, 255)") + self.pushButtonWeb.setObjectName("pushButtonWeb") + self.pushButtonSave = QtWidgets.QPushButton(self.widget) + self.pushButtonSave.setGeometry(QtCore.QRect(185, 580, 251, 51)) + font = QtGui.QFont() + font.setFamily("MS Shell Dlg 2") + font.setPointSize(10) + self.pushButtonSave.setFont(font) + self.pushButtonSave.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) + self.pushButtonSave.setStyleSheet("border-radius:20px;\n" +"background-color:rgb(115, 255, 255)") + self.pushButtonSave.setObjectName("pushButtonSave") + MainWindow.setCentralWidget(self.centralwidget) + + self.retranslateUi(MainWindow) + QtCore.QMetaObject.connectSlotsByName(MainWindow) + + def retranslateUi(self, MainWindow): + _translate = QtCore.QCoreApplication.translate + MainWindow.setWindowTitle(_translate("MainWindow", "Menu")) + self.label.setText(_translate("MainWindow", "Contact Manager System")) + self.label_2.setText(_translate("MainWindow", "Choose What You Love To Do")) + self.pushButtonEdit.setText(_translate("MainWindow", "Edit Contacts")) + self.pushButtonList.setText(_translate("MainWindow", "Contacts List")) + self.pushButtonFind.setText(_translate("MainWindow", "Contact Finder")) + self.pushButtonWeb.setText(_translate("MainWindow", "Get Contact From Web")) + self.pushButtonSave.setText(_translate("MainWindow", "Save")) + + +if __name__ == "__main__": + import sys + app = QtWidgets.QApplication(sys.argv) + MainWindow = QtWidgets.QMainWindow() + ui = Ui_MainWindow() + ui.setupUi(MainWindow) + MainWindow.show() + sys.exit(app.exec_()) diff --git a/Other Students' Projects/9/Gui/MainWin.ui b/Other Students' Projects/9/Gui/MainWin.ui new file mode 100644 index 0000000..26eb344 --- /dev/null +++ b/Other Students' Projects/9/Gui/MainWin.ui @@ -0,0 +1,236 @@ + + + MainWindow + + + + 0 + 0 + 622 + 751 + + + + Menu + + + + + + 0 + 0 + 621 + 751 + + + + QWidget#widget{ +background-color:qlineargradient(spread:pad, x1:0.0524476, y1:0.0909091, x2:1, y2:1, stop:0 rgba(209, 109, 165, 255), stop:1 rgba(255, 255, 255, 255))} + + + + + 20 + 90 + 581 + 61 + + + + + MS Shell Dlg 2 + 22 + 75 + false + true + false + false + true + + + + color:white; + + + Contact Manager System + + + Qt::AlignCenter + + + + + + 20 + 180 + 581 + 61 + + + + + B Nazanin + 15 + 50 + false + false + + + + color:white; + + + Choose What You Love To Do + + + Qt::AlignCenter + + + + + + 185 + 260 + 251 + 51 + + + + + MS Shell Dlg 2 + 10 + + + + PointingHandCursor + + + border-radius:20px; +background-color:rgb(115, 255, 255) + + + Edit Contacts + + + false + + + false + + + false + + + false + + + + + + 185 + 340 + 251 + 51 + + + + + MS Shell Dlg 2 + 10 + + + + PointingHandCursor + + + border-radius:20px; +background-color:rgb(115, 255, 255) + + + Contacts List + + + + + + 185 + 420 + 251 + 51 + + + + + MS Shell Dlg 2 + 10 + + + + PointingHandCursor + + + border-radius:20px; +background-color:rgb(115, 255, 255) + + + Contact Finder + + + + + + 185 + 500 + 251 + 51 + + + + + MS Shell Dlg 2 + 10 + + + + PointingHandCursor + + + border-radius:20px; +background-color:rgb(115, 255, 255) + + + Get Contact From Web + + + + + + 185 + 580 + 251 + 51 + + + + + MS Shell Dlg 2 + 10 + + + + PointingHandCursor + + + border-radius:20px; +background-color:rgb(115, 255, 255) + + + Save + + + + + + + + diff --git a/Other Students' Projects/9/Presentation.docx b/Other Students' Projects/9/Presentation.docx new file mode 100644 index 0000000..a46bf2b Binary files /dev/null and b/Other Students' Projects/9/Presentation.docx differ diff --git a/Other Students' Projects/9/Program.py b/Other Students' Projects/9/Program.py new file mode 100644 index 0000000..0512579 --- /dev/null +++ b/Other Students' Projects/9/Program.py @@ -0,0 +1,347 @@ +import re +import sys +import json +import requests +from parsel import Selector +from dicttoxml import dicttoxml +from xml.dom.minidom import parseString +from tkinter import filedialog, Tk +from PyQt5 import QtCore, QtWidgets +from Gui.MainWin import Ui_MainWindow +from Gui.Dialog_Edit import Ui_DialogEdit +from Gui.Dialog_Find import Ui_DialogFind +from Gui.Dialog_List import Ui_DialogList +from Gui.Dialog_Web import Ui_DialogWeb + +class ConManSys(Ui_MainWindow): + def retranslateUi(self, MenuWindow): + super().retranslateUi(MenuWindow) + + def setupUi(self, MenuWindow): + super().setupUi(MenuWindow) + + def firstStep(self): + self.originalList = [] + self.edit = "add" + self.open() + + def buttonMainEdit(self): + DialogE = QtWidgets.QDialog() + self.WindowE = Ui_DialogEdit() + self.WindowE.setupUi(DialogE) + + self.WindowE.pushButtonAdd.clicked.connect(self.buttonChooseAdd) + self.WindowE.pushButtonChange.clicked.connect(self.buttonChooseChange) + self.WindowE.pushButtonDelete.clicked.connect(self.buttonChooseDelete) + self.WindowE.pushButtonConfirm.clicked.connect(self.buttonConfirm) + self.WindowE.comboBox.currentIndexChanged.connect(self.fillLineEdit) + + self.WindowE.label_3.setVisible(False) + self.WindowE.label_4.setVisible(False) + self.WindowE.label_5.setVisible(False) + self.WindowE.label_6.setVisible(False) + self.WindowE.lineEditFirst.setVisible(False) + self.WindowE.lineEditLast.setVisible(False) + self.WindowE.lineEditEmail.setVisible(False) + self.WindowE.lineEditPhone.setVisible(False) + self.WindowE.pushButtonConfirm.setVisible(False) + self.WindowE.comboBox.setVisible(False) + self.WindowE.label_order.setVisible(False) + + DialogE.show() + DialogE.exec_() + + def buttonMainList(self): + DialogL = QtWidgets.QDialog() + self.WindowL = Ui_DialogList() + self.WindowL.setupUi(DialogL) + + self.fillTable() + self.WindowL.radioButtonName.clicked.connect(self.fillTable) + self.WindowL.radioButtonFamily.clicked.connect(self.fillTable) + + DialogL.show() + DialogL.exec_() + + def buttonMainFind(self): + DialogF = QtWidgets.QDialog() + self.WindowF = Ui_DialogFind() + self.WindowF.setupUi(DialogF) + + self.WindowF.pushButtonFind.clicked.connect(self.buttonFind) + + DialogF.show() + DialogF.exec_() + + def buttonMainWeb(self): + DialogW = QtWidgets.QDialog() + self.WindowW = Ui_DialogWeb() + self.WindowW.setupUi(DialogW) + + self.WindowW.pushButtonWebGet.clicked.connect(self.buttonGetWeb) + self.WindowW.pushButtonWebAdd.clicked.connect(self.buttonAddWeb) + + DialogW.show() + DialogW.exec_() + + def buttonChooseAdd(self): + self.edit = "add" + + self.WindowE.label_error.clear() + self.WindowE.label_3.setVisible(True) + self.WindowE.label_4.setVisible(True) + self.WindowE.label_5.setVisible(True) + self.WindowE.label_6.setVisible(True) + self.WindowE.lineEditFirst.setVisible(True) + self.WindowE.lineEditLast.setVisible(True) + self.WindowE.lineEditEmail.setVisible(True) + self.WindowE.lineEditPhone.setVisible(True) + self.WindowE.pushButtonConfirm.setVisible(True) + self.WindowE.pushButtonConfirm.setGeometry(QtCore.QRect(500, 560, 91, 51)) + self.WindowE.pushButtonConfirm.setEnabled(True) + self.WindowE.comboBox.setVisible(False) + self.WindowE.label_order.setVisible(True) + self.WindowE.label_order.setText('Fill boxes below to add a contact') + + def buttonChooseChange(self): + self.edit = "change" + + if self.originalList: + self.fillComboEdit() + self.WindowE.pushButtonConfirm.setEnabled(True) + self.WindowE.label_error.clear() + else: + self.WindowE.pushButtonConfirm.setEnabled(False) + self.WindowE.label_error.setText('No contact to change its info') + + self.WindowE.label_3.setVisible(True) + self.WindowE.label_4.setVisible(True) + self.WindowE.label_5.setVisible(True) + self.WindowE.label_6.setVisible(True) + self.WindowE.lineEditFirst.setVisible(True) + self.WindowE.lineEditLast.setVisible(True) + self.WindowE.lineEditEmail.setVisible(True) + self.WindowE.lineEditPhone.setVisible(True) + self.WindowE.pushButtonConfirm.setVisible(True) + self.WindowE.pushButtonConfirm.setGeometry(QtCore.QRect(500, 560, 91, 51)) + self.WindowE.comboBox.setVisible(True) + self.WindowE.label_order.setVisible(True) + self.WindowE.label_order.setText('Choose a contact from box to change') + + def buttonChooseDelete(self): + self.edit = "delete" + + if self.originalList: + self.fillComboEdit() + self.WindowE.pushButtonConfirm.setEnabled(True) + self.WindowE.label_error.clear() + else: + self.WindowE.pushButtonConfirm.setEnabled(False) + self.WindowE.label_error.setText('No contact to delete') + + self.WindowE.label_3.setVisible(False) + self.WindowE.label_4.setVisible(False) + self.WindowE.label_5.setVisible(False) + self.WindowE.label_6.setVisible(False) + self.WindowE.lineEditFirst.setVisible(False) + self.WindowE.lineEditLast.setVisible(False) + self.WindowE.lineEditEmail.setVisible(False) + self.WindowE.lineEditPhone.setVisible(False) + self.WindowE.pushButtonConfirm.setVisible(True) + self.WindowE.pushButtonConfirm.setGeometry(QtCore.QRect(500, 310, 91, 51)) + self.WindowE.comboBox.setVisible(True) + self.WindowE.label_order.setVisible(True) + self.WindowE.label_order.setText('Choose a contact from box to delete') + + def buttonConfirm(self): + if self.edit == "add": + if self.WindowE.lineEditFirst.text(): + if self.email(self.WindowE.lineEditEmail.text()): + self.WindowE.label_error.clear() + self.originalList.append([ + self.WindowE.lineEditFirst.text(), + self.WindowE.lineEditLast.text(), + self.WindowE.lineEditEmail.text(), + self.WindowE.lineEditPhone.text() + ]) + self.WindowE.lineEditFirst.clear() + self.WindowE.lineEditLast.clear() + self.WindowE.lineEditEmail.clear() + self.WindowE.lineEditPhone.clear() + else: + self.WindowE.label_error.setText('Enter a valid email') + else: + self.WindowE.label_error.setText('Enter a name') + + elif self.edit == "change": + index = self.WindowE.comboBox.currentIndex() + if self.WindowE.lineEditFirst.text(): + if self.email(self.WindowE.lineEditEmail.text()): + self.WindowE.label_error.clear() + self.originalList[index] = [ + self.WindowE.lineEditFirst.text(), + self.WindowE.lineEditLast.text(), + self.WindowE.lineEditEmail.text(), + self.WindowE.lineEditPhone.text()] + else: + self.WindowE.label_error.setText('Enter a valid email') + else: + self.WindowE.label_error.setText('Enter a name') + + self.fillComboEdit() + + else: + index = self.WindowE.comboBox.currentIndex() + self.originalList.pop(index) + self.fillComboEdit() + + self.save(True) + + def buttonFind(self): + text = self.WindowF.plainTextEdit.toPlainText() + phones = ", ".join(re.findall('[#]([0-9]+)', text)) + names = ", ".join(re.findall('[@]([a-zA-Z]+)', text)) + + show = 'Names:\n' + names + '\n\nNumbers:\n' + phones + self.WindowF.plainTextEdit_2.setPlainText(show) + + def buttonAddWeb(self): + if self.WindowW.lineEditFirst.text(): + if self.email(self.WindowW.lineEditEmail.text()): + self.WindowW.label_error.clear() + self.originalList.append([ + self.WindowW.lineEditFirst.text(), + self.WindowW.lineEditLast.text(), + self.WindowW.lineEditEmail.text(), + self.WindowW.lineEditPhone.text() + ]) + self.WindowW.lineEditFirst.clear() + self.WindowW.lineEditLast.clear() + self.WindowW.lineEditEmail.clear() + self.WindowW.lineEditPhone.clear() + else: + self.WindowW.label_error.setText('Enter a valid email') + else: + self.WindowW.label_error.setText('Enter a name') + self.save(True) + + def buttonGetWeb(self): + try: + text = requests.get("https://www.fakenamegenerator.com/", headers={'user-agent': 'my-app/0.0.1'}).text + sel = Selector(text=text, type='xml') + oriName = sel.css('#details > div.content > div.info > div > div.address > h3').extract_first().split() + phone = sel.css('#details > div.content > div.info > div > div.extra > dl:nth-child(5) > dd').extract_first() + email = sel.css('#details > div.content > div.info > div > div.extra > dl:nth-child(12) > dd').extract_first() + + name = oriName[0].replace("

", "") + family = oriName[2].replace("

", "") + phone = phone.replace("
", "").replace("
", "") + email = email.split()[0].replace("
", "") + + self.WindowW.lineEditFirst.setText(name) + self.WindowW.lineEditLast.setText(family) + self.WindowW.lineEditPhone.setText(phone) + self.WindowW.lineEditEmail.setText(email) + except: + self.WindowW.label_error.setText("No Internet Connection") + + def fillTable(self): + if self.WindowL.radioButtonName.isChecked(): + showList = [i for i in sorted(self.originalList, key=lambda item: item[0])] + else: + showList = [i for i in sorted(self.originalList, key=lambda item: item[1])] + + self.WindowL.tableWidget.setRowCount(0) + for i in range(len(showList)): + self.WindowL.tableWidget.insertRow(i) + self.WindowL.tableWidget.setItem(i, 0, QtWidgets.QTableWidgetItem(showList[i][0])) + self.WindowL.tableWidget.setItem(i, 1, QtWidgets.QTableWidgetItem(showList[i][1])) + self.WindowL.tableWidget.setItem(i, 2, QtWidgets.QTableWidgetItem(showList[i][2])) + self.WindowL.tableWidget.setItem(i, 3, QtWidgets.QTableWidgetItem(showList[i][3])) + + def fillComboEdit(self): + self.WindowE.comboBox.clear() + self.WindowE.comboBox.addItems([" ".join(i[:2]) for i in self.originalList]) + + def fillLineEdit(self): + index = self.WindowE.comboBox.currentIndex() + self.WindowE.lineEditFirst.setText(self.originalList[index][0]) + self.WindowE.lineEditLast.setText(self.originalList[index][1]) + self.WindowE.lineEditEmail.setText(self.originalList[index][2]) + self.WindowE.lineEditPhone.setText(self.originalList[index][3]) + + def email(self, address): + if address == "": + return True + else: + regex = '^[0-9a-z]+[\._]?[0-9a-z]+[@][0-9a-z]+[.][0-9a-z]{2,3}$' + + if re.search(regex, address.lower()): + return True + else: + return False + + def open(self): + try: + try: + file = open("myDatabase.txt", 'r') + self.originalList = json.loads(file.read()) + file.close() + except: + self.originalList = [] + except: + self.originalList = [] + file = open("myDatabase.txt", 'w') + file.close() + + def save(self, opening=False): + window = Tk() + window.withdraw() + if opening: + file_name = "myDatabase.txt" + else: + file_name = filedialog.asksaveasfilename(title="Save database", initialdir=".\\", initialfile="myDatabase.txt", + defaultextension="txt", filetypes=(("TXT", "*.txt"), ("JSON", "*.json"), ("XML", "*.xml"), ("All Files", "*.*"))) + if file_name: + if file_name.lower().endswith(".json"): + file = open(file_name, 'w') + json.dump(self.originalList, file) + file.close() + + elif file_name.lower().endswith(".xml"): + array = [] + for i in self.originalList: + array.append({ + 'name': i[0], + 'family': i[1], + 'email': i[2], + 'phone': i[3], + }) + + xml = dicttoxml(array, custom_root='Contacts', attr_type=False) + dom = parseString(xml) + file = open(file_name, 'w') + file.write(dom.toprettyxml()) + file.close() + + else: + file = open(file_name, 'w') + file.write(json.dumps(self.originalList)) + file.close() + +if __name__ == "__main__": + Application = QtWidgets.QApplication(sys.argv) + MenuWindow = QtWidgets.QMainWindow() + + program = ConManSys() + program.setupUi(MenuWindow) + program.firstStep() + + program.pushButtonEdit.clicked.connect(program.buttonMainEdit) + program.pushButtonList.clicked.connect(program.buttonMainList) + program.pushButtonFind.clicked.connect(program.buttonMainFind) + program.pushButtonWeb.clicked.connect(program.buttonMainWeb) + program.pushButtonSave.clicked.connect(program.save) + + MenuWindow.show() + sys.exit(Application.exec_()) \ No newline at end of file diff --git a/Other Students' Projects/9/keep.txt b/Other Students' Projects/9/keep.txt new file mode 100644 index 0000000..915459f --- /dev/null +++ b/Other Students' Projects/9/keep.txt @@ -0,0 +1,21 @@ +libraries: + pip install pyqt5-tools + pip install PyQt5 + pip install requests + pip install parsel + pip install dicttoxml + +Designer: + C:\Program Files\Python37\Lib\site-packages\qt5_applications\Qt\bin\designer.exe + +Ui to Py: + Pyuic5 -x -o .\Dialog_Edit.py .\Dialog_Edit.ui + Pyuic5 -x -o .\Dialog_Find.py .\Dialog_Find.ui + Pyuic5 -x -o .\Dialog_List.py .\Dialog_List.ui + Pyuic5 -x -o .\Dialog_Web.py .\Dialog_Web.ui + Pyuic5 -x -o .\MainWin.py .\MainWin.ui + +Py to exe: + pyinstaller Program.py --name MyConManSys --onefile --noconsole + + diff --git a/Project.pdf b/Project.pdf new file mode 100644 index 0000000..838d207 Binary files /dev/null and b/Project.pdf differ