works perfectly
cpp
{
Q_UNUSED(option);
Q_UNUSED(index);
MyComplexEditor *mce = new MyComplexEditor(parent);
connect(enDusukSatis, SIGNAL(triggered()), SLOT(test()));
mce->toolButton()->addAction(enDusukSatis);
//connect(mce->toolButton(), SIGNAL(clicked()), SLOT(test()));
return mce;
}
void ItemDelegate::test()
{
QMessageBox::information(0, tr
("information"), tr
("test"));
}
{
Q_UNUSED(index);
editor->setGeometry(option.rect);
}
QWidget *ItemDelegate::createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const
{
Q_UNUSED(option);
Q_UNUSED(index);
MyComplexEditor *mce = new MyComplexEditor(parent);
QAction *enDusukSatis = new QAction("test", mce->toolButton());
connect(enDusukSatis, SIGNAL(triggered()), SLOT(test()));
mce->toolButton()->addAction(enDusukSatis);
//connect(mce->toolButton(), SIGNAL(clicked()), SLOT(test()));
return mce;
}
void ItemDelegate::test()
{
QMessageBox::information(0, tr("information"), tr("test"));
}
void ItemDelegate::updateEditorGeometry(QWidget *editor, const QStyleOptionViewItem &option, const QModelIndex &index) const
{
Q_UNUSED(index);
editor->setGeometry(option.rect);
}
To copy to clipboard, switch view to plain text mode
h
class MyComplexEditor
: public QWidget{
Q_OBJECT
public:
{
m_toolButton->setText("...");
setFocusProxy(m_spinBox);
hbl->setMargin(0);
hbl->setSpacing(0);
hbl->addWidget(m_spinBox);
hbl->addWidget(m_toolButton);
}
QSpinBox *spinBox
() const { return m_spinBox;
} QToolButton *toolButton
() const { return m_toolButton;
}
private:
};
//-------------------------------------------------
{
Q_OBJECT
public:
private slots:
void test();
};
class MyComplexEditor: public QWidget
{
Q_OBJECT
public:
MyComplexEditor(QWidget *parent = 0) : QWidget(parent)
{
m_spinBox = new QSpinBox();
m_toolButton = new QToolButton();
m_toolButton->setText("...");
QHBoxLayout *hbl = new QHBoxLayout(this);
m_spinBox->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred);
m_toolButton->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Preferred);
setFocusProxy(m_spinBox);
hbl->setMargin(0);
hbl->setSpacing(0);
hbl->addWidget(m_spinBox);
hbl->addWidget(m_toolButton);
}
QSpinBox *spinBox() const { return m_spinBox; }
QToolButton *toolButton() const { return m_toolButton; }
private:
QSpinBox *m_spinBox;
QToolButton *m_toolButton;
};
//-------------------------------------------------
class ItemDelegate: public QItemDelegate
{
Q_OBJECT
public:
virtual QWidget *createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const;
virtual void updateEditorGeometry(QWidget *editor, const QStyleOptionViewItem &option, const QModelIndex &index) const;
private slots:
void test();
};
To copy to clipboard, switch view to plain text mode
Bookmarks