Ошибка PyQt5: TypeError: аргументы не соответствуют ни одному перегруженному вызову

Моя цель — создать веб-браузер на PyQt5, и это мой код:

import sys
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
from PyQt5.QtWebEngineWidgets import *


class MainWindow(QMainWindow):
    def __init__(self):
        super(MainWindow, self).__init__()
        self.browser = QWebEngineView()
        self.browser.setUrl(QUrl('https://www.google.com'))
        self.setCentralWidget(self.browser)
        self.showMaximized()
        navbar = QToolBar()
        self.addToolBar(navbar)

        back_btn = QAction('<=', self)
        back_btn.triggered.connect(self.browser.back)
        navbar.addAction(back_btn)

        forward_btn = QAction('=>', self)
        forward_btn.triggered.connect(self.browser.forward)
        navbar.addAction(forward_btn)
        reload_btn = QAction('reload', self)
        reload_btn.triggered.connect(self.browser.reload)
        navbar.addAction(reload_btn)

        self.url_bar = QLineEdit(self)
        navbar.addAction(self.url_bar)


APP = QApplication(sys.argv)
QApplication.setApplicationName('Kahari Go Web')
window = MainWindow()
APP.exec_()

но когда я запускаю свой код, я всегда получаю сообщение об ошибке:

Traceback (most recent call last):
  File "D:\kahari Go Web\main.py", line 34, in <module>
    window = MainWindow()
  File "D:\kahari Go Web\main.py", line 29, in __init__
    navbar.addAction(self.url_bar)
TypeError: arguments did not match any overloaded call:
  addAction(self, QAction): argument 1 has unexpected type 'QLineEdit'
  addAction(self, str): argument 1 has unexpected type 'QLineEdit'
  addAction(self, QIcon, str): argument 1 has unexpected type 'QLineEdit'
  addAction(self, str, PYQT_SLOT): argument 1 has unexpected type 'QLineEdit'
  addAction(self, QIcon, str, PYQT_SLOT): argument 1 has unexpected type 'QLineEdit'

единственное, что я пытаюсь сделать, это просмотреть все статьи, но я не могу этого понять, поэтому я запускаю его в repl.it, но repl.it не может импортировать PyQt5. Я использую 32-разрядную версию Python 3.9 в Windows 10.


person Jeenath    schedule 05.03.2021    source источник


Ответы (1)


addAction() используется для добавления QAction, а не виджета, если вы хотите добавить QLineEdit, вы должны использовать addWidget():

navbar.addWidget(self.url_bar)
person eyllanesc    schedule 05.03.2021
comment
Большое спасибо eyllanesc!???????? - person Jeenath; 06.03.2021