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)
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()
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)
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)