0

I am attempting to customize QMainWindow in my python file browser.py. I am going to try setting things like width = 300px or maybe setting colors like background.color = red later in a CSS file. I didn't know how to customize QMainWindow, so I looked around and found this page that said that I should "do it with the object that you set as central widget" but I don't really know what that means. This is my code:

import json
import sys
import settings
from settings import *
import profile
from profile import *
from PyQt5.QtCore import *
from PyQt5.QtGui import QIcon
from PyQt5.QtWidgets import *
from PyQt5.QtWebEngineWidgets import *
from PyQt5.QtPrintSupport import *
import tkinter as tk
from tkinter import *
from tkinter.ttk import *
import os

class MainWindow(QMainWindow):
    def __init__(self, *args, **kwargs):
        super(MainWindow, self).__init__(*args, **kwargs)
        self.browser = QWebEngineView()
        self.browser.setUrl(QUrl('https://google.com'))
        self.setCentralWidget(self.browser)
        self.showMaximized()

        navbar  = QToolBar()
        self.addToolBar(navbar)

        backbtn = QAction(QIcon('back.png'),'back', self)
        backbtn.triggered.connect(self.browser.back)
        navbar.addAction(backbtn)

        forwardbtn = QAction(QIcon('forward.png'),'Forward', self)
        forwardbtn.triggered.connect(self.browser.forward)
        navbar.addAction(forwardbtn)

        reloadbtn = QAction(QIcon('reload.png'),'Reload', self)
        reloadbtn.triggered.connect(self.browser.reload)
        navbar.addAction(reloadbtn)

        homebtn = QAction(QIcon('home.png'),'home', self)
        homebtn.triggered.connect(self.navigate_home)
        navbar.addAction(homebtn)

        self.urlBar = QLineEdit()
        self.urlBar.returnPressed.connect(self.navigateToUrl)
        navbar.addWidget(self.urlBar)

        self.browser.urlChanged.connect(self.update_url)

    def navigate_home(self):
        self.browser.setUrl(QUrl('https://google.com'))

    def navigateToUrl(self):
        url = self.urlBar.text()
        self.browser.setUrl(QUrl(url))

    def update_url(self, q):
        self.urlBar.setText(q.toString())

# Load config
config = json.load(open('themes.json', 'r'))

# Setting Up application name, app variable, etc.
app = QApplication(sys.argv)
#QApplication.setApplicationName("Optico Iodine")
QApplication.setApplicationName(config.applicationName)
window  = MainWindow()
app.exec_()

So how would I customize QMainWindow?

E_net4
  • 27,810
  • 13
  • 101
  • 139

0 Answers0