Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. QtWebEngine
  4. Download the files in qwebengineview (PyQt)
Forum Updated to NodeBB v4.3 + New Features

Download the files in qwebengineview (PyQt)

Scheduled Pinned Locked Moved Unsolved QtWebEngine
2 Posts 2 Posters 1.2k Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • C Offline
    C Offline
    Coder91
    wrote on last edited by Coder91
    #1

    I have a web browser...

    In this web browser, when I click on the download links in the sites, no download takes place...

    what i want is:
    I want when I click on the download links
    download happens

    It is better if it has these features ->

    1.By clicking on the download links in the sites, the download manager will run in a separate window

    2.The download manager has a progress bar

    3.Display the size of the file to be downloaded

    4.at any time display the download speed

    5.at any time display the downloaded size of the file

    6.at any time display the remaining size of the file

    from PyQt5.QtCore import *
    from PyQt5.QtWidgets import *
    from PyQt5.QtGui import *
    from PyQt5.QtWebEngineWidgets import *
    from PyQt5.QtPrintSupport import *
    import os
    import sys
    
    # creating main window class
    class MainWindow(QMainWindow):
    
     
        # constructor
        def __init__(self, *args, **kwargs):
            super(MainWindow, self).__init__(*args, **kwargs)
     
     
            # creating a QWebEngineView
            self.browser = QWebEngineView()
     
            # setting default browser url as google
            self.browser.setUrl(QUrl("http://google.com"))
     
            # adding action when url get changed
            self.browser.urlChanged.connect(self.update_urlbar)
     
            # adding action when loading is finished
            self.browser.loadFinished.connect(self.update_title)
     
            # set this browser as central widget or main window
            self.setCentralWidget(self.browser)
     
            # creating a status bar object
            self.status = QStatusBar()
     
            # adding status bar to the main window
            self.setStatusBar(self.status)
     
            # creating QToolBar for navigation
            navtb = QToolBar("Navigation")
     
            # adding this tool bar tot he main window
            self.addToolBar(navtb)
     
            # adding actions to the tool bar
            # creating a action for back
            back_btn = QAction("Back", self)
     
            # setting status tip
            back_btn.setStatusTip("Back to previous page")
     
            # adding action to the back button
            # making browser go back
            back_btn.triggered.connect(self.browser.back)
     
            # adding this action to tool bar
            navtb.addAction(back_btn)
     
            # similarly for forward action
            next_btn = QAction("Forward", self)
            next_btn.setStatusTip("Forward to next page")
     
            # adding action to the next button
            # making browser go forward
            next_btn.triggered.connect(self.browser.forward)
            navtb.addAction(next_btn)
     
            # similarly for reload action
            reload_btn = QAction("Reload", self)
            reload_btn.setStatusTip("Reload page")
     
            # adding action to the reload button
            # making browser to reload
            reload_btn.triggered.connect(self.browser.reload)
            navtb.addAction(reload_btn)
     
            # similarly for home action
            home_btn = QAction("Home", self)
            home_btn.setStatusTip("Go home")
            home_btn.triggered.connect(self.navigate_home)
            navtb.addAction(home_btn)
     
            # adding a separator in the tool bar
            navtb.addSeparator()
     
            # creating a line edit for the url
            self.urlbar = QLineEdit()
     
            # adding action when return key is pressed
            self.urlbar.returnPressed.connect(self.navigate_to_url)
     
            # adding this to the tool bar
            navtb.addWidget(self.urlbar)
     
            # adding stop action to the tool bar
            stop_btn = QAction("Stop", self)
            stop_btn.setStatusTip("Stop loading current page")
     
            # adding action to the stop button
            # making browser to stop
            stop_btn.triggered.connect(self.browser.stop)
            navtb.addAction(stop_btn)
     
            # showing all the components
            self.show()
     
     
        # method for updating the title of the window
        def update_title(self):
            title = self.browser.page().title()
            self.setWindowTitle("% s - Geek Browser" % title)
     
     
        # method called by the home action
        def navigate_home(self):
     
            # open the google
            self.browser.setUrl(QUrl("http://www.google.com"))
     
        # method called by the line edit when return key is pressed
        def navigate_to_url(self):
     
            # getting url and converting it to QUrl object
            q = QUrl(self.urlbar.text())
     
            # if url is scheme is blank
            if q.scheme() == "":
                # set url scheme to html
                q.setScheme("http")
     
            # set the url to the browser
            self.browser.setUrl(q)
     
        # method for updating url
        # this method is called by the QWebEngineView object
        def update_urlbar(self, q):
     
            # setting text to the url bar
            self.urlbar.setText(q.toString())
     
            # setting cursor position of the url bar
            self.urlbar.setCursorPosition(0)
     
     
    
    # creating a pyQt5 application
    app = QApplication(sys.argv)
     
    # setting name to the application
    app.setApplicationName("Geek Browser")
     
    # creating a main window object
    window = MainWindow()
     
    # loop
    app.exec_()
    
    M 1 Reply Last reply
    0
    • C Coder91

      I have a web browser...

      In this web browser, when I click on the download links in the sites, no download takes place...

      what i want is:
      I want when I click on the download links
      download happens

      It is better if it has these features ->

      1.By clicking on the download links in the sites, the download manager will run in a separate window

      2.The download manager has a progress bar

      3.Display the size of the file to be downloaded

      4.at any time display the download speed

      5.at any time display the downloaded size of the file

      6.at any time display the remaining size of the file

      from PyQt5.QtCore import *
      from PyQt5.QtWidgets import *
      from PyQt5.QtGui import *
      from PyQt5.QtWebEngineWidgets import *
      from PyQt5.QtPrintSupport import *
      import os
      import sys
      
      # creating main window class
      class MainWindow(QMainWindow):
      
       
          # constructor
          def __init__(self, *args, **kwargs):
              super(MainWindow, self).__init__(*args, **kwargs)
       
       
              # creating a QWebEngineView
              self.browser = QWebEngineView()
       
              # setting default browser url as google
              self.browser.setUrl(QUrl("http://google.com"))
       
              # adding action when url get changed
              self.browser.urlChanged.connect(self.update_urlbar)
       
              # adding action when loading is finished
              self.browser.loadFinished.connect(self.update_title)
       
              # set this browser as central widget or main window
              self.setCentralWidget(self.browser)
       
              # creating a status bar object
              self.status = QStatusBar()
       
              # adding status bar to the main window
              self.setStatusBar(self.status)
       
              # creating QToolBar for navigation
              navtb = QToolBar("Navigation")
       
              # adding this tool bar tot he main window
              self.addToolBar(navtb)
       
              # adding actions to the tool bar
              # creating a action for back
              back_btn = QAction("Back", self)
       
              # setting status tip
              back_btn.setStatusTip("Back to previous page")
       
              # adding action to the back button
              # making browser go back
              back_btn.triggered.connect(self.browser.back)
       
              # adding this action to tool bar
              navtb.addAction(back_btn)
       
              # similarly for forward action
              next_btn = QAction("Forward", self)
              next_btn.setStatusTip("Forward to next page")
       
              # adding action to the next button
              # making browser go forward
              next_btn.triggered.connect(self.browser.forward)
              navtb.addAction(next_btn)
       
              # similarly for reload action
              reload_btn = QAction("Reload", self)
              reload_btn.setStatusTip("Reload page")
       
              # adding action to the reload button
              # making browser to reload
              reload_btn.triggered.connect(self.browser.reload)
              navtb.addAction(reload_btn)
       
              # similarly for home action
              home_btn = QAction("Home", self)
              home_btn.setStatusTip("Go home")
              home_btn.triggered.connect(self.navigate_home)
              navtb.addAction(home_btn)
       
              # adding a separator in the tool bar
              navtb.addSeparator()
       
              # creating a line edit for the url
              self.urlbar = QLineEdit()
       
              # adding action when return key is pressed
              self.urlbar.returnPressed.connect(self.navigate_to_url)
       
              # adding this to the tool bar
              navtb.addWidget(self.urlbar)
       
              # adding stop action to the tool bar
              stop_btn = QAction("Stop", self)
              stop_btn.setStatusTip("Stop loading current page")
       
              # adding action to the stop button
              # making browser to stop
              stop_btn.triggered.connect(self.browser.stop)
              navtb.addAction(stop_btn)
       
              # showing all the components
              self.show()
       
       
          # method for updating the title of the window
          def update_title(self):
              title = self.browser.page().title()
              self.setWindowTitle("% s - Geek Browser" % title)
       
       
          # method called by the home action
          def navigate_home(self):
       
              # open the google
              self.browser.setUrl(QUrl("http://www.google.com"))
       
          # method called by the line edit when return key is pressed
          def navigate_to_url(self):
       
              # getting url and converting it to QUrl object
              q = QUrl(self.urlbar.text())
       
              # if url is scheme is blank
              if q.scheme() == "":
                  # set url scheme to html
                  q.setScheme("http")
       
              # set the url to the browser
              self.browser.setUrl(q)
       
          # method for updating url
          # this method is called by the QWebEngineView object
          def update_urlbar(self, q):
       
              # setting text to the url bar
              self.urlbar.setText(q.toString())
       
              # setting cursor position of the url bar
              self.urlbar.setCursorPosition(0)
       
       
      
      # creating a pyQt5 application
      app = QApplication(sys.argv)
       
      # setting name to the application
      app.setApplicationName("Geek Browser")
       
      # creating a main window object
      window = MainWindow()
       
      # loop
      app.exec_()
      
      M Offline
      M Offline
      mpergand
      wrote on last edited by
      #2

      @Coder91
      Hi,

      Look at signals of QWebEngineDownloadItem
      and Managing Downloads at the end of this page :
      Simple Browser

      1 Reply Last reply
      2

      • Login

      • Login or register to search.
      • First post
        Last post
      0
      • Categories
      • Recent
      • Tags
      • Popular
      • Users
      • Groups
      • Search
      • Get Qt Extensions
      • Unsolved