اذهب إلى المحتوى

السؤال

نشر (معدل)

أريد أن أقوم بإنشاء متصفح ويب، ولا أتقن سوى لغة البايثون فهل يمكنني إنشاء متصفح باستخدام هذه اللغة ؟ وكيف أستطيع فعل ذلك ؟

تم التعديل في بواسطة MaxReve

Recommended Posts

  • 0
نشر

تعتبر لغة البايثون من اللغات القوية والتي ستمكنك من برمجة أي برنامج تريده تقريبا، فيمكنك برمجة متصفح باستخدام مكتبة PyQt4 التي تستخدم Webkit كمحرك تصميم، فأبسط مثال لمتصفح بهذه المكتبة يتكون من 13 سطرا برمجيا:

 

import sys

from PyQt4.QtWebKit import QWebView
from PyQt4.QtGui import QApplication
from PyQt4.QtCore import QUrl

app = QApplication(sys.argv)

browser = QWebView()
browser.load(QUrl(sys.argv[1]))
browser.show()

app.exec_()

 

قم بتمرير صفحة الويب التي تريد عرضها عن طريق معامل عند تشغيل الملف.

وإذا أردت تطوير المتصفح وإضافة شريط العنوان (address bar) حتى تتمكن من كتابة عناوين المواقع مباشرة من المتصفح، يمكنك فعل ذلك بسهولة أيضا :

 

import sys

from PyQt4.QtGui import QApplication
from PyQt4.QtCore import QUrl
from PyQt4.QtWebKit import QWebView
from PyQt4.QtGui import QGridLayout, QLineEdit, QWidget


class UrlInput(QLineEdit):
    def __init__(self, browser):
        super(UrlInput, self).__init__()
        self.browser = browser
        # add event listener on "enter" pressed
        self.returnPressed.connect(self._return_pressed)

    def _return_pressed(self):
        url = QUrl(self.text())
        # load url into browser frame
        browser.load(url)

if __name__ == "__main__":
    app = QApplication(sys.argv)

    # create grid layout
    grid = QGridLayout()
    browser = QWebView()
    url_input = UrlInput(browser)
    # url_input at row 1 column 0 of our grid
    grid.addWidget(url_input, 1, 0)
    # browser frame at row 2 column 0 of our grid
    grid.addWidget(browser, 2, 0)

    # main app window
    main_frame = QWidget()
    main_frame.setLayout(grid)
    main_frame.show()

    # close app when user closes window
    sys.exit(app.exec_())

 

للمزيد من الدروس حول إنشاء متصفح ويب قُم بزيارة المصدر.

المصدر

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...