Название: [РЕШЕНО] Отжать кнопку QToolButton Отправлено: Vladimir от Сентябрь 29, 2014, 16:02 Всем привет!
Подскажите, как отжать кнопку QToolButton и спрятать встроенный в нее QWidget при нажатии на одну из кнопок Ча, Чb.. ui->btnQuickFreq->setChecked(false); не помогает! :-\ ui->btnQuickFreq - это QToolButton. Название: Re: Отжать кнопку QToolButton Отправлено: Johnik от Сентябрь 29, 2014, 23:07 Кнопки объедены в QButtonGroup?
если да, то так: Код
Название: Re: Отжать кнопку QToolButton Отправлено: Vladimir от Сентябрь 30, 2014, 11:35 Кнопки объедены в QButtonGroup? если да, то так: Код
да, объеденены в btnGroupQuickFreq. но это не помогло :-[ кнопка не отжимается и виджет не прячется! Название: Re: Отжать кнопку QToolButton Отправлено: Vladimir от Сентябрь 30, 2014, 16:28 есть еще варианты??
Название: Re: Отжать кнопку QToolButton Отправлено: GreatSnake от Сентябрь 30, 2014, 16:57 есть еще варианты?? А в чём сложность найти от нажатой кнопки (Ча, Чb..) QMenu и спратать его?Название: Re: Отжать кнопку QToolButton Отправлено: Vladimir от Сентябрь 30, 2014, 22:10 есть еще варианты?? А в чём сложность найти от нажатой кнопки (Ча, Чb..) QMenu и спратать его?Не совсем понял мысль..Кнопки делались так Код: wChangeQFreq = new QWidget(this); Вы предлагаете сделать что-то типо: Код: QMenu *menu = btnFreqQuickSelector[id_btn]->menu(); Название: Re: Отжать кнопку QToolButton Отправлено: Johnik от Октябрь 01, 2014, 06:42 при чем тут:
Цитировать ui->btnQuickFreq - это QToolButton когда в QButtonGroup вы запихиваете QPushButton'ынаведите порядок в коде, и приведенный мной код будет работать. можно еще так: Код
Название: Re: Отжать кнопку QToolButton Отправлено: GreatSnake от Октябрь 01, 2014, 09:59 так вылетает на hide()! Или как? А никак! Коли не в состоянии привести нормальный код.Название: Re: Отжать кнопку QToolButton Отправлено: Vladimir от Октябрь 01, 2014, 11:39 при чем тут: Цитировать ui->btnQuickFreq - это QToolButton когда в QButtonGroup вы запихиваете QPushButton'ынаведите порядок в коде, и приведенный мной код будет работать. можно еще так: Код
так, а что не понятно из кода? ui->btnQuickFreq - это кнопка QToolButton(это я уточнил в самом первом посте). и именно ее мне нужно отжать, а не кнопки группы. т.е. я нажал, на Ча, Чб.. и у меня должна отжаться кнопка БЧ(ui->btnQuickFreq) и спрятаться виджет с кнопками Ча, Чб.. То что нужно отжимать кн-ки Ча, Чб.. так это работает из-за группы и оно реализовано. мне нужно отжать как бы "родителя" - кн-ку БЧ и спрятать виджет! Название: Re: Отжать кнопку QToolButton Отправлено: GreatSnake от Октябрь 01, 2014, 11:43 ui->btnQuickFreq - это кнопка QToolButton Ну так и делайКод
Название: Re: Отжать кнопку QToolButton Отправлено: Vladimir от Октябрь 01, 2014, 11:46 ui->btnQuickFreq - это кнопка QToolButton Ну так и делайКод
не нравится ему так - вылетает программа..оно то вроде как меню у кнопки (выглядит так), но туда засунут целый QWidget. может поэтому Название: Re: Отжать кнопку QToolButton Отправлено: GreatSnake от Октябрь 01, 2014, 11:53 не нравится ему так - вылетает программа.. Коли ui->btnQuickFreq - QToolButton c выставленным popupMode() и заданным menu(), то значит что-то накосячил или недоговариваешь.UPD оно то вроде как меню у кнопки (выглядит так), но туда засунут целый QWidget. Нет не поэтому.может поэтому Название: Re: Отжать кнопку QToolButton Отправлено: Vladimir от Октябрь 01, 2014, 12:07 не нравится ему так - вылетает программа.. Коли ui->btnQuickFreq - QToolButton c выставленным popupMode() и заданным menu(), то значит что-то накосячил или недоговариваешь.Да, ui->btnQuickFreq - это кнопка QToolButton, созданная в дизайнере и у нее popupMode = InstantPopup, есть еще MenuButtonPopup, тогда кнопка выглядит не очень-то красиво, но даже с этим свойством вылетает при попытке спрятать меню. а, что значит заданным меню, это какое поле??! параметры меню для кнопки я никакие специально не задавал.. Название: Re: Отжать кнопку QToolButton Отправлено: GreatSnake от Октябрь 01, 2014, 12:18 а, что значит заданным меню, это какое поле??! параметры меню для кнопки я никакие специально не задавал.. Понятно. Похоже Qt за тебя это сделал.Попробуй Код
Название: Re: Отжать кнопку QToolButton Отправлено: Vladimir от Октябрь 01, 2014, 12:35 а, что значит заданным меню, это какое поле??! параметры меню для кнопки я никакие специально не задавал.. Понятно. Похоже Qt за тебя это сделал.Попробуй Код
не помогает :-\ вылетает! Наврят ли сделал qDebug() << ui->btnQuickFreq->menu(); ===> QObject(0x0) Название: Re: Отжать кнопку QToolButton Отправлено: Bepec от Октябрь 01, 2014, 12:40 диалоги слепых с глухими :) Код - код всё решит.
Название: Re: Отжать кнопку QToolButton Отправлено: Vladimir от Октябрь 01, 2014, 13:19 диалоги слепых с глухими :) Код - код всё решит. =)) я же приводил код, смотри выше! Кнопка QToolButton создана в дизайнере, все что в нее помещается в коде выше! Название: Re: Отжать кнопку QToolButton Отправлено: Bepec от Октябрь 01, 2014, 15:06 Лично я вижу кусок кода и картинку с кнопками. Код. Проект. В архиве. CPP, H, UI, PRO, PRI, PRЯ.
Вот что имеется в виду под кодом, а не тот жалкий кусочек, что вы даёте. Название: Re: Отжать кнопку QToolButton Отправлено: Vladimir от Октябрь 01, 2014, 16:10 окай. держите мин проект.
Название: Re: Отжать кнопку QToolButton Отправлено: Johnik от Октябрь 01, 2014, 21:45 кнопка "btnQuickFreq" прекрасно "отжимается" при клике вне области этой кнопки, даже с закомментированным:
Код
qt 5.3.1 Название: Re: Отжать кнопку QToolButton Отправлено: kambala от Октябрь 01, 2014, 22:04 я так понял ТС хочет, чтобы при нажатии на любую из кнопок выпадающего меню это самое меню пропадало
Название: Re: Отжать кнопку QToolButton Отправлено: Vladimir от Октябрь 01, 2014, 22:08 я так понял ТС хочет, чтобы при нажатии на любую из кнопок выпадающего меню это самое меню пропадало именно так! а то, что она прекрасно "отжимается" при клике вне области - это хорошо, но этого мало, она и у меня отжимается так. К слову qt 4.8. Название: Re: Отжать кнопку QToolButton Отправлено: kambala от Октябрь 01, 2014, 23:50 может надо WidgetAction'у сделать
Код ? Название: Re: Отжать кнопку QToolButton Отправлено: Vladimir от Октябрь 02, 2014, 09:16 может надо WidgetAction'у сделать Код ? эффект такой же как wChangeQFreq->hide(); - кнопки прячутся, а вот меню все равно остается открытым.. Название: Re: Отжать кнопку QToolButton Отправлено: GreatSnake от Октябрь 02, 2014, 09:40 Пока видится самое простое решение - это самому создать QMenu и добавить в него actQFreq.
Меню через setMenu() установить на кнопку btnQuickFreq. Прятать меню через btnQuickFreq->menu()->hide(). Название: Re: Отжать кнопку QToolButton Отправлено: Vladimir от Октябрь 02, 2014, 09:48 Пока видится самое простое решение - это самому создать QMenu и добавить в него actQFreq. Меню через setMenu() установить на кнопку btnQuickFreq. Прятать меню через btnQuickFreq->menu()->hide(). КУЛ! :) Работает) Всем спасибо за участие) Название: Re: [РЕШЕНО] Отжать кнопку QToolButton Отправлено: Bepec от Октябрь 02, 2014, 11:43 4 загрузки проекта и решение найдено :D
Название: Re: [РЕШЕНО] Отжать кнопку QToolButton Отправлено: GreatSnake от Октябрь 02, 2014, 11:53 4 загрузки проекта и решение найдено :D Решение было найдено и без загрузки :)Название: Re: [РЕШЕНО] Отжать кнопку QToolButton Отправлено: Bepec от Октябрь 02, 2014, 12:01 Зато помогло задать наводящие вопросы :)
Название: Re: [РЕШЕНО] Отжать кнопку QToolButton Отправлено: GreatSnake от Октябрь 02, 2014, 12:04 Зато помогло задать наводящие вопросы :) На самом деле нет. Т.к. решение было предложено сразу же.Единственный момент, что для меня оказалось сюрпризом, что Qt может сам создавать меню для кнопки. Название: Re: [РЕШЕНО] Отжать кнопку QToolButton Отправлено: Bepec от Октябрь 02, 2014, 12:20 4 загрузки было - факт. Появились дополнительные вопросы - факт.
Вывод - кому то это было надо :D |