【问题标题】:PyQt5 error: TypeError: arguments did not match any overloaded callPyQt5 错误:TypeError:参数与任何重载调用都不匹配
【发布时间】:2021-03-05 07:49:24
【问题描述】:

我的目标是在 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。 我在 Windows 10 中使用 python 3.9 32 位。

【问题讨论】:

    标签: python python-3.x pyqt5 python-3.9


    【解决方案1】:

    addAction()用于添加QAction而不是小部件,如果要添加QLineEdit则必须使用addWidget()

    navbar.addWidget(self.url_bar)
    

    【讨论】:

    • 非常感谢eyllanesc!??
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-04-26
    • 1970-01-01
    • 1970-01-01
    • 2016-02-15
    • 1970-01-01
    • 2016-11-14
    • 2017-06-08
    相关资源
    最近更新 更多