示例#1
0
    def _map_widget_to_model(self):
        self._mapper_obj = QtWidgets.QDataWidgetMapper(self)

        self._mapper_obj.setModel(self._view.get_model())

        self._mapper_obj.addMapping(
            self._mapw.use_def_mob_smpl,
            self._api.get_property_index('use_default_mobo_samples'))

        sel_mod = self._view.selectionModel()
        sel_mod.currentChanged.connect(self._set_mapper_index)
        self._view.on_parent_changed.connect(self._mapper_parent_change)
示例#2
0
    def __init__(self, parent=None):
        super().__init__(parent)
        self.setupModel()

        self.nameLabel = QtWidgets.QLabel(self.tr("Na&me:"))
        self.nameEdit = QtWidgets.QLineEdit()
        self.addressLabel = QtWidgets.QLabel(self.tr("&Address:"))
        self.addressEdit = QtWidgets.QTextEdit()
        self.typeLabel = QtWidgets.QLabel(self.tr("&Type:"))
        self.typeComboBox = QtWidgets.QComboBox()
        self.nextButton = QtWidgets.QPushButton(self.tr("&Next"))
        self.previousButton = QtWidgets.QPushButton(self.tr("&Previous"))

        self.nameLabel.setBuddy(self.nameEdit)
        self.addressLabel.setBuddy(self.addressEdit)
        self.typeLabel.setBuddy(self.typeComboBox)

        relModel = self.model.relationModel(self.typeIndex)
        self.typeComboBox.setModel(relModel)
        self.typeComboBox.setModelColumn(relModel.fieldIndex("description"))

        self.mapper = QtWidgets.QDataWidgetMapper(self)
        self.mapper.setModel(self.model)
        self.mapper.setItemDelegate(QtSql.QSqlRelationalDelegate(self))
        self.mapper.addMapping(self.nameEdit, self.model.fieldIndex("name"))
        self.mapper.addMapping(self.addressEdit,
                               self.model.fieldIndex("address"))
        self.mapper.addMapping(self.typeComboBox, self.typeIndex)

        self.previousButton.clicked.connect(self.mapper.toPrevious)
        self.nextButton.clicked.connect(self.mapper.toNext)
        self.mapper.currentIndexChanged.connect(self.updateButtons)

        layout = QtWidgets.QGridLayout()
        layout.addWidget(self.nameLabel, 0, 0, 1, 1)
        layout.addWidget(self.nameEdit, 0, 1, 1, 1)
        layout.addWidget(self.previousButton, 0, 2, 1, 1)
        layout.addWidget(self.addressLabel, 1, 0, 1, 1)
        layout.addWidget(self.addressEdit, 1, 1, 2, 1)
        layout.addWidget(self.nextButton, 1, 2, 1, 1)
        layout.addWidget(self.typeLabel, 3, 0, 1, 1)
        layout.addWidget(self.typeComboBox, 3, 1, 1, 1)
        self.setLayout(layout)

        self.setWindowTitle(self.tr("SQL Widget Mapper"))
        self.mapper.toFirst()
示例#3
0
    def __init__(self):
        super(WidgetTest, self).__init__()
        layout = QtWidgets.QVBoxLayout()
        self.setLayout(layout)

        #ALL OF OUR VIEWS
        listView = QtWidgets.QListView()
        layout.addWidget(listView)

        treeView = QtWidgets.QTreeView()
        layout.addWidget(treeView)

        comboBox = QtWidgets.QComboBox()
        layout.addWidget(comboBox)

        tableView = QtWidgets.QTableView()
        layout.addWidget(tableView)

        red = QtGui.QColor(255, 0, 0)
        green = QtGui.QColor(0, 255, 0)
        blue = QtGui.QColor(0, 0, 255)

        rowCount = 4
        columnCount = 6

        # self.model = QtCore.QStringListModel(["red", "green", "blue"])
        # self.model = TestModel(["red", "green", "blue",True])
        red = QtGui.QStandardItem("red")
        green = QtGui.QStandardItem("green")
        blue = QtGui.QStandardItem("blue")
        self.model = QtGui.QStandardItemModel()
        self.model.appendRow([red.clone(), green.clone(), blue.clone()])
        self._model = QtGui.QStandardItemModel()
        self._model.appendRow([red, green, blue])

        listView.setModel(self.model)
        comboBox.setModel(self.model)
        tableView.setModel(self.model)
        treeView.setModel(self.model)

        self.mapper = QtWidgets.QDataWidgetMapper()
        self.mapper.setModel(self.model)
        self.mapper_label = QtWidgets.QDataWidgetMapper()
        self.mapper_label.setModel(self.model)
        # self.mapper.setItemDelegate(self.model)

        self.label = QtWidgets.QLabel(self)
        layout.addWidget(self.label)
        self.line = QtWidgets.QLineEdit()
        layout.addWidget(self.line)

        # NOTE https://stackoverflow.com/questions/28114655/qdatawidgetmapper-not-working-with-qlabels
        self.mapper_label.addMapping(self.label, 0, "text")
        self.mapper_label.toFirst()

        self.mapper.addMapping(self.line, 0)
        self.mapper.toFirst()
        # self.mapper.setSubmitPolicy(QtWidgets.QDataWidgetMapper.ManualSubmit)

        self.line.textChanged.connect(self.changeText)

        self.button = QtWidgets.QPushButton('click')
        self.button.clicked.connect(
            lambda: self._model.item(0, 0).setText("ASD"))
        layout.addWidget(self.button)
