qt - How to add data to a created form? PyQt/Python/SQL -


i have created basic form layout using splitters qlistwidget , qtextbrowser. wanted know how import data sql database (or add simple text i.e. string) listwidget boxes. once user clicks on piece of data within listwidget box, how show (in detail) expansion of data in textbrowser box?? also, how fix splitter, user cannot move, adjust splitters??

the code below:

import sys, random, time, math, re pyqt4 import qtgui, qtcore  class mainwindow(qtgui.qmainwindow):     def __init__(self, parent=none):         super(mainwindow, self).__init__(parent)         self.grouplist = qtgui.qlistwidget()         self.messagelist = qtgui.qlistwidget()         self.messageview = qtgui.qtextbrowser()         self.messagesplitter = qtgui.qsplitter(qtcore.qt.vertical)         self.messagesplitter.addwidget(self.messagelist)         self.messagesplitter.addwidget(self.messageview)         self.mainsplitter = qtgui.qsplitter(qtcore.qt.horizontal)         self.mainsplitter.addwidget(self.grouplist)         self.mainsplitter.addwidget(self.messagesplitter)         self.setcentralwidget(self.mainsplitter)           self.mainsplitter.setstretchfactor(0, 1)         self.mainsplitter.setstretchfactor(1, 3)         self.messagesplitter.setstretchfactor(0 ,1)         self.messagesplitter.setstretchfactor(1, 2)     def closeevent(self, event):         if self.oktocontinue():             settings = qtgui.qsettings()             settings.setvalue("mainwindow/size", qvariant(self.size()))             settings.setvalue("mainwindow/position", qvariant(self.pos()))             settings.setvalue("mainwindow/state", qvariant(self.savestate()))             settings.setvalue("messagesplitter", qvariant(self.messagesplitter.savestate()))             settings.setvalue("mainsplitter", qvariant(self.mansplitter.savestate()))         else:             event.ignore()  if __name__ == '__main__':     app = qtgui.qapplication(sys.argv)     window = mainwindow()     window.show()     sys.exit(app.exec_()) 

well require qsqltablemodel , , use listview rather listwidget. load model database file , connect model listview. in listview set model column want display in view, using setmodelcolumn() function.

here example of how can it.

from pyqt4 import qtcore, qtgui,qtsql import os  try:     _fromutf8 = qtcore.qstring.fromutf8 except attributeerror:     _fromutf8 = lambda s: s config_database_path = "./" config_database_name = "comboboxexample.db"  class ui_form(object):     def setupui(self, form):         form.setobjectname(_fromutf8("form"))         form.resize(640, 480)         filename = os.path.join(config_database_path,config_database_name)         self.db = qsqldatabase.adddatabase("qsqlite")         self.db.setdatabasename(filename)         self.model = qtsql.qsqltablemodel(self, self.db)         self.model.settable('items') # enter table name         self.model.seteditstrategy(qtsql.qsqltablemodel.onmanualsubmit)         self.splitter = qtgui.qsplitter(form)         self.splitter.setgeometry(qtcore.qrect(10, 30, 621, 441))         self.splitter.setorientation(qtcore.qt.horizontal)         self.splitter.setobjectname(_fromutf8("splitter"))         self.listview = qtgui.qlistview(self.splitter)         self.listview.setobjectname(_fromutf8("listview"))         self.listview.setmodel(self.model)          # enter column number want display         self.listview.setmodelcolumn(1)          self.textedit = qtgui.qtextedit(self.splitter)         self.textedit.setobjectname(_fromutf8("textedit"))          self.retranslateui(form)         qtcore.qobject.connect(self.listview, qtcore.signal("clicked(qmodelindex)"),self.listclicked_2)         qtcore.qmetaobject.connectslotsbyname(form)      def retranslateui(self, form):         form.setwindowtitle(qtgui.qapplication.translate("form", "form", none, qtgui.qapplication.unicodeutf8))      def listclicked_2( self, qmodelindex ):         # take data model , display in textedit         self.textedit.settext(qmodelindex.data(qtcore.qt.displayrole).tostring()) 

Comments

Popular posts from this blog

apache - Remove .php and add trailing slash in url using htaccess not loading css -

inno setup - TLabel or TNewStaticText - change .Font.Style on Focus like Cursor changes with .Cursor -