美文网首页程序员
pyqt5 连接问题 argument 1 has unexpe

pyqt5 连接问题 argument 1 has unexpe

作者: 绍重先 | 来源:发表于2018-03-06 22:05 被阅读0次

    教学网站:http://zetcode.com/gui/pyqt5/eventssignals/
    问题解答:https://stackoverflow.com/questions/9330055/argument-1-has-unexpected-type-ui-mainwindow
    https://stackoverflow.com/questions/19775487/calling-a-class-to-build-a-qtreewidget-within-a-window-argument-1-has-unexpecte

    Error:argument 1 has unexpected type 'Ui_MainWindow'"


    • 将ui类Ui_MainWindow的对象ui作为类uiMain的属性attribute,
      初始化后使用ui.***语句设定连接
    #!/usr/bin/python3
    # -*- coding: utf-8 -*-
    
    import sys
    from PyQt5.QtWidgets import QMainWindow, QPushButton, QApplication
    from Ui_login import Ui_MainWindow
    
    
    class UiMain(QMainWindow):
    
        def __init__(self):
            super().__init__()
            ui = Ui_MainWindow()
            ui.setupUi(self)
            ui.btnLogin.clicked.connect(self.btnLoginClicked)
        def btnLoginClicked(self):
            print('login button clicked')
            
    if __name__ == '__main__':
        app = QApplication(sys.argv)
        ui = UiMain()
        ui.show()
        sys.exit(app.exec_())
    
    

    Alternatively you can store ui as instance attribute:

    class Main(QtGui.QMainWindow):
        def __init__(self):
             QtGui.QMainWindow.__init__(self)
             self.ui=Ui_MainWindow()
             self.ui.setupUi(self)
    

    Instead, you need to create a module containing a main window class that does something like this:

    from ui import Ui_MainWindow
    
    class MainWindow(QtGui.QMainWindow):
        def __init__(self):
            QtGui.QMainWindow.__init__(self)
            ui = Ui_MainWindow()
            ui.setupUi(self)
            # other setup code goes here
    

    I would also suggest that you modify the MakeWidget class to something like this:

    class MakeWidget(QtGui.QTreeWidget):
        def __init__(self, xml, parent=None):
            QtGui.QTreeWidget.__init__(self, parent)
    

    so that you can create an instance of it in MainWindow.init like this:

            self.treeServiceSelection = MakeWidget(xml, self)
    

    or possibly factor the xml parsing code out into a method that takes the xml as an argument.

    相关文章

      网友评论

        本文标题:pyqt5 连接问题 argument 1 has unexpe

        本文链接:https://www.haomeiwen.com/subject/tfnrfftx.html