تمت كتابة هذه الأداة لتعمل على نظام التشغيل ويندوز , وهي أداة بسيطة تمكننا من الحصول على رمز qr code للروابط التي نقوم بإدخالها
ويتم حفظ الناتج على شكل صورة بامتداد png مما يسهل تشغيلها في معظم المنصات والأجهزة.
الأداة مزودة بواجهة رسومية graphical user interface مبسطة تحتوي على مربع نصي text box لإدخال النص المراد إجراء عملية الحصول على qr code له , بالإضافة إلى زر لاستخراج ال qr code
وقد تم استخدام لغة البايثون لبرمجة الأداة.
ومن أجل الفائدة ؛ أحببت وضع الكود المصدري ليستفيد منه الجميع.

الملحقات الخارجية

-        مكتبة wx لإنشاء واجهات المستخدم

-        تنزيل المكتبة:
-        افتح موجه الأوامر 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 اضغط هنا

أطيب التحايا