未绑定方法的第一个参数必须具有“QWidget”类型

2024-09-30 06:22:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用PyQt5和python3.7构建一个GUI应用程序,我决定将代码分成不同的模块。当我试图导入一个创建自定义小部件实例的函数时,一个与“sis”相关的错误。我读到的是,SIS是一种封装C/C++代码的方式,它可以在Python中运行。但我该怎么做呢? 以下是运行应用程序的代码:

import sys
from PyQt5 import QtCore, QtWidgets
from PyQt5.QtWidgets import QApplication, QMainWindow

class MainWindow(QMainWindow):

    def __init__(self):
        super(MainWindow, self).__init__()
        self.setGeometry(10,35,1500,800)
        self.setWindowTitle("Cotizador TuCheff")
        #self.setWindowIcon(QtGui.QIcon(''))
        mainWindow(self)


    def mainWindow(self):
        from PyQt5 import QtCore, QtGui, QtWidgets
        from Pages.Quote import quote


        barMenu = QtWidgets.QTabWidget(self)

        tab1 = QtWidgets.QWidget()

        quoteLayout = QtWidgets.QVBoxLayout()
        quoteGenerator = quote.makeQuoteWindow()
        quoteLayout.addWidget(quoteGenerator)
        tab1.setLayout(quoteLayout)

        barMenu.addTab(tab1, "&Nueva Cotización")


        self.setCentralWidget(barMenu)


if __name__ == "__main__":
    app = QApplication([])
    window = MainWindow()
    window.show()
    app.exec_()

我尝试在其中获取自定义小部件的文件是:

^{pr2}$

错误是:

TypeError: create(self, window: sip.voidptr = 0, initializeWindow: bool = True, destroyOldWindow: bool = True): first argument of unbound method must have type 'QWidget'

Tags: 代码fromimportself应用程序部件错误window
1条回答
网友
1楼 · 发布于 2024-09-30 06:22:27

试试看:

主.py

import sys
from PyQt5 import QtCore, QtWidgets, QtGui
from PyQt5.QtWidgets import QApplication, QMainWindow

#        from Pages.Quote import quote
from Quote import QuoteWindow


class MainWindow(QMainWindow):
    def __init__(self):
        super(MainWindow, self).__init__()
        self.setGeometry(10,35,1500,800)
        self.setWindowTitle("Cotizador TuCheff")
        self.setWindowIcon(QtGui.QIcon('im.png'))

#        mainWindow(self)
        self.mainWindow()

    def mainWindow(self):
#        from Pages.Quote import quote
        self.quoteWindow = QuoteWindow()             # +++

        barMenu = QtWidgets.QTabWidget(self)

        tab1 = QtWidgets.QWidget()

        quoteLayout = QtWidgets.QVBoxLayout()

#        quoteGenerator = quote.makeQuoteWindow()
#        quoteLayout.addWidget(quoteGenerator)
        quoteLayout.addWidget(self.quoteWindow)       # +++

        tab1.setLayout(quoteLayout)
        barMenu.addTab(tab1, "&Nueva Cotización")
        self.setCentralWidget(barMenu)


if __name__ == "__main__":
    app = QApplication([])
    window = MainWindow()
    window.show()
    app.exec_()

报价.py

^{pr2}$

enter image description here

相关问题 更多 >

    热门问题