gui almost finish

This commit is contained in:
Am-teamdev
2026-05-11 10:56:16 +03:30
commit 7afaac29d6
16 changed files with 988 additions and 0 deletions
+10
View File
@@ -0,0 +1,10 @@
# Default ignored files
/shelf/
/workspace.xml
# Ignored default folder with query files
/queries/
# Datasource local storage ignored files
/dataSources/
/dataSources.local.xml
# Editor-based HTTP Client requests
/httpRequests/
+6
View File
@@ -0,0 +1,6 @@
<component name="InspectionProjectProfileManager">
<settings>
<option name="USE_PROJECT_PROFILE" value="false" />
<version value="1.0" />
</settings>
</component>
+7
View File
@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Black">
<option name="sdkName" value="Python 3.14 (network_procsses)" />
</component>
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.14 (network_procsses)" project-jdk-type="Python SDK" />
</project>
+8
View File
@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/network_procsses.iml" filepath="$PROJECT_DIR$/.idea/network_procsses.iml" />
</modules>
</component>
</project>
+10
View File
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="PYTHON_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$">
<excludeFolder url="file://$MODULE_DIR$/.venv" />
</content>
<orderEntry type="jdk" jdkName="Python 3.14 (network_procsses)" jdkType="Python SDK" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>
Generated
+6
View File
@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="" vcs="Git" />
</component>
</project>
Executable
BIN
View File
Binary file not shown.
+712
View File
@@ -0,0 +1,712 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>am</class>
<widget class="QMainWindow" name="am">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>736</width>
<height>846</height>
</rect>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="font">
<font>
<family>Segoe UI</family>
<pointsize>-1</pointsize>
</font>
</property>
<property name="windowTitle">
<string>am</string>
</property>
<property name="windowIcon">
<iconset theme="preferences-system-network"/>
</property>
<property name="styleSheet">
<string notr="true">/* تنظیمات کلی و پس‌زمینه اصلی */
QWidget {
background-color: #222831; /* خاکستری-سورمه‌ای بسیار تیره */
color: #EEEEEE; /* سفید مات برای خوانایی بالا */
font-family: &quot;Segoe UI&quot;, Tahoma, Arial;
font-size: 14px;
}
/* فیلدهای ورودی متن و اعداد */
QLineEdit, QTextEdit, QSpinBox, QComboBox {
background-color: #393E46; /* پس‌زمینه فیلدها */
color: #EEEEEE;
border: 2px solid #393E46; /* حاشیه نامرئی در حالت عادی */
border-radius: 8px; /* گوشه‌های گرد و مدرن */
padding: 6px 10px;
selection-background-color: #00ADB5; /* رنگ پس‌زمینه متنی که انتخاب (Select) می‌شود */
}
/* حالت فوکوس (وقتی کاربر روی فیلد کلیک می‌کند) */
QLineEdit:focus, QTextEdit:focus, QSpinBox:focus, QComboBox:focus {
border: 2px solid #00ADB5; /* روشن شدن حاشیه با رنگ فیروزه‌ای */
background-color: #2D323A;
}
/* دکمه‌های اصلی */
QPushButton {
background-color: #00ADB5; /* فیروزه‌ای شیک و مدرن */
color: #ffffff;
font-weight: bold;
font-size: 15px;
border: none;
border-radius: 8px; /* گوشه‌های کاملا گرد */
padding: 10px 20px;
}
/* وقتی ماوس روی دکمه می‌رود (Hover) */
QPushButton:hover {
background-color: #008f96; /* فیروزه‌ای تیره‌تر */
}
/* وقتی دکمه کلیک می‌شود */
QPushButton:pressed {
background-color: #00737a;
}
/* طراحی تب‌ها (اگر در برنامه دارید) */
QTabBar::tab {
background-color: #393E46;
color: #AAAAAA;
padding: 10px 20px;
border-top-left-radius: 8px;
border-top-right-radius: 8px;
margin-right: 2px;
}
/* تبِ انتخاب شده */
QTabBar::tab:selected {
background-color: #00ADB5;
color: #ffffff;
font-weight: bold;
}
/* وقتی ماوس روی تب‌های دیگر می‌رود */
QTabBar::tab:hover:!selected {
background-color: #4A5059;
color: #EEEEEE;
}
QPushButton:focus {
outline: none; /* پاک کردن مستطیل دور تمرکز */
border: 2px solid #00ADB5; /* حفظ حاشیه آبی فیروزه ای */
background-color: #2D323A;
}
/* SpinBox اصلی */
QSpinBox {
background-color: #393E46;
color: #EEEEEE;
border: 2px solid #393E46;
border-radius: 8px;
padding: 6px 10px;
padding-right: 28px; /* جا برای دکمه‌های بالا/پایین */
min-width: 10px;
}
/* دکمه‌های بالا و پایین */
QSpinBox::up-button {
subcontrol-origin: padding;
subcontrol-position: top right;
width: 22px;
height: 16px;
border: none;
border-top-right-radius: 8px;
background-color: transparent;
}
QSpinBox::down-button {
subcontrol-origin: padding;
subcontrol-position: bottom right;
width: 22px;
height: 16px;
border: none;
border-bottom-right-radius: 8px;
background-color: transparent;
}
/* هاور دکمه‌های spinbox */
QSpinBox::up-button:hover,
QSpinBox::down-button:hover {
background-color: #00ADB5;
}
/* فلش بالا */
QSpinBox::up-arrow {
image: url(&quot;data:image/svg+xml,%3Csvg%20fill='%23EEEEEE'%20height='10'%20width='10'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%3E%3Cpath%20d='M7%2014l5-5%205%205z'/%3E%3C/svg%3E&quot;);
width: 10px;
height: 10px;
}
/* فلش پایین */
QSpinBox::down-arrow {
image: url(&quot;data:image/svg+xml,%3Csvg%20fill='%23EEEEEE'%20height='10'%20width='10'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%3E%3Cpath%20d='M7%2010l5%205%205-5z'/%3E%3C/svg%3E&quot;);
width: 10px;
height: 10px;
}</string>
</property>
<widget class="QWidget" name="centralwidget">
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
<widget class="QSplitter" name="splitter">
<property name="orientation">
<enum>Qt::Orientation::Vertical</enum>
</property>
<widget class="QTabWidget" name="tabWidget">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="MinimumExpanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="currentIndex">
<number>0</number>
</property>
<widget class="QWidget" name="tab">
<attribute name="title">
<string>Tab 1</string>
</attribute>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<spacer name="verticalSpacer_2">
<property name="orientation">
<enum>Qt::Orientation::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QLabel" name="label_4">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Maximum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="font">
<font>
<family>Segoe UI</family>
<pointsize>-1</pointsize>
</font>
</property>
<property name="text">
<string>Address :</string>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="url_in">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Maximum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="font">
<font>
<family>Segoe UI</family>
<pointsize>-1</pointsize>
</font>
</property>
</widget>
</item>
<item>
<widget class="QSpinBox" name="prot_box">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Maximum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="maximum">
<number>65535</number>
</property>
<property name="value">
<number>8888</number>
</property>
</widget>
</item>
</layout>
</item>
<item>
<spacer name="verticalSpacer_3">
<property name="orientation">
<enum>Qt::Orientation::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
<widget class="QLabel" name="label_5">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Maximum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="font">
<font>
<family>Segoe UI</family>
<pointsize>-1</pointsize>
</font>
</property>
<property name="text">
<string>Username :</string>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="user_in">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Maximum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="font">
<font>
<family>Segoe UI</family>
<pointsize>-1</pointsize>
</font>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_6">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Maximum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="font">
<font>
<family>Segoe UI</family>
<pointsize>-1</pointsize>
</font>
</property>
<property name="text">
<string>Password :</string>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="pass_in">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Maximum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="font">
<font>
<family>Segoe UI</family>
<pointsize>-1</pointsize>
</font>
</property>
</widget>
</item>
</layout>
</item>
<item>
<spacer name="verticalSpacer_4">
<property name="orientation">
<enum>Qt::Orientation::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_3">
<item>
<widget class="QLabel" name="label_7">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Maximum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="font">
<font>
<family>Segoe UI</family>
<pointsize>-1</pointsize>
</font>
</property>
<property name="text">
<string>path bin :</string>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="path_bin_en">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Maximum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="font">
<font>
<family>Segoe UI</family>
<pointsize>-1</pointsize>
</font>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="open_bin_en">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Maximum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>open</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<spacer name="verticalSpacer_5">
<property name="orientation">
<enum>Qt::Orientation::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_4">
<item>
<widget class="QLabel" name="label_8">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Maximum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="font">
<font>
<family>Segoe UI</family>
<pointsize>-1</pointsize>
</font>
</property>
<property name="text">
<string>key :</string>
</property>
</widget>
</item>
<item>
<widget class="QSpinBox" name="key_box_en">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Maximum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="maximum">
<number>9999</number>
</property>
<property name="value">
<number>0</number>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Orientation::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item>
<layout class="QGridLayout" name="gridLayout_7">
<item row="0" column="0">
<widget class="QPushButton" name="encoding_bt">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Maximum">
<horstretch>99</horstretch>
<verstretch>20</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>encoding</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Orientation::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
<widget class="QWidget" name="tab_2">
<attribute name="title">
<string>Tab 2</string>
</attribute>
<layout class="QVBoxLayout" name="verticalLayout_3">
<item>
<layout class="QHBoxLayout" name="horizontalLayout_5">
<item>
<widget class="QLabel" name="label_9">
<property name="font">
<font>
<family>Segoe UI</family>
<pointsize>-1</pointsize>
</font>
</property>
<property name="text">
<string>path bin :</string>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="path_bin_de">
<property name="font">
<font>
<family>Segoe UI</family>
<pointsize>-1</pointsize>
</font>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="open_bin_de">
<property name="text">
<string>open</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_6">
<item>
<widget class="QLabel" name="label_10">
<property name="font">
<font>
<family>Segoe UI</family>
<pointsize>-1</pointsize>
</font>
</property>
<property name="text">
<string>path txt :</string>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="path_txt_de">
<property name="font">
<font>
<family>Segoe UI</family>
<pointsize>-1</pointsize>
</font>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="open_txt_de">
<property name="text">
<string>open</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_7">
<item>
<widget class="QLabel" name="label_11">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Maximum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="font">
<font>
<family>Segoe UI</family>
<pointsize>-1</pointsize>
</font>
</property>
<property name="text">
<string>key :</string>
</property>
</widget>
</item>
<item>
<widget class="QSpinBox" name="key_box_de">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Maximum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="maximum">
<number>9999</number>
</property>
<property name="value">
<number>0</number>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_2">
<property name="orientation">
<enum>Qt::Orientation::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item>
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="2">
<spacer name="horizontalSpacer_3">
<property name="orientation">
<enum>Qt::Orientation::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="0" column="1">
<widget class="QPushButton" name="decoding_bt">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Maximum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>decoding</string>
</property>
</widget>
</item>
<item row="0" column="0">
<spacer name="horizontalSpacer_4">
<property name="orientation">
<enum>Qt::Orientation::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
</layout>
</widget>
</widget>
<widget class="QTextBrowser" name="logs">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Minimum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
</widget>
</widget>
</item>
<item>
<widget class="QPushButton" name="reset_bt">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Maximum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="font">
<font>
<family>Segoe UI</family>
<pointsize>-1</pointsize>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>reset</string>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QMenuBar" name="menubar">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>736</width>
<height>32</height>
</rect>
</property>
</widget>
<widget class="QStatusBar" name="statusbar"/>
</widget>
<resources/>
<connections/>
</ui>
+8
View File
@@ -0,0 +1,8 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" version="1.1">
<defs>
<style id="current-color-scheme" type="text/css">
.ColorScheme-Text { color:#dfdfdf; } .ColorScheme-Highlight { color:#4285f4; } .ColorScheme-NeutralText { color:#ff9800; } .ColorScheme-PositiveText { color:#4caf50; } .ColorScheme-NegativeText { color:#f44336; }
</style>
</defs>
<path style="fill:currentColor" class="ColorScheme-Text" d="M 2.25,1 1,2.25 3.1348,4.3848 C 0.863,5.8643 0,8 0,8 0,8 2,13 8,13 9.2318,13 10.279,12.776 11.189,12.439 L 13.75,15 15,13.75 Z M 8,3 C 7.3419,3 6.7403,3.0687 6.1758,3.1758 L 8,5 A 3,3 0 0 1 11,8 L 13.861,10.861 C 15.393,9.5037 16,8 16,8 16,8 14,3 8,3 Z M 5.3496,6.5996 9.4004,10.65 A 3,3 0 0 1 8,11 3,3 0 0 1 5,8 3,3 0 0 1 5.3496,6.5996 Z"/>
</svg>

After

Width:  |  Height:  |  Size: 784 B

+14
View File
@@ -0,0 +1,14 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 22">
<defs id="defs3051">
<style type="text/css" id="current-color-scheme">
.ColorScheme-Text {
color:#232629;
}
</style>
</defs>
<path transform="translate(0,-1030.3622)"
d="m 11,1033.3622 c 0,0 -2,2.6581 -8,3.3248 0,0 0,9.3333 8,12.6752 8,-3.3419 8,-12.6752 8,-12.6752 -6,-0.6667 -8,-3.3248 -8,-3.3248 z m 0,4.6667 c 1.104566,0 2,0.8954 2,2 0,0.8284 -0.511334,1.5297 -1.229166,1.8333 l 0.5625,2.8333 -2.666668,0 0.5625,-2.8333 C 9.511334,1041.5586 9,1040.8573 9,1040.0289 c 0,-1.1046 0.895434,-2 2,-2 z"
style="fill:currentColor;fill-opacity:1;stroke:none"
class="ColorScheme-Text"
/>
</svg>

After

Width:  |  Height:  |  Size: 730 B

+62
View File
@@ -0,0 +1,62 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="16"
height="16"
viewBox="0 0 16 16"
version="1.1"
id="svg7"
sodipodi:docname="nemo-prefs-display-symbolic.svg"
inkscape:version="0.92.3 (2405546, 2018-03-11)">
<metadata
id="metadata11">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="779"
inkscape:window-height="480"
id="namedview9"
showgrid="false"
inkscape:zoom="14.75"
inkscape:cx="8"
inkscape:cy="8"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="0"
inkscape:current-layer="svg7" />
<defs
id="defs3">
<style
id="current-color-scheme"
type="text/css">
.ColorScheme-Text { color:#6e6e6e; } .ColorScheme-Highlight { color:#5294e2; }
</style>
</defs>
<path
style="fill:#bebebe;fill-opacity:1"
class="ColorScheme-Text"
d="M 8 3.0039062 C 6.4492 3.0190063 4.8879094 3.3732319 3.5371094 4.1386719 C 2.9987094 4.4892919 2.3523344 4.9421175 1.8652344 5.3984375 C 1.0987444 6.1488575 0.4427 7.0244062 0 8.0039062 C 1.2149 10.683506 3.8859187 12.6474 6.8242188 12.9375 C 8.7516188 13.15561 10.768591 12.822631 12.462891 11.869141 C 13.001291 11.518521 13.647666 11.065695 14.134766 10.609375 C 14.901256 9.858955 15.5573 8.9834063 16 8.0039062 C 14.785 5.3245062 12.114181 3.3601125 9.1757812 3.0703125 C 8.7859013 3.0248425 8.39251 3.0038963 8 3.0039062 z M 8 5.0019531 L 8 5.0039062 C 9.607 4.9683062 11.0303 6.4057062 11 8.0039062 C 11.0515 9.7703063 9.2909813 11.294844 7.5507812 10.964844 C 5.7931812 10.758504 4.5587188 8.7851344 5.1367188 7.1152344 C 5.5058788 5.8858344 6.7125 4.9866531 8 5.0019531 z M 8 7.0039062 A 1 1 0 0 0 7 8.0039062 A 1 1 0 0 0 8 9.0039062 A 1 1 0 0 0 9 8.0039062 A 1 1 0 0 0 8 7.0039062 z"
id="path5" />
</svg>

After

Width:  |  Height:  |  Size: 2.6 KiB

+27
View File
@@ -0,0 +1,27 @@
try:
type_work = input('select type: \n\t1.(encodin)\n\t2.(decoding)\n(1/2) : ')
if type_work == '1':
path = input('path : ')
l = []
with open(path, 'rb') as f:
info = f.read()
print(info)
l = [i + 18 for i in info]
# print(l)
# l = [i - 18 for i in l]
# print(bytes(l))
with open('encoding_bin.bin', 'wb') as f:
f.write(bytes(l))
print('encoding sucsses.')
if type_work == '2':
path = input('path : ')
l = []
with open(path, 'rb') as f:
info = f.read()
l = [i - 18 for i in info]
with open('decoding_bin.bin', 'wb') as f:
f.write(bytes(l))
print('encoding sucsses.')
except:
print('error')
Binary file not shown.
+28
View File
@@ -0,0 +1,28 @@
import json
class EdCoding:
def __init__(self, key):
self.key = key
def ende(self, data):
"""
:param data: type just dict and string
:return:
"""
text = data
if isinstance(data, dict):
text = json.dumps(data, ensure_ascii=False)
encoded = ''.join(
chr(ord(c) ^ self.key) for c in text
)
return encoded
def read_file(self):
pass
coding = EdCoding(12)
en = coding.ende({'key': 'value'})
de = coding.ende(en)
print(en, de, sep='\n')
+85
View File
@@ -0,0 +1,85 @@
import ed_coding
from PyQt6.QtWidgets import QApplication, QWidget, QLabel, QVBoxLayout, QMainWindow, QProgressBar
from PyQt6.QtCore import Qt, QTimer, QPropertyAnimation, QEasingCurve
from PyQt6.QtGui import QFont
from PyQt6 import uic
from PyQt6.QtSvgWidgets import QSvgWidget
import sys
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
uic.loadUi("../GUI/gui.ui", self)
class SplashScreen(QWidget):
def __init__(self):
super().__init__()
# --- تنظیمات ظاهری پنجره ---
self.setFixedSize(400, 300)
self.setWindowFlags(Qt.WindowType.FramelessWindowHint | Qt.WindowType.WindowStaysOnTopHint)
self.setAttribute(Qt.WidgetAttribute.WA_TranslucentBackground)
# --- چیدمان و ویجت‌ها ---
layout = QVBoxLayout(self)
layout.setContentsMargins(20, 20, 20, 20)
self.setLayout(layout)
# --- ویجت برای نمایش SVG ---
# استفاده از QSvgWidget بهترین راه برای نمایش فایل SVG است
self.svg_widget = QSvgWidget('../GUI/network-vpn.svg', self)
self.svg_widget.setFixedSize(150, 150) # اندازه آیکون را تنظیم کنید
# --- متن زیر آیکون ---
self.title_label = QLabel("Security Network", self)
self.title_label.setFont(QFont("Segoe UI", 20, QFont.Weight.Bold))
self.loading_label = QLabel("Welcome.", self)
self.loading_label.setFont(QFont("Segoe UI", 10))
# افزودن ویجت‌ها به چیدمان و وسط‌چین کردن آن‌ها
layout.addStretch() # فضای خالی در بالا
layout.addWidget(self.svg_widget, alignment=Qt.AlignmentFlag.AlignCenter)
layout.addWidget(self.title_label, alignment=Qt.AlignmentFlag.AlignCenter)
layout.addWidget(self.loading_label, alignment=Qt.AlignmentFlag.AlignCenter)
layout.addStretch() # فضای خالی در پایین
# --- استایل‌دهی (تم دارک) ---
self.setStyleSheet("""
QWidget {
background-color: #0d1117; /* پس‌زمینه مشکی-سورمه‌ای */
color: #e6edf3; /* رنگ متن سفید-آبی */
border-radius: 15px; /* گرد کردن گوشه‌ها */
}
""")
# --- انیمیشن محو شدن (Fade-in) ---
self.animation = QPropertyAnimation(self, b"windowOpacity")
self.animation.setDuration(1000) # ۱ ثانیه
self.animation.setStartValue(0.0)
self.animation.setEndValue(1.0)
self.animation.setEasingCurve(QEasingCurve.Type.InOutQuad)
self.animation.start()
if __name__ == "__main__":
app = QApplication(sys.argv)
# نمایش صفحه اول (Splash Screen)
splash = SplashScreen()
splash.show()
# ساخت صفحه اصلی (ولی هنوز نشونش نمیدیم)
main_window = MainWindow()
def show_main_window():
splash.close()
main_window.show()
QTimer.singleShot(3000, show_main_window)
sys.exit(app.exec())
+5
View File
@@ -0,0 +1,5 @@
import json
d = {"key": "value",
'key2': 'value2',
'key3': 'value3'}
print(json.dumps(d, indent=4))