Найти - Пользователи
Полная версия: Убрать Qspinbox из QTableView
Начало » GUI » Убрать Qspinbox из QTableView
1
g-kit
Приветствую,

создал QTableView, а при редактировании ячеек появляется QSpinBox, который мне нафиг не нужен. В таблице присутсвуют делегаты, но совсем не спинбокс и не для тех колонок… Гугл толком разЪяснить не может, а я не могу понять: это такая фича или моя ошибка кода? В любом случае интересует как его убрать оттуда..

спасибо,
-вадим
FishHook
g-kit
Приветствую,

создал QTableView, а при редактировании ячеек появляется QSpinBox, который мне нафиг не нужен. В таблице присутсвуют делегаты, но совсем не спинбокс и не для тех колонок… Гугл толком разЪяснить не может, а я не могу понять: это такая фича или моя ошибка кода? В любом случае интересует как его убрать оттуда..

спасибо,
-вадим
Код покажи, вадим
g-kit
показую. Код делегата:

class emsShipDelegate(QtGui.QItemDelegate):
    def __init__(self, parent=None):
        super(emsShipDelegate, self).__init__(parent)
    def createEditor(self, parent, option, index):
        if index.column() == EMISSIONTYPE:
            combobox = QtGui.QComboBox(parent)
            combobox.insertItem(1, QtGui.QApplication.translate("MainWindow", "Пост.", None, QtGui.QApplication.UnicodeUTF8))
            combobox.insertItem(2, QtGui.QApplication.translate("MainWindow", "Залп.", None, QtGui.QApplication.UnicodeUTF8))
            combobox.setEditable(False)
            return combobox
        else:
            return QtGui.QItemDelegate.createEditor(self, parent, option, index)
    def setEditorData(self, editor, index):
        text = index.model().data(index, QtCore.Qt.DisplayRole).toString()
        if index.column() == EMISSIONTYPE:
            i = editor.findText(text)
            if i== -1:
                i = 0
            editor.setCurrentIndex(i)
        else:
            QtGui.QItemDelegate.setEditorData(self, editor, index)
    def setModelData(self, editor, model, index):
        if index.column() == EMISSIONTYPE:
            model.setData(index, QtCore.QVariant(editor.currentText()))
        else:
            QtGui.QItemDelegate.setModelData(self, editor, model, index)
FishHook
Я не знаю как Вам помочь на основании предоставленных данных.
g-kit
а по этим данным тоже ничего не видно? код не маленький чтобы его сюда весь пихать…

class  frmTableModel(QtCore.QAbstractTableModel):
    def __init__(self, fileName = QtCore.QString()):
        super (frmTableModel, self).__init__()
        self.ships = []
        self.fileName = fileName
        self.dirty = True
#        self.srcCodes = set ()
#        self.countries = set()
    def rowCount (self, index=QtCore.QModelIndex()):
        return len(self.ships)
#        return 5
    def columnCount (self, index=QtCore.QModelIndex()):
        return 5
    def headerData(self, section, orientation, role=QtCore.Qt.DisplayRole):
        if role != QtCore.Qt.DisplayRole:
            return
        if orientation == QtCore.Qt.Horizontal:
            if section == SRCFRMCODE:
                return (QtGui.QApplication.translate("MainWindow", "№ дж. вик. (прих.)", None, QtGui.QApplication.UnicodeUTF8))
            elif section == FRMCODE:
                return (QtGui.QApplication.translate("MainWindow", "№ дж. утв. (прих.)", None, QtGui.QApplication.UnicodeUTF8))
            elif section == FORMATIONSRCNAME:
                return (QtGui.QApplication.translate("MainWindow", "Найм. дж. утв.", None, QtGui.QApplication.UnicodeUTF8))
            elif section == EVOLVINGGASDEPLETION:
                return (QtGui.QApplication.translate("MainWindow", "Витрата ПГВС, м3/с", None, QtGui.QApplication.UnicodeUTF8))
            elif section == EVOLVINGGASTEMPERATURE:
                return (QtGui.QApplication.translate("MainWindow", "Темпер., 0С, ", None, QtGui.QApplication.UnicodeUTF8))
        return int(section + 1)
    def data (self, index, role=QtCore.Qt.DisplayRole):
        if index.isValid() and 0 <= index.row() < len(self.ships):
            ship = self.ships [index.row()]
            column = index.column()
            if role == QtCore.Qt.DisplayRole or role == QtCore.Qt.EditRole:
                if column == SRCFRMCODE:
                    return QtCore.QVariant(ship.srcFrmCode)
                elif column == FRMCODE:
                    return QtCore.QVariant(ship.frmCode)
                elif column == FORMATIONSRCNAME:
                    return QtCore.QVariant(ship.formationSrcName)
                elif column == EVOLVINGGASDEPLETION:
                    return QtCore.QVariant(ship.evolvingGasDepletion)
                elif column == EVOLVINGGASTEMPERATURE:
                    return QtCore.QVariant(ship.evolvingGasTemperature)
            return QtCore.QVariant()
        return QtCore.QVariant()
    def flags(self, index):
        if not index.isValid():
            return QtCore.Qt.ItemIsEnabled
        return QtCore.Qt.ItemFlags(QtCore.QAbstractTableModel.flags(self, index)|QtCore.Qt.ItemIsEditable)
    def setData (self, index, value, role=QtCore.Qt.DisplayRole):
        if index.isValid() and 0 <= index.row() < len (self.ships):
            ship = self.ships [index.row()]
            column = index.column()
            if column == SRCFRMCODE:
                value, ok =  value.toInt()
                if ok:
                    ship.srcFrmCode = value
            elif column == FRMCODE:
                value, ok =  value.toInt()
                if ok:
                    ship.frmCode = value
            elif column == FORMATIONSRCNAME:
                ship.formationSrcName = value.toString()
            elif column == EVOLVINGGASDEPLETION:
                ship.evolvingGasDepletion = value.toDouble()[0]
            elif column == EVOLVINGGASTEMPERATURE:
                ship.evolvingGasTemperature = value.toDouble()[0]
            self.dirty = True
            self.emit(QtCore.SIGNAL("dataChanged(QModelIndex, QModelIndex)"), index, index)
            return True
        return False
    def insertRows (self, position, indexSrcCode, nextFrmCode, rows=1, index=QtCore.QModelIndex()):
        self.beginInsertRows(QtCore.QModelIndex(), position, position + rows - 1)
        for row in range(rows):
            self.ships.insert(position + row, frmShip(indexSrcCode, nextFrmCode, u"Джерело утворення", 0, 0))
        self.endInsertRows()
        self.dirty = True
        return True
    def removeRows(self, position, rows, index=QtCore.QModelIndex()):
        self.beginRemoveRows(QtCore.QModelIndex(), position, position + rows - 1)
        self.ships = self.ships[:position] + self.ships [position + rows:]
        self.endRemoveRows()
        self.dirty = True
        return True
FishHook
g-kit
код не маленький чтобы его сюда весь пихать…
Можно запихать файл вложением. Потому что очень хочется его запустить и посмотреть, что же там у тебя не так. Согласись, это же не задачка на сортировку пузырьком из пяти строчек, где просто взглядом можно зацепиться за ошибку. У тебя неправильно отрисовывается ГУЙ, ну и как скажи тебе помочь, если вместо ГУЯ я вижу обрывки кода?
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB