Python 单击的.connect()将无法访问该方法

Python 单击的.connect()将无法访问该方法,python,user-interface,pyqt,pyqt5,unreachable-code,Python,User Interface,Pyqt,Pyqt5,Unreachable Code,我有一个单独的脚本调用这个。。。我不明白为什么我的按钮点击没有进入相应的功能。我在这方面很新,所以如果你知道答案,你能给我解释一下吗,这样我就可以学习了 import sys from PyQt5.QtWidgets import * from PyQt5.QtGui import * from PyQt5.QtCore import * class Window (QWidget): def __init__(self): super().__init__()

我有一个单独的脚本调用这个。。。我不明白为什么我的按钮点击没有进入相应的功能。我在这方面很新,所以如果你知道答案,你能给我解释一下吗,这样我就可以学习了

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

class Window (QWidget):

    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        self.urlEdit = QLineEdit()
        self.windowWid = QWidget()

        urlLabel = QLabel("Enter website to scrape:")
        self.urlEdit.setFixedHeight(30)
        self.urlEdit.setFixedWidth(200)
        layout = QGridLayout(self.windowWid)
        layout.addWidget(urlLabel, 0, 0)
        layout.addWidget(self.urlEdit, 0, 1)
        done = QPushButton("Done",self)

        done.setFixedWidth(60)
        layout.addWidget(done,2,3)
        layout.setRowStretch(4, 1)
        layout.setColumnStretch(4,1)
        done.clicked.connect(self.grabtext)

    def grabtext(self):
        print("CANT REACH HERE")
        answer = self.urlEdit.text()
        print(answer)
删除此行:self.windowWid=QWidget 并将layout=QGridLayoutself.windowWid更改为layout=QGridLayoutself


基本上,当您调用显示此小部件时,使用self.windowWid=QWidget行初始化一个空白的QWidget,然后将布局和其他元素分配给此小部件。您希望将这些元素分配给窗口小部件的实例,这就是为什么要使用layout=QGridLayoutself。

当您说您有一个单独的脚本来调用它时,您的意思是什么?对该代码的调用只会定义类,而不会实例化它。在当前形式下,代码甚至不会显示要单击的按钮。代码会显示按钮和输入框,但单击时不会执行任何操作。我的意思是,我有scriptA,这段代码是scriptA中的scriptB方法,我说scrapeMails.Window调用这个类。。这是正确的吗?或者我应该把它变成一个函数调用,而不是把它放在scriptB中的类中?@user3419537上面的注释抱歉忘了标记你了谢谢你,这很好地解决了我的问题,你给了我一个好的、易于理解的解释。我很感激