Exemplo n.º 1
0
class EditItemDlg(QDialog):
    def __init__(self, parent=None):
        super(EditItemDlg, self).__init__(parent)
        #     # Create model
        self.locusTypeModel = QSqlTableModel(self)
        self.locusTypeModel.setTable("tbl_locusType")
        self.locusTypeModel.select()

        # Create combo and set its model
        self.locusTypeComboBox = self.createCombobox(self.locusTypeModel, "typeLabel")
        typeLabel = QLabel("&Type:")
        typeLabel.setBuddy(self.locusTypeComboBox)

        #     # Create model
        self.locusSubTypeModel = QSqlTableModel(self)
        self.locusSubTypeModel.setTable("tbl_locus_subType1")
        self.locusSubTypeModel.select()

        # Create combo and set its model
        self.locusSubTypeCombobox = self.createCombobox(self.locusSubTypeModel, "subtype1Label")
        #
        # self.locusSubTypeCombobox = QComboBox()
        # self.locusSubTypeCombobox.setModel(self.locusSubTypeModel)
        # self.locusSubTypeCombobox.setModelColumn(
        #     self.locusTypeModel.fieldIndex("label"))

        #     # Create model
        # self.locusSubType2Model = QSqlTableModel(self)
        # self.locusSubType2Model.setTable("tbl_locus_subType1")
        # self.locusSubType2Model.select()

        controlLayout = QGridLayout()
        controlLayout.addWidget(self.locusTypeComboBox, 4, 0)
        controlLayout.addWidget(self.locusSubTypeCombobox, 5, 0)

        self.setLayout(controlLayout)
        self.resize(500, 125)

        self.locusTypeComboBox.currentIndexChanged.connect(self.f)

    @staticmethod
    def createCombobox(model, modelColumn):
        locusTypeComboBox = QComboBox()
        locusTypeComboBox.setModel(model)
        locusTypeComboBox.setModelColumn(model.fieldIndex(modelColumn))
        return locusTypeComboBox

    pyqtSlot('int')

    def f(self, index):
        locusTypeModelIndex = self.locusTypeModel.index(index, self.locusTypeModel.fieldIndex("typeID"))
        # idx = self.locusTypeComboBox.model().index(index, self.locusTypeModel.fieldIndex("ID"))
        data = self.locusTypeModel.data(locusTypeModelIndex)

        filter = QString("subtype1ID=%1").arg(data.toPyObject())
        self.locusSubTypeModel.setFilter(filter)
        self.locusSubTypeModel.select()
        print data.toPyObject()
