Russian Qt Forum

Qt => Model-View (MV) => Тема начата: raven1976 от Май 29, 2010, 19:40



Название: TableView прижать данные в колонке вправо
Отправлено: raven1976 от Май 29, 2010, 19:40
Qt 4.6
(подключаюсь к базе SQLite)

...
myModel = new QSqlTableModel(this);
...
ui->myTableView->setModel(myModel);
...

все работает нормально ...


но не нравится мне что в myTableView во всех колонках данные прижаты ВЛЕВО

хочу, чтобы в колонке с индексом 1 данные были прижаты ВПРАВО

наследую класс
                
(mainwindow.h) ------------------------------------------

class my_QStyledItemDelegate : public QStyledItemDelegate {
public:
    my_QStyledItemDelegate(QObject *parent = 0);

protected:
    void initStyleOption ( QStyleOptionViewItem * option, const QModelIndex & ) const;
    
};


(mainwindow.cpp) -----------------------------------------

my_QStyledItemDelegate::my_QStyledItemDelegate(QObject *parent):
    QStyledItemDelegate(parent)
{

}

//переопределяю виртуальную ф-цию
void my_QStyledItemDelegate::initStyleOption ( QStyleOptionViewItem * option, const QModelIndex & ) const
{
    option->displayAlignment = Qt::AlignRight;
}                                


// и теперь указываю, что переопределенный мной делегат должен действовать
// только на колонку 1

ui->myTableView->setItemDelegateForColumn(1, my_delegate);


так вот, вообще-то он действует, но не так как я хотел, вся колонка ПУСТАЯ ...

подскажите пожалуйста, что я не так делаю?








Название: Re: TableView прижать данные в колонке вправо
Отправлено: Kolobok от Май 29, 2010, 20:03
QAbstractItemModel::data ( const QModelIndex & index, int role = Qt::DisplayRole )
Qt::TextAlignmentRole


Название: Re: TableView прижать данные в колонке вправо
Отправлено: lit-uriy от Май 29, 2010, 21:12
>>вся колонка ПУСТАЯ
попробуй сначала вызвать метод базового класса (QStyledItemDelegate::initStyleOption), а затем свой код