QWidget:必须在QPaintDevice之前构造QApplication错误
我知道这个问题已经被回答过很多次了,但因为我对pyqt/python完全是新手(才尝试了一周),所以我无法把那些解决方案应用到我的代码里。
import sys
from PyQt4.QtSql import *
from PyQt4 import QtCore, QtGui, uic
app = QtGui.QApplication(sys.argv)
class TestApp(QtGui.QWidget):
def __init__(self):
QtGui.QWidget.__init__(self)
self.ui = uic.loadUi("C:\Python34\Lib\site-packages\PyQt4\BazaPodataka\database_GUI.ui")
self.ui.show()
db = QSqlDatabase.addDatabase("QPSQL")
db.setHostName("localhost")
db.setDatabaseName("BP Za bolnicu")
db.setUserName("postgres")
db.setPassword("zanoktica")
db.setPort(5432)
ok = db.open()
if ok:
print("Connected to database")
else:
print("Error connecting to database")
if __name__ == "__main__":
app = QtGui.QApplication(sys.argv)
win = TestApp()
sys.exit(app.exec_())
我知道我的代码很乱,我正在尝试同时解决多个问题。我在Qt设计器里做了一个图形界面,现在我想把它放到我的主代码里,这样我就可以随意修改,然后再把更新的版本应用上去。
1 个回答
1
你创建了两个QApplication实例。把第一个实例删掉,然后把SQL相关的调用放到第二个初始化下面。