patrik08
26th February 2007, 21:44
How i can draw a rect 22x22 to make clickabel && emit a signal to parent QWidget
like a ....
QPixmap pix(22, 22);
pix.fill(normalcolor); ... ?
I tested to put in direct a QToolButton but loop to infinite..... and is a setIndexWidget....
void BaseDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const
{
/////////qDebug() << "### index-column " << index.column();
if (index.column() == 0) {
/* not on edit only flags |= Qt::ItemIsSelectable; */
QString numer = index.model()->data(index, Qt::DisplayRole).toString();
QString text = QString("(%1)").arg(numer);
QToolButton * button1 = new QToolButton(tas);
button1->setText(text);
tas->setIndexWidget(index,button1);
} else if (index.column() == 1) {
/* not on edit only flags |= Qt::ItemIsSelectable; */
QString coder = index.model()->data(index, Qt::DisplayRole).toString();
QStyleOptionViewItem myOption = option;
myOption.displayAlignment = Qt::AlignLeft | Qt::AlignVCenter;
myOption.palette.setColor( QPalette::Text , Qt::red );
drawDisplay(painter, myOption, myOption.rect,coder);
drawFocus(painter, myOption, myOption.rect);
}
...............
}
/* header */
class BaseDelegate : public QSqlRelationalDelegate
{
Q_OBJECT
public:
BaseDelegate( QTableView *ta , QObject *parent );
void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const;
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;
private slots:
private:
QTableView *tas;
};
like a ....
QPixmap pix(22, 22);
pix.fill(normalcolor); ... ?
I tested to put in direct a QToolButton but loop to infinite..... and is a setIndexWidget....
void BaseDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const
{
/////////qDebug() << "### index-column " << index.column();
if (index.column() == 0) {
/* not on edit only flags |= Qt::ItemIsSelectable; */
QString numer = index.model()->data(index, Qt::DisplayRole).toString();
QString text = QString("(%1)").arg(numer);
QToolButton * button1 = new QToolButton(tas);
button1->setText(text);
tas->setIndexWidget(index,button1);
} else if (index.column() == 1) {
/* not on edit only flags |= Qt::ItemIsSelectable; */
QString coder = index.model()->data(index, Qt::DisplayRole).toString();
QStyleOptionViewItem myOption = option;
myOption.displayAlignment = Qt::AlignLeft | Qt::AlignVCenter;
myOption.palette.setColor( QPalette::Text , Qt::red );
drawDisplay(painter, myOption, myOption.rect,coder);
drawFocus(painter, myOption, myOption.rect);
}
...............
}
/* header */
class BaseDelegate : public QSqlRelationalDelegate
{
Q_OBJECT
public:
BaseDelegate( QTableView *ta , QObject *parent );
void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const;
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;
private slots:
private:
QTableView *tas;
};