السلام عليكم ورحمة الله وبركاته
قمت بعمل برنامج يعمل على إستدعاء مكتبة binascii كي اقوم بتحويل النص المدخل إليه إلى هكس والعكس صحيح
وكان البرنامج على واجهة الـ Console
#-------------------------------------------------------------------------------
# Name: module1
# Purpose:
#
# Author: ~SLY-ONE~
#
# Created: 16/05/2012
# Copyright: (c) ~SLY-ONE~ 2012
# Licence: <your licence>
#-------------------------------------------------------------------------------
def main():
pass
if __name__ == '__main__':
main()
import binascii
s = "Copyright (c) 20012-2022 By : ALmuhhnad\nAll Rights Reserved."
print ("""
# # # # # # # # # # # # # # # # #
# # # # | S L Y - O N E | # # # #
# # # # # # # # # # # # # # # # #
-----------------
|||||||||||||
||||@@@@@@|||
|||@@||||@@||
||@@||||||@||
||@@|||||||||
|||@@||||||||
||||@@|||||||
|||||||@@||||
||||||||@@|||
|||||||||@@||
||@||||||@@||
||@@||||@@|||
|||@@@@@@||||
|||||||||||||
-----------------
%s
Date : 1433-6-25 ... Good Lucky !!"""%(s))
print ("\n1-do the code\n2-do open the code\n3-Exit")
_EnterUser_ = 0
while (_EnterUser_ !="3"):
try:
_EnterUser_=raw_input("\nSelect from menu : ")
except KeyboardInterrupt:
print ("must write what you want")
if (_EnterUser_ =="1"):
print ("\nWrite your words :")
try:
_CodeMake_=raw_input("")
print ("\nThe Code :\n"+ binascii.hexlify(_CodeMake_))
except KeyboardInterrupt:
print ("must write what you want")
if (_EnterUser_=="2"):
print ("\nWrite your words :")
try:
_CodeOpen_=raw_input("")
print ("\nThe UnCode :\n"+ binascii.unhexlify(_CodeOpen_))
except KeyboardInterrupt:
print ("must write what you want")
except TypeError:
print ("you can't do this")
if (_EnterUser_=="3"):
exitبعد فترة وبعد ان اكتسبت خبرة بتصميم برامج ذو واجهات رسومية
عملت البرنامج على واجهات رسومية بستعمالـ PyQt4
وكان كودة مقسم إلى قسمين القسم الاول يحمل اعدادات وخصائص ورسومات الواجهة الرسومية
اما القسم الثاني كان يحمل اللأحداث
الكود الاول :
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'D:\Projects python GUI\1\MyQt1.ui'
#
# Created: Tue Jun 05 22:25:40 2012
# by: PyQt4 UI code generator 4.9.1
#
# WARNING! All changes made in this file will be lost!
from PyQt4 import QtCore, QtGui
try:
_fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
_fromUtf8 = lambda s: s
class Ui_Dialog(object):
def setupUi(self, Dialog):
Dialog.setObjectName(_fromUtf8("Dialog"))
Dialog.resize(400, 349)
self.gridLayoutWidget = QtGui.QWidget(Dialog)
self.gridLayoutWidget.setGeometry(QtCore.QRect(10, 10, 381, 271))
self.gridLayoutWidget.setObjectName(_fromUtf8("gridLayoutWidget"))
self.gridLayout = QtGui.QGridLayout(self.gridLayoutWidget)
self.gridLayout.setMargin(0)
self.gridLayout.setObjectName(_fromUtf8("gridLayout"))
self.tabCode = QtGui.QTabWidget(self.gridLayoutWidget)
self.tabCode.setDocumentMode(False)
self.tabCode.setTabsClosable(False)
self.tabCode.setMovable(False)
self.tabCode.setObjectName(_fromUtf8("tabCode"))
self.tab = QtGui.QWidget()
self.tab.setObjectName(_fromUtf8("tab"))
self.ButtonCode = QtGui.QPushButton(self.tab)
self.ButtonCode.setGeometry(QtCore.QRect(10, 210, 111, 31))
icon = QtGui.QIcon()
icon.addPixmap(QtGui.QPixmap(_fromUtf8("Ico/icontexto-webdev-security-048x048.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off)
self.ButtonCode.setIcon(icon)
self.ButtonCode.setIconSize(QtCore.QSize(24, 24))
self.ButtonCode.setObjectName(_fromUtf8("ButtonCode"))
self.groupBox_3 = QtGui.QGroupBox(self.tab)
self.groupBox_3.setGeometry(QtCore.QRect(5, 12, 361, 189))
self.groupBox_3.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
self.groupBox_3.setObjectName(_fromUtf8("groupBox_3"))
self.groupBox_2 = QtGui.QGroupBox(self.groupBox_3)
self.groupBox_2.setGeometry(QtCore.QRect(0, 90, 361, 101))
self.groupBox_2.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
self.groupBox_2.setObjectName(_fromUtf8("groupBox_2"))
self.lineRCode1 = QtGui.QLineEdit(self.groupBox_2)
self.lineRCode1.setGeometry(QtCore.QRect(10, 20, 341, 61))
self.lineRCode1.setFocusPolicy(QtCore.Qt.ClickFocus)
self.lineRCode1.setReadOnly(False)
self.lineRCode1.setObjectName(_fromUtf8("lineRCode1"))
self.lineWCode1 = QtGui.QLineEdit(self.groupBox_3)
self.lineWCode1.setGeometry(QtCore.QRect(10, 20, 341, 61))
self.lineWCode1.setFocusPolicy(QtCore.Qt.ClickFocus)
self.lineWCode1.setReadOnly(False)
self.lineWCode1.setObjectName(_fromUtf8("lineWCode1"))
self.tabCode.addTab(self.tab, _fromUtf8(""))
self.tab_2 = QtGui.QWidget()
self.tab_2.setObjectName(_fromUtf8("tab_2"))
self.groupBox_4 = QtGui.QGroupBox(self.tab_2)
self.groupBox_4.setGeometry(QtCore.QRect(5, 12, 361, 189))
self.groupBox_4.setAlignment(QtCore.Qt.AlignJustify|QtCore.Qt.AlignVCenter)
self.groupBox_4.setObjectName(_fromUtf8("groupBox_4"))
self.groupBox_5 = QtGui.QGroupBox(self.groupBox_4)
self.groupBox_5.setEnabled(True)
self.groupBox_5.setGeometry(QtCore.QRect(0, 90, 361, 101))
self.groupBox_5.setMouseTracking(False)
self.groupBox_5.setAcceptDrops(False)
self.groupBox_5.setLayoutDirection(QtCore.Qt.LeftToRight)
self.groupBox_5.setAutoFillBackground(False)
self.groupBox_5.setLocale(QtCore.QLocale(QtCore.QLocale.English, QtCore.QLocale.UnitedStates))
self.groupBox_5.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter)
self.groupBox_5.setCheckable(False)
self.groupBox_5.setChecked(False)
self.groupBox_5.setObjectName(_fromUtf8("groupBox_5"))
self.lineRCode2 = QtGui.QLineEdit(self.groupBox_5)
self.lineRCode2.setGeometry(QtCore.QRect(10, 20, 341, 61))
self.lineRCode2.setFocusPolicy(QtCore.Qt.ClickFocus)
self.lineRCode2.setReadOnly(False)
self.lineRCode2.setObjectName(_fromUtf8("lineRCode2"))
self.lineWCode2 = QtGui.QLineEdit(self.groupBox_4)
self.lineWCode2.setGeometry(QtCore.QRect(10, 20, 341, 61))
self.lineWCode2.setFocusPolicy(QtCore.Qt.ClickFocus)
self.lineWCode2.setReadOnly(False)
self.lineWCode2.setObjectName(_fromUtf8("lineWCode2"))
self.ButtonUCode = QtGui.QPushButton(self.tab_2)
self.ButtonUCode.setGeometry(QtCore.QRect(10, 210, 111, 31))
icon1 = QtGui.QIcon()
icon1.addPixmap(QtGui.QPixmap(_fromUtf8("Ico/icontexto-webdev-search-048x048.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off)
self.ButtonUCode.setIcon(icon1)
self.ButtonUCode.setIconSize(QtCore.QSize(24, 24))
self.ButtonUCode.setObjectName(_fromUtf8("ButtonUCode"))
self.tabCode.addTab(self.tab_2, _fromUtf8(""))
self.gridLayout.addWidget(self.tabCode, 0, 0, 1, 1)
self.ButtonExit = QtGui.QPushButton(Dialog)
self.ButtonExit.setGeometry(QtCore.QRect(200, 290, 189, 51))
icon2 = QtGui.QIcon()
icon2.addPixmap(QtGui.QPixmap(_fromUtf8("Ico/icontexto-webdev-emoticon-sad-048x048.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off)
self.ButtonExit.setIcon(icon2)
self.ButtonExit.setIconSize(QtCore.QSize(48, 48))
self.ButtonExit.setObjectName(_fromUtf8("ButtonExit"))
self.ButtonInfo = QtGui.QPushButton(Dialog)
self.ButtonInfo.setGeometry(QtCore.QRect(10, 290, 189, 51))
icon3 = QtGui.QIcon()
icon3.addPixmap(QtGui.QPixmap(_fromUtf8("Ico/icontexto-webdev-info-048x048.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off)
self.ButtonInfo.setIcon(icon3)
self.ButtonInfo.setIconSize(QtCore.QSize(48, 48))
self.ButtonInfo.setObjectName(_fromUtf8("ButtonInfo"))
self.retranslateUi(Dialog)
self.tabCode.setCurrentIndex(0)
QtCore.QMetaObject.connectSlotsByName(Dialog)
Dialog.setTabOrder(self.ButtonCode, self.ButtonUCode)
Dialog.setTabOrder(self.ButtonUCode, self.ButtonInfo)
Dialog.setTabOrder(self.ButtonInfo, self.ButtonExit)
def retranslateUi(self, Dialog):
Dialog.setWindowTitle(QtGui.QApplication.translate("Dialog", "Dialog", None, QtGui.QApplication.UnicodeUTF8))
self.ButtonCode.setText(QtGui.QApplication.translate("Dialog", "Create Code", None, QtGui.QApplication.UnicodeUTF8))
self.groupBox_3.setTitle(QtGui.QApplication.translate("Dialog", "Write your Code", None, QtGui.QApplication.UnicodeUTF8))
self.groupBox_2.setTitle(QtGui.QApplication.translate("Dialog", "a words UnCode", None, QtGui.QApplication.UnicodeUTF8))
self.tabCode.setTabText(self.tabCode.indexOf(self.tab), QtGui.QApplication.translate("Dialog", "Cdoe", None, QtGui.QApplication.UnicodeUTF8))
self.groupBox_4.setTitle(QtGui.QApplication.translate("Dialog", "Write your words", None, QtGui.QApplication.UnicodeUTF8))
self.groupBox_5.setTitle(QtGui.QApplication.translate("Dialog", "a words UnCode", None, QtGui.QApplication.UnicodeUTF8))
self.ButtonUCode.setText(QtGui.QApplication.translate("Dialog", "Create UnCode", None, QtGui.QApplication.UnicodeUTF8))
self.tabCode.setTabText(self.tabCode.indexOf(self.tab_2), QtGui.QApplication.translate("Dialog", "UnCode", None, QtGui.QApplication.UnicodeUTF8))
self.ButtonExit.setText(QtGui.QApplication.translate("Dialog", "Exit", None, QtGui.QApplication.UnicodeUTF8))
self.ButtonInfo.setText(QtGui.QApplication.translate("Dialog", "Abuot", None, QtGui.QApplication.UnicodeUTF8))
if __name__ == "__main__":
import sys
app = QtGui.QApplication(sys.argv)
Dialog = QtGui.QDialog()
ui = Ui_Dialog()
ui.setupUi(Dialog)
Dialog.show()
sys.exit(app.exec_())الكود الثاني :
# -*- coding: utf-8 -*-
"""
Module implementing Dialog.
"""
from PyQt4.QtGui import QDialog
from PyQt4.QtCore import pyqtSignature
from PyQt4 import QtCore, QtGui
import binascii
from Ui_MyQt1 import Ui_Dialog
class Dialog(QDialog, Ui_Dialog):
"""
Class documentation goes here.
"""
def __init__(self, parent = None):
"""
Constructor
"""
QDialog.__init__(self, parent)
self.setupUi(self)
@pyqtSignature("")
def on_ButtonUCode_clicked(self):
CodeEnd = self.lineWCode2.text()
CodeEnd_Lvl1 = binascii.unhexlifyn(CodeEnd)
self.lineRCode2.setText(CodeEnd_Lvl1)
@pyqtSignature("")
def on_ButtonCode_clicked(self):
CodeEnd = self.lineWCode1.text()
CodeEnd_Lvl1 = binascii.hexlify(CodeEnd)
self.lineRCode1.setText(CodeEnd_Lvl1)
@pyqtSignature("")
def on_ButtonExit_clicked(self):
sys.exit(app.exec_())
@pyqtSignature("")
def on_ButtonInfo_clicked(self):
QtGui.QMessageBox.information(self,"About","\nProgramed By : ALmuhhnad\t\n")
if __name__ == "__main__":
import sys
app = QtGui.QApplication(sys.argv)
Dialog = Dialog()
Dialog.show()
sys.exit(app.exec_())قبل ان ابدا بطرح المشكلة سوف اشرح وضيفة البرنامج
وضيفة الكود هي تحويل النص إلى هكس والعكس صحيح
يعني لدي هذا النص :
ALmuhhnad
وبعد تحويله يخرج لي على الشكل التالي :
414c6d7568686e6164
حسنا من هنا سأبدا بطرح مشكلتي
مشكلتي كتالي :
الكود الأول والذي كان يعتمد على الـ Console كان سليم ولا توجد به مشااكل
ولكن بعد الكود الذي صممته وهو يعتمد على الواجهة الرسومية
إذا قمت بإدخال النص التالي :
ALmuhhnad
يخرج لي على الشكل التالي :
41004c006d007500680068006e0061006400
طيب هنا بدات المشكلة بالضبط وكما تلاحظون ان الناتج نفس الاناتج في الكود الذي يعتمد على الـ Console لكن هنا
بين كل رقمين يضاف 00
وبعد ان اخذت التشفير الناتج بالبرنامج ذو الواجهة الرسومية ووضعتة بالبرنامج الذي يعتمد على الـ Console
كي افك التشفير
ظهر لي الناتج التالي :
A L m u h h n a d
واستنتجت من ذالك ان المشكلة تكمن في الـ lineEdit في مكتبات PyQt4 لنه بعد ما ادخل النص المطلوب
يكون بين كل حرف وحرف فراغ غير ظاهر لكنه يظهر بعد ما تتم عمليه التشفير ...
واريد حلاً كي استطيع إخراج الناتج بدون وجود 00 بين كل رقمين كما في الكود :
41004c006d007500680068006e0061006400
منتظركم ...
والسلام عليكم ورحمة الله