Code: Alles auswählen
#!/usr/bin/env python3
#-*- coding: UTF-8 -*-
import sys
import sqlite3
from PyQt4.QtGui import QApplication, QFileDialog, QTableWidget
from PyQt4.uic import loadUi
#globale Variablen ????? Sichtbarkeit?
version = {'name':'SQLiteGUI',
'version':'0.1 alpha'}
def main():
debug = True
conn = None #DatabaseConnection
cur = None #Database Cursor
app = QApplication(sys.argv)
window = loadUi("mainwindow.ui")
def version():
return version
def debugMessage(s):
if debug:
print(s)
def getDatabaseName(s):
return QFileDialog.getOpenFileName(window,'Get Database File Name',s)
def setDatabaseName(s):
window.lineEditDBName.setText(s)
def getDbMode():
dbMode = 'ro'
if window.cbDBwriteMode.checkState():
dbMode = 'rw'
if window.cbDBcreateMode.checkState():
dbMode = 'rwc'
debugMessage('dbMode = ' + dbMode)
return dbMode
def getDBTables(): #triggers too
debugMessage('getDBTables')
cur.exec(''' select type, name from sqlite_master where type in ('table','trigger') order by type, name; ''')
r = 0
for value in cur.fetch_all():
window.tableWidgetDB.setItem(r,0,value[0])
window.tableWidgetDB.setItem(r,1,value[1])
debugMessage(value)
r +=1
def OpenDB(): # auch für reopen zuständig
debugMessage('openDB')
s = 'file:' + window.lineEditDBName.text() + '?mode=' + getDbMode()
debugMessage('s=',s)
conn = sqlite3.connect(s, uri=True)
cur = conn.cursor()
def initializeDB():
debugMessage("initializeDB")
OpenDB
debugMessage('done (001)')
getDBTables
debugMessage('done (002)')
#ui file einbinden
window.buttonDBSelect.clicked.connect(getDatabaseName)
window.pushButtonDBOpen.clicked.connect(initializeDB)
####################################
s = getDatabaseName('/usr/data/digikam')
setDatabaseName(s)
window.show()
sys.exit(app.exec_())
if __name__ == '__main__':
main()
Code: Alles auswählen
>>>
initializeDB
done (001)
done (002)
>>>
Frage am Rande, gibt es in Idle eine Programmablaufverfolgung (Einzelschritt)? Außer Breakpoints habe ich da noch nichts gesehen.