Как мне создать маску для числового поля? |
Здравствуйте, гость ( Вход | Регистрация )
Как мне создать маску для числового поля? |
mva |
13.9.2009, 16:42
Сообщение
#1
|
Участник Группа: Участник Сообщений: 104 Регистрация: 15.3.2009 Из: Киров Пользователь №: 615 Спасибо сказали: 3 раз(а) Репутация: 0 |
Доброго времени суток всем! Поздравляю всех с Днем Программиста!
В моей БД на PostgreSQL в некоторых таблицах есть числовые поля типа NUMERIC(10, 3). Ну или NUMERIC(12, 2), например. При использовании QTableView они нормально отображаются, с тремя или двумя знаками после запятой. Но при редактировании этих полей не работает маска ввода, т.е. в поле можно вводить все что угодно. Хотелось бы, чтобы пользователь сразу видел маску ввода чисел. Проблема в том, что я не знаю, где эту маску можно получить. Фунция QSqlField::precision(), на которую я рассчитывал, возвращает -1. Кто-нибудь может помочь? |
|
|
trdm |
14.9.2009, 13:14
Сообщение
#2
|
Дмитрий Трошин Группа: Участник Сообщений: 575 Регистрация: 12.1.2008 Пользователь №: 68 Спасибо сказали: 21 раз(а) Репутация: 6 |
Маску не извлекают, а вычисляют...
приблизительно так:
это если там нумерик. Для других типов тот же метод. Сообщение отредактировал trdm - 14.9.2009, 13:16 |
|
|
mva |
14.9.2009, 15:04
Сообщение
#3
|
Участник Группа: Участник Сообщений: 104 Регистрация: 15.3.2009 Из: Киров Пользователь №: 615 Спасибо сказали: 3 раз(а) Репутация: 0 |
Маску не извлекают, а вычисляют... Если бы я знал, где взять "псЦел" и "псДробн" для данного поля в Qt4 то я бы вычислил. P.S так же можешь попробовать сделать так же,как делает Постгря.Получать типы полей(по запросу.У тебя выведутся все поля,примерно в таком в форме скажем 5,2;3,1; ну короче нумерики),и ты тогда автоматом ставишь запятую там,где это надо.Получаешь первый символ,отступаешь в поле данное кол-во символов,ставишь запятую(отделение целой от дробной). Затем складываешь два числа(целой и дробной части,и +1(запятая),и получаешь размерность поля. setLength(и устанавливаешь). И вот твоя маска готова.Алгоритм один,а использовать можно для всех полей... Не совсем понял. А если записей в таблице нет? |
|
|
Текстовая версия | Сейчас: 15.1.2025, 2:39 |