Upload files to "/"
This commit is contained in:
commit
5d2dcb595c
7 changed files with 1101 additions and 0 deletions
234
old/main.py
Normal file
234
old/main.py
Normal file
|
|
@ -0,0 +1,234 @@
|
|||
from PyQt5.QtCore import *
|
||||
from PyQt5.QtWidgets import *
|
||||
from PyQt5.QtGui import *
|
||||
from PyQt5.QtWebEngineWidgets import *
|
||||
from PyQt5.QtPrintSupport import *
|
||||
import os
|
||||
import sys
|
||||
|
||||
# main window
|
||||
class MainWindow(QMainWindow):
|
||||
|
||||
# constructor
|
||||
def __init__(self, *args, **kwargs):
|
||||
super(MainWindow, self).__init__(*args, **kwargs)
|
||||
|
||||
# creating a tab widget
|
||||
self.tabs = QTabWidget()
|
||||
|
||||
# making document mode true
|
||||
self.tabs.setDocumentMode(True)
|
||||
|
||||
# adding action when double clicked
|
||||
self.tabs.tabBarDoubleClicked.connect(self.tab_open_doubleclick)
|
||||
|
||||
# adding action when tab is changed
|
||||
self.tabs.currentChanged.connect(self.current_tab_changed)
|
||||
|
||||
# making tabs closeable
|
||||
self.tabs.setTabsClosable(True)
|
||||
|
||||
# adding action when tab close is requested
|
||||
self.tabs.tabCloseRequested.connect(self.close_current_tab)
|
||||
|
||||
# making tabs as central widget
|
||||
self.setCentralWidget(self.tabs)
|
||||
|
||||
# creating a status bar
|
||||
self.status = QStatusBar()
|
||||
|
||||
# setting status bar to the main window
|
||||
self.setStatusBar(self.status)
|
||||
|
||||
# creating a tool bar for navigation
|
||||
navtb = QToolBar("Navigation")
|
||||
|
||||
# adding tool bar tot he main window
|
||||
self.addToolBar(navtb)
|
||||
|
||||
# creating back action
|
||||
back_btn = QAction("Back", self)
|
||||
|
||||
# setting status tip
|
||||
back_btn.setStatusTip("Back to previous page")
|
||||
|
||||
# adding action to back button
|
||||
# making current tab to go back
|
||||
back_btn.triggered.connect(lambda: self.tabs.currentWidget().back())
|
||||
|
||||
# adding this to the navigation tool bar
|
||||
navtb.addAction(back_btn)
|
||||
|
||||
# similarly adding next button
|
||||
next_btn = QAction("Forward", self)
|
||||
next_btn.setStatusTip("Forward to next page")
|
||||
next_btn.triggered.connect(lambda: self.tabs.currentWidget().forward())
|
||||
navtb.addAction(next_btn)
|
||||
|
||||
# similarly adding reload button
|
||||
reload_btn = QAction("Reload", self)
|
||||
reload_btn.setStatusTip("Reload page")
|
||||
reload_btn.triggered.connect(lambda: self.tabs.currentWidget().reload())
|
||||
navtb.addAction(reload_btn)
|
||||
|
||||
# creating home action
|
||||
home_btn = QAction("Home", self)
|
||||
home_btn.setStatusTip("Go home")
|
||||
|
||||
# adding action to home button
|
||||
home_btn.triggered.connect(self.navigate_home)
|
||||
navtb.addAction(home_btn)
|
||||
|
||||
# adding a separator
|
||||
navtb.addSeparator()
|
||||
|
||||
# creating a line edit widget for URL
|
||||
self.urlbar = QLineEdit()
|
||||
|
||||
# adding action to line edit when return key is pressed
|
||||
self.urlbar.returnPressed.connect(self.navigate_to_url)
|
||||
|
||||
# adding line edit to tool bar
|
||||
navtb.addWidget(self.urlbar)
|
||||
|
||||
# similarly adding stop action
|
||||
stop_btn = QAction("Stop", self)
|
||||
stop_btn.setStatusTip("Stop loading current page")
|
||||
stop_btn.triggered.connect(lambda: self.tabs.currentWidget().stop())
|
||||
navtb.addAction(stop_btn)
|
||||
|
||||
# creating first tab
|
||||
self.add_new_tab(QUrl('http://www.google.com'), 'Homepage')
|
||||
|
||||
# enabling web view extensions
|
||||
settings = QWebEngineSettings.globalSettings()
|
||||
settings.setAttribute(QWebEngineSettings.PluginsEnabled, True)
|
||||
|
||||
# showing all the components
|
||||
self.show()
|
||||
|
||||
# setting window title
|
||||
self.setWindowTitle("Geek PyQt5")
|
||||
|
||||
# method for adding new tab
|
||||
def add_new_tab(self, qurl=None, label="Blank"):
|
||||
|
||||
# if url is blank
|
||||
if qurl is None:
|
||||
# creating a google url
|
||||
qurl = QUrl('http://www.google.com')
|
||||
|
||||
# creating a QWebEngineView object with web profile
|
||||
profile = QWebEngineProfile.defaultProfile()
|
||||
browser = QWebEngineView(profile=profile)
|
||||
|
||||
# setting url to browser
|
||||
browser.setUrl(qurl)
|
||||
|
||||
# enable fullscreen support for YouTube videos
|
||||
settings = browser.settings()
|
||||
settings.setAttribute(QWebEngineSettings.FullScreenSupportEnabled, True)
|
||||
|
||||
# setting tab index
|
||||
i = self.tabs.addTab(browser, label)
|
||||
self.tabs.setCurrentIndex(i)
|
||||
|
||||
# adding action to the browser when url is changed
|
||||
# update the url
|
||||
browser.urlChanged.connect(lambda qurl, browser=browser: self.update_urlbar(qurl, browser))
|
||||
|
||||
# adding action to the browser when loading is finished
|
||||
# set the tab title
|
||||
browser.loadFinished.connect(lambda _, i=i, browser=browser: self.tabs.setTabText(i, browser.page().title()))
|
||||
|
||||
# when double clicked is pressed on tabs
|
||||
def tab_open_doubleclick(self, i):
|
||||
|
||||
# checking index i.e
|
||||
# No tab under the click
|
||||
if i == -1:
|
||||
# creating a new tab
|
||||
self.add_new_tab()
|
||||
|
||||
# when tab is changed
|
||||
def current_tab_changed(self, i):
|
||||
|
||||
# get the curl
|
||||
qurl = self.tabs.currentWidget().url()
|
||||
|
||||
# update the url
|
||||
self.update_urlbar(qurl, self.tabs.currentWidget())
|
||||
|
||||
# update the title
|
||||
self.update_title(self.tabs.currentWidget())
|
||||
|
||||
# when tab is closed
|
||||
def close_current_tab(self, i):
|
||||
|
||||
# if there is only one tab
|
||||
if self.tabs.count() < 2:
|
||||
# do nothing
|
||||
return
|
||||
|
||||
# else remove the tab
|
||||
self.tabs.removeTab(i)
|
||||
|
||||
# method for updating the title
|
||||
def update_title(self, browser):
|
||||
|
||||
# if signal is not from the current tab
|
||||
if browser != self.tabs.currentWidget():
|
||||
# do nothing
|
||||
return
|
||||
|
||||
# get the page title
|
||||
title = self.tabs.currentWidget().page().title()
|
||||
|
||||
# set the window title
|
||||
self.setWindowTitle("% s - Geek PyQt5" % title)
|
||||
|
||||
# action to go to home
|
||||
def navigate_home(self):
|
||||
|
||||
# go to google
|
||||
self.tabs.currentWidget().setUrl(QUrl("http://www.google.com"))
|
||||
|
||||
# method for navigate to url
|
||||
def navigate_to_url(self):
|
||||
|
||||
# get the line edit text
|
||||
# convert it to QUrl object
|
||||
q = QUrl(self.urlbar.text())
|
||||
|
||||
# if scheme is blank
|
||||
if q.scheme() == "":
|
||||
# set scheme
|
||||
q.setScheme("http")
|
||||
|
||||
# set the url
|
||||
self.tabs.currentWidget().setUrl(q)
|
||||
|
||||
# method to update the url
|
||||
def update_urlbar(self, q, browser=None):
|
||||
|
||||
# If this signal is not from the current tab, ignore
|
||||
if browser != self.tabs.currentWidget():
|
||||
return
|
||||
|
||||
# set text to the url bar
|
||||
self.urlbar.setText(q.toString())
|
||||
|
||||
# set cursor position
|
||||
self.urlbar.setCursorPosition(0)
|
||||
|
||||
# creating a PyQt5 application
|
||||
app = QApplication(sys.argv)
|
||||
|
||||
# setting name to the application
|
||||
app.setApplicationName("Geek PyQt5")
|
||||
|
||||
# creating MainWindow object
|
||||
window = MainWindow()
|
||||
|
||||
# loop
|
||||
app.exec_()
|
||||
Loading…
Add table
Add a link
Reference in a new issue