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
+
+
+
+
+
+
+
+ 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