sqlite
- это база данных с определенными характеристиками c: если база данных не существует, когда вы пытаетесь ее открыть, она будет создана, поэтому метод open()
всегда будет возвращать True, что может привести к возникновению проблем без вывода сообщений. .
В этом случае всегда рекомендуется использовать полный путь, это может быть явно: "/ full / path / of / database" или построено на основе расположения скрипта, например, если база данных находится в той же папке скрипта, тогда вы можете использовать следующий код:
import os
# ...
current_dir = os.path.dirname(os.path.realpath(__file__))
db_path = os.path.join(current_dir, "qtdatabase.db")
self.database = qsql.QSqlDatabase.addDatabase('QSQLITE')
self.database.setDatabaseName(db_path)
if self.database.open():
qtw.QMessageBox.about(self, 'connectet', "connection to db successful")
В вашем случае вы, вероятно, используете какую-то IDE, которая при запуске скрипта использует рабочий каталог, отличный от местоположения скрипта.