Название: Кнопки и setDown() Отправлено: serg_hd от Ноября 24, 2009, 21:56 Всем привет. Есть 2 кнопки, например "start" и "stop". При применении setDown(true) к "start" она вдавливается, если применять к "stop" кнопка "start" соответственно выдавливается, т.е. принимает своё первоначальное состояние, ну и наоборот. Проблема в том, что:
1) когда кнопки вдавлены, и в это время на них кликать, сигналы всё равно от них испускаются - это не нужно. 2) если на форме одной кнопке назначить setDown(true), а рядом с ней кликнуть на другую (или переключится на другой таб на форме, потом возвратиться назад), то первая "выдавится". Есть какие-нибудь предложения, в какую сторону хотя бы думать? п.с. извиняюсь если что непонятно изложил, использую qt jambi Название: Re: Кнопки и setDown() Отправлено: break от Ноября 25, 2009, 03:30 Цитировать 1) когда кнопки вдавлены, и в это время на них кликать, сигналы всё равно от них испускаются - это не нужно. 2) если на форме одной кнопке назначить setDown(true), а рядом с ней кликнуть на другую (или переключится на другой таб на форме, потом возвратиться назад), то первая "выдавится". Да особо не понятно в чем проблема 1) получая сигнал проверяй что кнопка уже вдавлена и делай return - получить объект от которого произошел вызов слота можно через QObject::sender 2) делай кнопки checkable=true и вручную в обработчике каждой отжимай другую через setChecked и ничего само никогда не буудет отжиматься.. Название: Re: Кнопки и setDown() Отправлено: spectre71 от Ноября 25, 2009, 10:33 2) делай кнопки checkable=true и вручную в обработчике каждой отжимай другую через setChecked и ничего само никогда не буудет отжиматься.. Вообще-то для таких целей есть QButtonGroup, QActionGroup, QGroupBox Название: Re: Кнопки и setDown() Отправлено: serg_hd от Ноября 25, 2009, 15:18 setChecked вдавливает кнопку и setDown - в чём разница? (наверно в том, что setChecked() удобно использовать при QButtonGroup, т.е. выбрана ведь может быть только одна в то время как setDown() может быть применена ко всем из QButtonGroup)
Название: Re: Кнопки и setDown() Отправлено: niXman от Ноября 25, 2009, 15:26 Организовать RS-тригер(из области электроники).
А по поводу: "сигналы всё равно от них испускаются - это не нужно" - либо сабкласиться, либо installEventFilter(), и отлавливать сигналы типа clicked() и т.п. По поводу: "если на форме одной кнопке назначить setDown(true), а рядом с ней кликнуть на другую (или переключится на другой таб на форме, потом возвратиться назад), то первая "выдавится"" - нужно посмотреть какие сигналы испускаются. От этого и плясать, аля QEvent::accept() Название: Re: Кнопки и setDown() Отправлено: spectre71 от Ноября 25, 2009, 17:33 Организовать RS-тригер(из области электроники). А по поводу: "сигналы всё равно от них испускаются - это не нужно" - либо сабкласиться, либо installEventFilter(), и отлавливать сигналы типа clicked() и т.п. По поводу: "если на форме одной кнопке назначить setDown(true), а рядом с ней кликнуть на другую (или переключится на другой таб на форме, потом возвратиться назад), то первая "выдавится"" - нужно посмотреть какие сигналы испускаются. От этого и плясать, аля QEvent::accept() Не пудри мозги. QButtonGroup, QActionGroup, QGroupBox Название: Re: Кнопки и setDown() Отправлено: niXman от Ноября 25, 2009, 17:35 Организовать RS-тригер(из области электроники). А по поводу: "сигналы всё равно от них испускаются - это не нужно" - либо сабкласиться, либо installEventFilter(), и отлавливать сигналы типа clicked() и т.п. По поводу: "если на форме одной кнопке назначить setDown(true), а рядом с ней кликнуть на другую (или переключится на другой таб на форме, потом возвратиться назад), то первая "выдавится"" - нужно посмотреть какие сигналы испускаются. От этого и плясать, аля QEvent::accept() Не пудри мозги. QButtonGroup, QActionGroup, QGroupBox Не флуди! Тебя все "слышали". Это мое мнение. Название: Re: Кнопки и setDown() Отправлено: spectre71 от Ноября 25, 2009, 17:44 Организовать RS-тригер(из области электроники). А по поводу: "сигналы всё равно от них испускаются - это не нужно" - либо сабкласиться, либо installEventFilter(), и отлавливать сигналы типа clicked() и т.п. По поводу: "если на форме одной кнопке назначить setDown(true), а рядом с ней кликнуть на другую (или переключится на другой таб на форме, потом возвратиться назад), то первая "выдавится"" - нужно посмотреть какие сигналы испускаются. От этого и плясать, аля QEvent::accept() Не пудри мозги. QButtonGroup, QActionGroup, QGroupBox Не флуди! Тебя все "слышали". Это мое мнение. Раз не понимаешь как простым способом решается задача нечего лезть, поскольку простой ответ уже был дан, а ты только сбиваешь человека с толку. Название: Re: Кнопки и setDown() Отправлено: niXman от Ноября 25, 2009, 18:37 Организовать RS-тригер(из области электроники). А по поводу: "сигналы всё равно от них испускаются - это не нужно" - либо сабкласиться, либо installEventFilter(), и отлавливать сигналы типа clicked() и т.п. По поводу: "если на форме одной кнопке назначить setDown(true), а рядом с ней кликнуть на другую (или переключится на другой таб на форме, потом возвратиться назад), то первая "выдавится"" - нужно посмотреть какие сигналы испускаются. От этого и плясать, аля QEvent::accept() Не пудри мозги. QButtonGroup, QActionGroup, QGroupBox Не флуди! Тебя все "слышали". Это мое мнение. Раз не понимаешь как простым способом решается задача нечего лезть, поскольку простой ответ уже был дан, а ты только сбиваешь человека с толку. У нас странна свободная, мнение высказывать не запрещено. А если еще и учесть что это форум, то уухх...он же для того и создан! Уау! Название: Re: Кнопки и setDown() Отправлено: serg_hd от Ноября 25, 2009, 18:46 Для взаимоисключающего нажатия применил QButtonGroup. isChecked() - для выяснения состояния кнопки (слать сигнал или нет). Вкрадце:
Код: QButtonGroup bgroup = new QButtonGroup(tab); Код: _form.startButton.pressed.connect(this, "startThreads()"); Код: public synchronized void startThreads() |