Russian Qt Forum
Ноябрь 24, 2024, 04:52 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: TableView прижать данные в колонке вправо  (Прочитано 3301 раз)
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);


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

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






Записан
Kolobok
Гость
« Ответ #1 : Май 29, 2010, 20:03 »

QAbstractItemModel::data ( const QModelIndex & index, int role = Qt::DisplayRole )
Qt::TextAlignmentRole
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #2 : Май 29, 2010, 21:12 »

>>вся колонка ПУСТАЯ
попробуй сначала вызвать метод базового класса (QStyledItemDelegate::initStyleOption), а затем свой код
Записан

Юра.
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.041 секунд. Запросов: 22.