【发布时间】:2014-05-04 04:17:42
【问题描述】:
我是 Qt 的新手。我有一个带有代表组合框的表格作为第二列。 我想检测对组合框的点击。
我想到了一种方法:将组合框作为私有变量添加到 ComboBoxDelegate 中,并添加一个公共槽作为
void on_cb_currentIndexChanged ( const QString & text );
但是,由于 createEditor 是 const 并且我无法在此方法中重新分配变量 cb。 有没有其他方法可以做到这一点?
class ComboBoxDelegate : public QItemDelegate
{
Q_OBJECT
public:
ComboBoxDelegate(std::vector<std::string> values, QObject *parent = 0);
~ComboBoxDelegate();
QWidget *createEditor(QWidget *parent, const QStyleOptionViewItem &option,
const QModelIndex &index) const;
void setEditorData(QWidget *editor, const QModelIndex &index) const;
void setModelData(QWidget *editor, QAbstractItemModel *model,
const QModelIndex &index) const;
void updateEditorGeometry(QWidget *editor,
const QStyleOptionViewItem &option, const QModelIndex &index) const;
private:
std::vector<std::string> values;
}
【问题讨论】:
标签: c++ qt qcombobox qitemdelegate