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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Qt-4.1.4 Как задать региональные стандарты в приложении  (Прочитано 3503 раз)
pacmanoid
Гость
« : Сентябрь 15, 2006, 06:28 »

Использую QT-4.1.4.

Написал программу. Всебы хороше, но пользователь привык к национальным стандатрам, то есть вместо точек при вводе чисел он привык набирать запятые.

Также немогу поменять формат отображения даты в таблицах (В QTableView + QSqlQueryModel ). Поля отображающие даты, отображают их в английском формате представления, например 2006-09-06. А мне недо чтобы они представлялись в русском типа 06.09.2006.

Пожалуста, кто знает подскажите!!!!
Записан
Alexei
Гость
« Ответ #1 : Сентябрь 15, 2006, 07:23 »

Для отображения даты можно использовать свой делегат:

Код:

class SqlDelegate : public QItemDelegate
{
public:
  SqlDelegate(QObject* parent = 0);
  void paint(QPainter* painter, const QStyleOptionViewItem& option, const QModelIndex& index) const;
};

void SqlDelegate::paint(QPainter* painter, const QStyleOptionViewItem& option,
  const QModelIndex& index) const
{
  if (index.data().type() == QVariant::Date || index.data().type() == QVariant::DateTime)
  {
    QStyleOptionViewItem opt = option;
    QDate dt = index.data().toDate();
    QString s = dt.toString("dd.MM.yyyy");
    QVariant value = index.data(Qt::TextColorRole);
    if (value.isValid() && qvariant_cast<QColor>(value).isValid())
      opt.palette.setColor(QPalette::Text, qvariant_cast<QColor>(value));
    opt.displayAlignment = Qt::AlignVCenter | Qt::AlignHCenter;
    drawDisplay(painter, opt, opt.rect, s);
    drawFocus(painter, opt, opt.rect);
    return;
  }
  QItemDelegate::paint(painter, option, index);
}
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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