示例#4
0
    def __init__(self):
        super(WidgetTest, self).__init__()
        layout = QtWidgets.QVBoxLayout()
        self.setLayout(layout)

        #ALL OF OUR VIEWS
        listView = QtWidgets.QListView()
        layout.addWidget(listView)

        treeView = QtWidgets.QTreeView()
        layout.addWidget(treeView)

        comboBox = QtWidgets.QComboBox()
        layout.addWidget(comboBox)
        comboBox.addItem("0")
        comboBox.addItem("1")
        comboBox.addItem("2")
        comboBox.addItem("3")
        comboBox.addItem("4")

        tableView = QtWidgets.QTableView()
        layout.addWidget(tableView)

        red = QtGui.QColor(255, 0, 0)
        green = QtGui.QColor(0, 255, 0)
        blue = QtGui.QColor(0, 0, 255)

        rowCount = 4
        columnCount = 6

        # self.model = QtCore.QStringListModel(["red", "green", "blue"])
        # self.model = TestModel(["red", "green", "blue",True])
        self.model = QtGui.QStandardItemModel()
        red = QtGui.QStandardItem("red")
        red.appendRow([
            QtGui.QStandardItem("1"),
            QtGui.QStandardItem("2"),
            QtGui.QStandardItem("3")
        ])
        self.model.appendRow(
            [red,
             QtGui.QStandardItem("green"),
             QtGui.QStandardItem("blue")])
        self.model.appendColumn([
            QtGui.QStandardItem("red"),
            QtGui.QStandardItem("green"),
            QtGui.QStandardItem("blue")
        ])

        listView.setModel(self.model)
        comboBox.setModel(self.model)
        tableView.setModel(self.model)
        treeView.setModel(self.model)

        self.mapper = QtWidgets.QDataWidgetMapper()
        self.mapper.setModel(self.model)
        self.mapper_label = QtWidgets.QDataWidgetMapper()
        self.mapper_label.setModel(self.model)
        # self.mapper.setItemDelegate(self.model)

        self.label = QtWidgets.QLabel(self)
        self.label = TestLabel(self)
        layout.addWidget(self.label)
        self.line = QtWidgets.QLineEdit()
        layout.addWidget(self.line)

        class TestContainer(QtWidgets.QWidget):

            msg = QtCore.Property(
                str, self.label.text,
                lambda instance, val: self.label.setText("test : %s" % val))

        # container = TestContainer()
        self.label.setProperty(b'hello', "world")

        # print ("property",container.property("hello"))
        # print ("property",container.hello)

        # NOTE https://stackoverflow.com/questions/28114655/qdatawidgetmapper-not-working-with-qlabels
        self.mapper_label.addMapping(self.label, 0, "hello")
        self.mapper_label.toFirst()

        self.mapper.addMapping(self.line, 0)
        self.mapper.toFirst()
        # self.mapper.setSubmitPolicy(QtWidgets.QDataWidgetMapper.ManualSubmit)

        self.line.textChanged.connect(self.changeText)

        self.button = QtWidgets.QPushButton('click')
        # self.button.clicked.connect(lambda:self.model.item(0,0).setText("ASD"))
        self.button.clicked.connect(
            lambda: print(self.label.property("text2")))
        layout.addWidget(self.button)