Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: pacmanoid от Август 22, 2006, 13:45



Название: Qt4 - Как отучить виджет не реагировать на события кл. и мыш
Отправлено: pacmanoid от Август 22, 2006, 13:45
Использую Qt4. Сейчас пишу свой виджет. В виджете имеются различные элементы ввода (объекты QLineEdit и QTableWidget). Необходимо реализовать режим, при котором во всем виджете нельзя ничего изменить, тоесть чтобы вид оставался тотже а например в объекте QLineEdit нельзя было ничего ввести и в объекте QTableWidget нельзя было тоже ничего сделать, даже переместиться по ячейкам. Тоесть виджет в таком режиме будет только показывать инвормацию. Пробовал чтото типа setDisabled( bool )  или setEnabled( bool ), эфект тот но только палитра меняется. Хотелось бы тогоже но без каких быто внешних изменений. Можно конечно перехватить все его event-ы но наверное есть уже готовая функция, кто знает подскажите пожалуста. В C++Builder-е помоему была.


Название: Qt4 - Как отучить виджет не реагировать на события кл. и мыш
Отправлено: bigirbis от Август 22, 2006, 14:08
Если подешевле: поменять палитру.
Если подороже: смотри eventFilter


Название: Qt4 - Как отучить виджет не реагировать на события кл. и мыш
Отправлено: pacmanoid от Август 22, 2006, 14:23
Цитата: "bigirbis"
Если подешевле: поменять палитру.
Если подороже: смотри eventFilter


А по подробнее можно?


Название: Qt4 - Как отучить виджет не реагировать на события кл. и мыш
Отправлено: ElderOrb от Август 22, 2006, 14:23
Qt Assistant->QLineEdit-> void setReadOnly ( bool )


Название: Qt4 - Как отучить виджет не реагировать на события кл. и мыш
Отправлено: bigirbis от Август 22, 2006, 16:49
Цитировать
Qt Assistant->QLineEdit-> void setReadOnly ( bool )

В этом случае возможен переход курсора по виджетам, а также внутри них.

По поводу палитры:

Код:
QPalette palette = lineEdit->palette();
palette->setCurrentColorGroup ( QPalette::Disabled );
palette->setColorGroup( QPalette::Disabled, windowText(),... );
lineEdit->setPalette( palette );

Немного нагромождено, особенно предпоследняя сточка.  :?