Exemplo n.º 2
0
class Locus(QtGui.QWidget):
    def __init__(self):
        super(Locus, self).__init__()

        self.layout = QtGui.QGridLayout()
        self.LocusIdEntry = QtGui.QLineEdit()

        #     # Create model
        self.locusTypeModel = QSqlTableModel(self)
        self.locusTypeModel.setTable("tbl_locusType")
        self.locusTypeModel.select()

        self.locusSubType1Model = QSqlTableModel(self)
        self.locusSubType1Model.setTable("tbl_locus_subtype1")
        #self.locusSubType1Model.select()

        self.locusSubType2Model = QSqlTableModel(self)
        self.locusSubType2Model.setTable("tbl_locus_subtype2")

        self.locusSubType3Model = QSqlTableModel(self)
        self.locusSubType3Model.setTable("tbl_locus_subtype3")


        # Create combo and set its model
        self.locusType = self.createCombobox(self.locusTypeModel, "typeLabel")
        self.locusSubType1 = self.createCombobox(self.locusSubType1Model, "subtype1Label")
        self.locusSubType2 = self.createCombobox(self.locusSubType2Model, "subtype2Label")
        self.locusSubType3 = self.createCombobox(self.locusSubType3Model, "subtype3Label")

        self.SectorTrenchEntry = QtGui.QLineEdit()
        self.SpaceRoomEntry = QtGui.QLineEdit()
        self.LocusDescription = QtGui.QPlainTextEdit()
        self.LocusDescription.setFixedHeight(100)




        """Set the layout"""

        self.layout.addWidget(QtGui.QLabel('Locus Number:', self), 0, 0)
        self.layout.addWidget(self.LocusIdEntry, 0, 1)

        self.layout.addWidget(QtGui.QLabel('Locus Type:', self), 1, 0)
        self.layout.addWidget(self.locusType, 1, 1, )

        self.layout.addWidget(QtGui.QLabel('Locus SubType1:', self), 2, 0)
        self.layout.addWidget(self.locusSubType1, 2, 1)
        # self.layout.setColumnMinimumWidth(1, 1)


        self.layout.addWidget(QtGui.QLabel('Locus SubType2:', self), 3, 0)
        self.layout.addWidget(self.locusSubType2, 3, 1)

        self.layout.addWidget(QtGui.QLabel('Locus SubType3:', self), 4, 0)
        self.layout.addWidget(self.locusSubType3, 4, 1)

        self.layout.addWidget(QtGui.QLabel('Sector/ Trench:', self), 7, 0)
        self.layout.addWidget(self.SectorTrenchEntry, 7, 1, 1, 1)

        self.layout.addWidget(QtGui.QLabel('Space/ Room:', self), 8, 0)
        self.layout.addWidget(self.SpaceRoomEntry, 8, 1, 1, 1)

        self.layout.addWidget(QtGui.QLabel('Description:', self), 9, 0)
        self.layout.addWidget(self.LocusDescription, 9, 1, 1, 8)

        self.map = QtGui.QPushButton('Map', self)
        self.saveButton = QtGui.QPushButton('Save', self)
        self.cancelButton = QtGui.QPushButton('Cancel', self)
        self.addButton = QtGui.QPushButton('Add New', self)

        self.layout.addWidget(self.map, 11, 0)
        self.layout.addWidget(self.saveButton, 11, 4)
        self.layout.addWidget(self.cancelButton, 11, 6)
        self.layout.addWidget(self.addButton, 11, 2)

        self.setLayout(self.layout)
        self.setGeometry(500, 500, 550, 500)
        self.setWindowTitle('Locus')


        self.locusType.setCurrentIndex(-1)

        self.locusType.currentIndexChanged.connect( self.subType1selection)
        self.locusSubType1.currentIndexChanged.connect(self.subType2selection)
        self.locusSubType2.currentIndexChanged.connect(self.subType3selection)


    @staticmethod
    def createCombobox(model, modelColumn):
        locusTypeComboBox = QtGui.QComboBox()
        locusTypeComboBox.setModel(model)
        locusTypeComboBox.setModelColumn(model.fieldIndex(modelColumn))
        return locusTypeComboBox


    pyqtSlot('int')

    #def locusSubType1clear(self):

    def subType1selection(self, index):
        locusTypeModelIndex = self.locusTypeModel.index(index, self.locusTypeModel.fieldIndex("typeID"))
        data = self.locusTypeModel.data(locusTypeModelIndex)

        filter = QString("typeID=%1").arg(data.toPyObject())
        self.locusSubType1Model.setFilter(filter)
        self.locusSubType1Model.select()
        print data.toPyObject()

    def subType2selection(self, index):

        locusSubType1ModelIndex = self.locusSubType1Model.index(index, self.locusSubType1Model.fieldIndex("subtype1ID"))
        data = self.locusSubType1Model.data(locusSubType1ModelIndex)

        filter = QString("subtype1ID= %1").arg(data.toPyObject())
        self.locusSubType2Model.setFilter(filter)
        self.locusSubType2Model.select()
        # print data.toPyObject()
        # print data

    def subType3selection(self, index):
        locusSubType2ModelIndex = self.locusSubType2Model.index(index, self.locusSubType2Model.fieldIndex("subtype2ID"))
        data = self.locusSubType2Model.data(locusSubType2ModelIndex)

        filter = QString("subtype2ID=%1").arg(data.toPyObject())
        self.locusSubType3Model.setFilter(filter)
        self.locusSubType3Model.select()
        print data.toPyObject()