app.py 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. #!/usr/bin/python
  2. # -*- coding: utf-8 -*-
  3. # @Author: Bachir Soussi Chiadmi <bach>
  4. # @Date: 23-05-2017
  5. # @Email: bachir@figureslibres.io
  6. # @Last modified by: bach
  7. # @Last modified time: 21-04-2017
  8. # @License: GPL-V3
  9. import sys
  10. from socket import socket
  11. import socketserver
  12. import http.server
  13. import threading
  14. from PyQt5.QtCore import QFile, QIODevice, Qt, QTextStream, QUrl
  15. from PyQt5.QtWidgets import (QAction, QApplication, QLineEdit, QMainWindow, QSizePolicy, QStyle, QTextEdit)
  16. from PyQt5.QtNetwork import QNetworkProxyFactory, QNetworkRequest
  17. from PyQt5.QtWebKitWidgets import QWebPage, QWebView
  18. # find free port
  19. sock = socket()
  20. sock.bind(('', 0))
  21. PORT = sock.getsockname()[1]
  22. sock.close()
  23. # PORT = 8000
  24. # web werver
  25. # Handler = http.server.SimpleHTTPRequestHandler
  26. # httpd = socketserver.TCPServer(("", PORT), Handler)
  27. # httpd.serve_forever()
  28. httpd = http.server.HTTPServer(('', PORT), http.server.SimpleHTTPRequestHandler)
  29. thread = threading.Thread(target=httpd.serve_forever)
  30. thread.start()
  31. print("serving at port", PORT)
  32. # QT webkit
  33. app = QApplication(sys.argv)
  34. browser = QWebView()
  35. # browser.settings().setAttribute(QWebSettings.PluginsEnabled, True)
  36. browser.load(QUrl('http://localhost:'+str(PORT)))
  37. browser.show()
  38. sys.exit(app.exec_())