Название: Как заблокировать QAction Отправлено: juvf от Сентября 11, 2020, 11:18 Добрый день
Как заблокировать QAction на тулбаре, чтобы он был нажат и не отжимался? Чтоб он не отжимался сделал ему свойство setCheckable(true); Если его задизейблить, то он поменяет вид на серый. Мне нужно чтобы вид был как у активного, но чтобы нельзя было его отжать и чтобы он не слал сигналы. Название: Re: Как заблокировать QAction Отправлено: tux от Сентября 11, 2020, 11:23 Можно картинку вместо него поставить, раз уж так хочется. :) По смыслу, если элемент есть и он active, то он сигналы слать по-любому будет.
Ну, либо просто сделать свой элемент на базе QAction и именно в нём всё и отрабатывать. И состояние "нажатости" и "чтобы не слал сигналы". Название: Re: Как заблокировать QAction Отправлено: juvf от Сентября 11, 2020, 11:44 смысыл такой, чтобы элемент был неактивный и видимый.
Например в Photon Application Builder (GUI для QNX) если виджет заблокировать, то он вид не изменит. Чтобы он был зетенён, нужно ещё ставить свойство *::ghost. Т.е. для обычного Disable нужно два свойства ставить, что-то типа PtWidget->setProperty( Disabled | Ghost); в Qt это просто QWidget->setEnabled(false); В Photon можно просто указать PtWidget->setProperty( Disabled ) - виджет заблокируется, но вид у него будет как у активного. Как это сделать в Qt? У QPushBytton есть setStyle(...).... можно в стайлах покапаться. У экшена нет стайла. Как QAction сделать видимым и заблокированным? |