Название: Банальный вопрос по QTableView Отправлено: vasasol от Ноябрь 06, 2011, 18:01 Здравствуйте!
Вот банальный вопрос: есть QTableView и в колонках с 5 по 10 и в строках с 20 по 30 отображаются числовые значения. Сам вопрос: как в этих ячейка (в указанном диапазоне) установить маску на эти числа? Название: Re: Банальный вопрос по QTableView Отправлено: madRoger от Ноябрь 06, 2011, 19:18 Если нужна маска ввода числа, то можно реализовать делегат для ячейки, содержащий поле ввода QLineEdit. В делегате при создании поля ввода указать маску ввода с помощью QLineEdit::setInputMask.
Цитировать ....и в колонках с 5 по 10 и в строках с 20 по 30.... Тут сложнее, потому что присвоить делегат конкретной ячейке нельзя (можно либо всей колонке, либо всей строке). Можно попробовать поиграть с перекрытием делегатов. Название: Re: Банальный вопрос по QTableView Отправлено: kambala от Ноябрь 06, 2011, 21:46 создавать в своем делегате QLineEdit не нужно - стандартный делегат и так содержит его, поэтому надо просто взять существующий и установить ему маску
Название: Re: Банальный вопрос по QTableView Отправлено: madRoger от Ноябрь 06, 2011, 23:46 Цитировать надо просто взять существующий и установить ему маску kambala, а как работать с существующим и какой класс ты имеешь ввиду под стандартным делегатом ? Название: Re: Банальный вопрос по QTableView Отправлено: vasasol от Ноябрь 06, 2011, 23:49 Если нужна маска ввода числа, то можно реализовать делегат для ячейки, содержащий поле ввода QLineEdit. В делегате при создании поля ввода указать маску ввода с помощью QLineEdit::setInputMask. В том и дело, что только выбранному диапазону ячеекЦитировать ....и в колонках с 5 по 10 и в строках с 20 по 30.... Тут сложнее, потому что присвоить делегат конкретной ячейке нельзя (можно либо всей колонке, либо всей строке). Можно попробовать поиграть с перекрытием делегатов. Название: Re: Банальный вопрос по QTableView Отправлено: madRoger от Ноябрь 06, 2011, 23:59 По поводу диапазона - сначала установить делегат с маской для всего QTableView, а потом исключить ненужные столбцы и строки, установив для них стандартный QItemDelegate.
kambala пишет, что можно работать со стандартным делегатом (вероятно QItemDelegate), установив для него маску. Если это реально, то все вообще просто. Название: Re: Банальный вопрос по QTableView Отправлено: kambala от Ноябрь 07, 2011, 00:32 я немного перепутал - я когда-то делал подобное для редактируемой ячейки: наследовался от QItemDelegate, переопределял createEditor(), в нем получал строку ввода через QItemDelegate::createEditor() и ей уже задавал нужные мне свойства. а вот насчет чисто отображения - не знаю, наверное таки придется добавлять QLineEdit самому.
да, и щас рекомендуют использовать QStyledItemDelegate в качестве базового класса. Название: Re: Банальный вопрос по QTableView Отправлено: madRoger от Ноябрь 07, 2011, 09:47 Как я понял, в данном случае речь идет о маске ввода, соответственно, ячейки будут редактироваться. Если бы была нужна маска для отображения, делегат вообще не нужен.
Название: Re: Банальный вопрос по QTableView Отправлено: vasasol от Ноябрь 07, 2011, 12:35 Как я понял, в данном случае речь идет о маске ввода, соответственно, ячейки будут редактироваться. Если бы была нужна маска для отображения, делегат вообще не нужен. Маска нужна для отображенияНазвание: Re: Банальный вопрос по QTableView Отправлено: madRoger от Ноябрь 07, 2011, 13:16 QString::number
Название: Re: Банальный вопрос по QTableView Отправлено: vasasol от Ноябрь 07, 2011, 17:06 QString::number Это где прикручивается? почему-то значения int = 123456789 непонятно иногда отображаются в виде 1.2+Е..... |