Hi Karsten,

I think you need to add the QComboBox to your dialog in order to make it show _but_ if you have a ui file why don't you create the QComboBox in QtDesigner? you can access it like this (ui file must have been converted into py file with pyuic4):
comboBoxNew = self.ui.comboBoxNew

I was in a similar situation (beginner with python, Qt and QGIS) some 8 months ago, so here are some other thoughts:

be sure that you have read about QGIS' dynamic forms
http://linfiniti.com/2009/11/creating-dynamic-forms-a-new-feature-headed-for-qgis-1-4/

some Python code to use them:
http://www.osgeo.org/pipermail/qgis-developer/2010-January/008731.html

last but not least:
You can define a comboBox in the layer properties (edit widget = value map) and populate it from a csv file. The values are saved with the project or a qml file. It is even possible to manipulate the qml file thus synchronising the values with the current version of the csv file and then reapply it to the layer. I could provide some code for this if you are interested.

regards

Bernhard

karsten vennemann schrieb:
Hi I am a beginner with python , QGIS and pyQT.
I am working on a python plug-in and would like to populate dynamically a pyQT based QDialog form with combo boxes at runtime (the elements to be added are input via a config txt file that is read). Thus I would like to get hints how I can do this . I have a a py file with the dialog form (streameditcustomformdialog.py): from PyQt4 import QtCore, QtGui
from ui_streameditcustomform import Ui_StreamEditCustomForm
# create the dialog for zoom to point
class StreamEditCustomFormDialog(QtGui.QDialog):
    def __init__(self, parent = None):
        QtGui.QDialog.__init__(self)
        # Set up the user interface from Designer.
        self.ui = Ui_StreamEditCustomForm()
        self.ui.setupUi(self)
and a routine that reads the config file and should populate the form with new comboxes: def inputConfig(self): # QgisMainWindow = qgis.utils.iface.mainWindow() filename = QFileDialog.getOpenFileName(None, 'Open File', "C:/", \ "Text Files (*.txt *.csv)"); if filename: formconfig_input = open(filename, 'r') # input species info id , name for batch processing
            while 1:
formconfig_line = formconfig_input.readline() # read csv text file line
                if not formconfig_line: break
                formconfig_splitline = formconfig_line.split(',')
                if len(formconfig_splitline) < 3:
QMessageBox.information(None,"A problem occured with your input file.", \ "The file you choose did not have the proper \n syntax or number of comma separated fields.")
                    return
                else:
                    fieldname1   = formconfig_splitline[0]
                    fieldtype1   = formconfig_splitline[1]
                    fieldlength1 = formconfig_splitline[2]
                    QMessageBox.information(None,"Form Info:", \
                    fieldname1 + '\n' + fieldtype1 + '\n' + fieldlength1)
                    self.dlg = StreamEditCustomFormDialog()
                    #show the dialog
                    self.dlg.comboBoxNew = QtGui.QComboBox()
                    self.dlg.comboBoxNew.setObjectName("comboBox")
self.dlg.comboBoxNew.setItemText(1, QtGui.QApplication.translate("Form", "bw", None, QtGui.QApplication.UnicodeUTF8))
                    self.dlg.show()
                    return
            formconfig_input.close
However I tried it above - the combo box does not appear on the form which is showing ok if I run the plugin, no error message ...but no combo box ... What am I doing wrong? Will this take care of layout management or how could I have the layout (e.g. size of form handled if many combo boxes are added ? Thanks
Karsten

Karsten Vennemann

Terra GIS LTD
www.terragis.net <http://www.terragis.net>


------------------------------------------------------------------------

_______________________________________________
Qgis-developer mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/qgis-developer


________ Information from NOD32 ________
This message was checked by NOD32 Antivirus System for Linux Mail Server.
http://www.nod32.com

--
Dipl.-Geogr. Bernhard Ströbl
Anwendungsbetreuer GIS
Kommunale Immobilien Jena
 - Datenverarbeitung -
mailto:[email protected]
http://kij.jena.de/
----------------------------


________ Information from NOD32 ________
This message was checked by NOD32 Antivirus System for Linux Mail Server.
http://www.nod32.com
_______________________________________________
Qgis-developer mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/qgis-developer

Reply via email to