QWidget:必须在QPaintDevice之前构造QApplication错误

0 投票
1 回答
4532 浏览
提问于 2025-04-18 17:43

我知道这个问题已经被回答过很多次了,但因为我对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相关的调用放到第二个初始化下面。

撰写回答