تمت كتابة هذه الأداة لتعمل على نظام التشغيل ويندوز , وهي أداة بسيطة تمكننا من الحصول على رمز qr code للروابط التي نقوم بإدخالها
ويتم حفظ الناتج على شكل صورة بامتداد png مما يسهل تشغيلها في معظم المنصات والأجهزة.
الأداة مزودة بواجهة رسومية graphical user interface مبسطة تحتوي على مربع نصي text box لإدخال النص المراد إجراء عملية الحصول على qr code له , بالإضافة إلى زر لاستخراج ال qr code
وقد تم استخدام لغة البايثون لبرمجة الأداة.
ومن أجل الفائدة ؛ أحببت وضع الكود المصدري ليستفيد منه الجميع.
الملحقات الخارجية
- تنزيل المكتبة:
- افتح موجه الأوامر cmd واكتب الكود التالي
- Pip install wx python
نفذ الأمر بالضغط على مفتاح الدخول enter وانتظر حتى يتم تنزيل المكتبة وتثبيتها في بيئة بايثون الخاصة بك
- مكتبة pyqrcode لإنشاء كائنات qr code
- تنزيل المكتبة:
- افتح موجه الأوامر cmd واكتب الكود التالي
- Pip install pyqrcode
- نفذ الأمر بالضغط على مفتاح الدخول enter وانتظر حتى يتم تنزيل المكتبة وتثبيتها في بيئة بايثون الخاصة بك
- مكتبة pypng للتعامل مع الصور التي بصيغة png
- تنزيل المكتبة:
- افتح موجه الأوامر cmd واكتب الكود التالي
- Pip install pypng
- نفذ الأمر بالضغط على مفتاح الدخول enter وانتظر حتى يتم تنزيل المكتبة وتثبيتها في بيئة بايثون الخاصة بك
الكود:
# qr generator.py
# importing modules
import pyqrcode
import wx
import datetime
# define a function that generates the picture's default name based on the date and time
def file_name_create():
# create a date and time object
obj = datetime.datetime.now()
# extracting needed data from datetime object
year = str(obj.year)
mon = obj.month
day = obj.day
hour = str(obj.hour)
min = str(obj.minute)
sec = str(obj.second)
# formatting the month variable
if mon <10:
mon = "0"+str(mon)
else:
mon = str(mon)
#formatting the day variable
if day <10:
day = "0"+str(day)
else:
day = str(day)
# formatting and combining data to a new variable
name = "{}-{}-{}_{},{},{}".format(year,mon,day,hour,min,sec)
return name
# the main program's class
class main(wx.Frame):
def __init__(self):
# inicializing the app window
wx.Frame.__init__(self,parent=None,title="qr generator",name="qr generator",size=(350,300))
# centring the window
self.Centre()
# adding the controls containor
p = wx.Panel(self)
# creating the auto sizer for window controls which adjusts the location and size of the controls based on screen size
sizer = wx.BoxSizer(wx.HORIZONTAL)
# create controls
self.edit = wx.TextCtrl(p,-1,value="",name="الرابط:")
generate = wx.Button(p,-1,label="الحصول على qr code ")
# binding the generate button to the event handler. this process makes the program to call a function when the user clicks the button
generate.Bind(wx.EVT_BUTTON,self.onGenerate)
# add the controls above to the sizer
sizer.Add(self.edit,1,wx.EXPAND|wx.ALL,10)
sizer.Add(generate,1,wx.EXPAND|wx.ALL,10)
# setting the default sizer for the window
self.SetSizer(sizer)
# show the window
self.Show()
# creating the combined function with the generate button
def onGenerate(self,event):
# check the text box content
if self.edit.GetValue() == "":
# show a warning message box if the text box is empty
wx.MessageBox("يُرجى إدخال الرابط أولًا",self.GetTitle(),wx.ICON_WARNING,parent=self)
# refocusing on the text box
self.SetFocus(self.edit)
else:
# get the text box's data and create the qr code object
qr = pyqrcode.create(self.edit.GetValue())
# show the file save dialog
path = wx.SaveFileSelector(" ",".png","qr_"+file_name_create(),self)
# save the png file on the retreaved path from the dialog
qr.png(path,scale=8)
# impty the text box
self.edit.Value = ""
#running the program
app = wx.App()
main()
app.MainLoop()
لتحميل الأداة اضغط هنا
ولتحميل ال source code اضغط هنا
أطيب التحايا
السلام عليكم مشكور أخي الكريم
ردحذفلو ممكن تبعث لي رابط المحرر الخاص بلغة بايثون وكيفية تثبيته
وعليكم السلام ورحمة الله وبركاته
حذفأهلًا وسهلًا بك أخي الفاضل
بإمكانك استخدام أي محرر تشاء لكتابة أكواد البايثون
حتى لو عندك فيجوال ستوديو تقدر تستخدمه لبرمجة بايثون
أنا بعطيك رابط بيئة البايثون الي تثبته على جهازك وبعدين عاد أنت تقدر تستخدم المحرر الي تريد
https://www.python.org/ftp/python/3.7.4/python-3.7.4.exe
أشكرك أخي الكريم على المساعدة
ردحذفعندما حاولت تثبيت المكتبة الخاصة بتحويل ملفات البايثون إلى ملفات تنفيذية
.exe
وعندما كتبت الأمر الخاص بتثبيت المكتبة في الcmd أظهر لي
رسالة مفادها أنني أستخدم اصدار غير حديث من
pip
كيف أقوم بتحديث هذا الأخير
والرسالة هي كالتالي :
C:\Windows\System32>pip install pyinstaller
Collecting pyinstaller
Collecting pywin32-ctypes>=0.2.0 (from pyinstaller)
Using cached https://files.pythonhosted.org/packages/9e/4b/3ab2720f1fa4b4bc924ef1932b842edf10007e4547ea8157b0b9fc78599a/pywin32_ctypes-0.2.0-py2.py3-none-any.whl
Collecting altgraph (from pyinstaller)
Using cached https://files.pythonhosted.org/packages/ee/3d/bfca21174b162f6ce674953f1b7a640c1498357fa6184776029557c25399/altgraph-0.17-py2.py3-none-any.whl
Collecting pefile>=2017.8.1 (from pyinstaller)
Using cached https://files.pythonhosted.org/packages/36/58/acf7f35859d541985f0a6ea3c34baaefbfaee23642cf11e85fe36453ae77/pefile-2019.4.18.tar.gz
Requirement already satisfied: setuptools in c:\program files (x86)\python37-32\lib\site-packages (from pyinstaller) (40.8.0)
Collecting future (from pefile>=2017.8.1->pyinstaller)
Using cached https://files.pythonhosted.org/packages/45/0b/38b06fd9b92dc2b68d58b75f900e97884c45bedd2ff83203d933cf5851c9/future-0.18.2.tar.gz
Installing collected packages: pywin32-ctypes, altgraph, future, pefile, pyinstaller
Could not install packages due to an EnvironmentError: [WinError 5] Access is denied: 'c:\\program files (x86)\\python37-32\\Lib\\site-packages\\pywin32_ctypes-0.2.0.dist-info'
Consider using the `--user` option or check the permissions.
You are using pip version 19.0.3, however version 20.0.2 is available.
You should consider upgrading via the 'python -m pip install --upgrade pip' command.
C:\Windows\System32>
أهلًا بك أخي الفاضل.
حذفليس من الضرورة أن تكون المشكلة بسبب أن إصدار pip قديم
لكن على أي حال طريقة تحديث pip تكون كالتالي
1. اكتب في قائمة ابدأ كلمة cmd واضغط على الأيقونة بزر الفأرة الأيمن
2. اختر تشغيل كمسؤول run as administrator
3. اكتب الكود التالي
pip install --upgrade pip
4. نفذ الكود بالضغط على زر الإدخال enter
إن شاء الله تنحل معك المشكلة بهذه الطريقة
ولو ما نفع جرب تثبت مكتبة pyinstaller من بكتابة الكود في ال cmd المشغل كمسؤول
للأسف أخي الكريم
ردحذفهذه هي الرسالة التي ظهرت لي عندما كتبت الأمر الخاص بتحديث Pip
مع العلم بأنني قمت بتحديث البايثون من الاصدار 3.7.4 وهو لحضرتك وضعته لي
إلى الاصدار الأخير 3.8.2
ولم يشتغل
Microsoft Windows [Version 10.0.18363.720]
(c) 2019 Microsoft Corporation. All rights reserved.
C:\Windows\System32>pip install --upgrade pip
Collecting pip
Downloading https://files.pythonhosted.org/packages/54/0c/d01aa759fdc501a58f431eb594a17495f15b88da142ce14b5845662c13f3/pip-20.0.2-py2.py3-none-any.whl (1.4MB)
|████████████████████████████████| 1.4MB 285kB/s
Installing collected packages: pip
Found existing installation: pip 19.2.3
Uninstalling pip-19.2.3:
ERROR: Could not install packages due to an EnvironmentError: [WinError 5] Access is denied: 'c:\\program files (x86)\\python38-32\\lib\\site-packages\\pip-19.2.3.dist-info\\entry_points.txt'
Consider using the `--user` option or check the permissions.
WARNING: You are using pip version 19.2.3, however version 20.0.2 is available.
You should consider upgrading via the 'python -m pip install --upgrade pip' command.
C:\Windows\System32>
أخي هل شغلت ال cmd بصلاحيات المسؤول ؟
حذفولقد قمت بمحاولة لتحويل ملف بصيغة py
ردحذفبعض أن وضعت فيه كود بسيط
وهو
print "Hello Guys"?
وكانت هذه هي النتيجة مع الأسف
C:\Windows\system32>pyinstaller "C:\Users\GoMan\Documents\test.py"
115 INFO: PyInstaller: 3.6
115 INFO: Python: 3.8.2
115 INFO: Platform: Windows-10-10.0.18362-SP0
115 INFO: wrote C:\Windows\system32\test.spec
115 INFO: UPX is not available.
115 INFO: Extending PYTHONPATH with paths
['C:\\Users\\GoMan\\Documents', 'C:\\Windows\\system32']
115 INFO: checking Analysis
115 INFO: Building Analysis because Analysis-00.toc is non existent
115 INFO: Initializing module dependency graph...
130 INFO: Caching module graph hooks...
146 INFO: Analyzing base_library.zip ...
4631 INFO: Processing pre-find module path hook distutils
4637 INFO: distutils: retargeting to non-venv dir 'c:\\program files (x86)\\python38-32\\lib'
10697 INFO: Caching module dependency graph...
10982 INFO: running Analysis Analysis-00.toc
10987 INFO: Adding Microsoft.Windows.Common-Controls to dependent assemblies of final executable
required by c:\program files (x86)\python38-32\python.exe
11142 INFO: Analyzing C:\Users\GoMan\Documents\test.py
Syntax error in C:\Users\GoMan\Documents\test.py
File "C:\Users\GoMan\Documents\test.py", line 1
print("Hello Guys")?
^
SyntaxError: invalid syntax
C:\Windows\system32>
نعم لقد شغلته كمسؤول
ردحذف