QWidget:必须在QPaintDevice python之前构造QApplication
我在pyqt代码文件中导入另一个Python模块,以获取输入并显示输出。但它给了我错误 QWidget:必须在QPaintDevice之前构造QApplication 我的代码是:QWidget:必须在QPaintDevice python之前构造QApplication,python,pyqt,Python,Pyqt,我在pyqt代码文件中导入另一个Python模块,以获取输入并显示输出。但它给了我错误 QWidget:必须在QPaintDevice之前构造QApplication 我的代码是: from PyQt4 import QtGui import sys from untitled import Ui_MainWindow from PyQt4.QtCore import SIGNAL from PyQt4.QtGui import QDialog, QApplication, QPushButto
from PyQt4 import QtGui
import sys
from untitled import Ui_MainWindow
from PyQt4.QtCore import SIGNAL
from PyQt4.QtGui import QDialog, QApplication, QPushButton, QLineEdit, QFormLayout
from naivebase import *
class Main (QtGui.QMainWindow):
def __init__(self):
QtGui.QMainWindow.__init__(self)
self.ui = Ui_MainWindow()
self.ui.setupUi(self)
self.ui.pushButton.clicked.connect(self.pushButton_clicked)
self.ui.lineEdit.returnPressed.connect(self.pushButton_clicked)
# self.connect(QPushButton(), SIGNAL("clicked()"), self.pushButton_clicked)
def pushButton_clicked(self):
text1 = self.ui.lineEdit.text()
# print text1
ob2 = TweetClassfier()
txt = ob2.lbl1
self.ui.label_2.setText(txt)
if __name__ == "__main__":
app = QtGui.QApplication(sys.argv)
window = Main()
window.show()
sys.exit(app.exec_())
我已经调试了代码,它在这一行之后给了我这个错误
QtGui.QMainWindow.__init__(self)
您已经从
QtGui
导入了QApplication
。这意味着不需要在app=QtGui.QApplication(sys.argv)
中引用QtGui
试试看:app=qapplicationpn(sys.argv)
编辑:但这可能不是原因。另一个猜测是,正如我在上面所评论的,避免导入带有星号的naivebase
,这会与您的命名空间相勾结,并可能导致错误,例如,如果其他东西被称为app
编辑:如果没有
untitled
(可能想给它一个有意义的名字)和naivebase
的内容,我们最终无法确切地知道哪里出了问题,而不是QMainWindow。
,试试super(QMainWindow,self)。\uu init\uuu()
这应该行得通
还要确保naivebase和untitled没有任何代码试图在主流中实例化QtGui对象。在调用QApplication()
之前发生的任何事情都应该是def
和class
内容或纯python内容。这里我指的不是经典的,而是文件中def或类定义之外的任何其他代码或赋值。请先运行此命令,并且只运行一次:
app=QtGui.QApplication(sys.argv)
然后运行:
if __name__ == "__main__":
window = Main()
window.show()
sys.exit(app.exec_())
naivebase
的内容是什么?Naivbase正在使用NLTKC实现一个分类器。您可以编辑您的帖子以包含“naivebase”?我猜您正在导入的内容(无论是untitled
还是naivebase
)都会在导入时创建某种小部件。两件事:1。在定义类Main(QtGui.QApplication)
的行上有一个额外的空间(在原始代码中可能没有)。这是一个很长的问题,但是否会因为导入`naivebase'中的所有名称而发生命名空间冲突