Просмотр сообщений
|
Страниц: 1 ... 4 5 [6] 7 8 ... 21
|
77
|
Qt / Пользовательский интерфейс (GUI) / Re: Отжать кнопку QToolButton
|
: Октябрь 01, 2014, 22:08
|
я так понял ТС хочет, чтобы при нажатии на любую из кнопок выпадающего меню это самое меню пропадало
именно так! а то, что она прекрасно "отжимается" при клике вне области - это хорошо, но этого мало, она и у меня отжимается так. К слову qt 4.8.
|
|
|
80
|
Qt / Пользовательский интерфейс (GUI) / Re: Отжать кнопку QToolButton
|
: Октябрь 01, 2014, 12:35
|
а, что значит заданным меню, это какое поле??! параметры меню для кнопки я никакие специально не задавал..
Понятно. Похоже Qt за тебя это сделал. Попробуй C++ (Qt) ui->btnQuickFreq->actions().first()->menu()->hide();
не помогает вылетает! Наврят ли сделал qDebug() << ui->btnQuickFreq->menu(); ===> QObject(0x0)
|
|
|
81
|
Qt / Пользовательский интерфейс (GUI) / Re: Отжать кнопку QToolButton
|
: Октябрь 01, 2014, 12:07
|
не нравится ему так - вылетает программа..
Коли ui->btnQuickFreq - QToolButton c выставленным popupMode() и заданным menu(), то значит что-то накосячил или недоговариваешь. Да, ui->btnQuickFreq - это кнопка QToolButton, созданная в дизайнере и у нее popupMode = InstantPopup, есть еще MenuButtonPopup, тогда кнопка выглядит не очень-то красиво, но даже с этим свойством вылетает при попытке спрятать меню. а, что значит заданным меню, это какое поле??! параметры меню для кнопки я никакие специально не задавал..
|
|
|
82
|
Qt / Пользовательский интерфейс (GUI) / Re: Отжать кнопку QToolButton
|
: Октябрь 01, 2014, 11:46
|
ui->btnQuickFreq - это кнопка QToolButton
Ну так и делай C++ (Qt) ui->btnQuickFreq->menu()->hide().
не нравится ему так - вылетает программа..оно то вроде как меню у кнопки (выглядит так), но туда засунут целый QWidget. может поэтому
|
|
|
83
|
Qt / Пользовательский интерфейс (GUI) / Re: Отжать кнопку QToolButton
|
: Октябрь 01, 2014, 11:39
|
при чем тут: ui->btnQuickFreq - это QToolButton когда в QButtonGroup вы запихиваете QPushButton'ы наведите порядок в коде, и приведенный мной код будет работать. можно еще так: C++ (Qt) group->setExclusive(false); group->checkedButton()->setChecked(false); group->setExclusive(true);
так, а что не понятно из кода? ui->btnQuickFreq - это кнопка QToolButton(это я уточнил в самом первом посте). и именно ее мне нужно отжать, а не кнопки группы. т.е. я нажал, на Ча, Чб.. и у меня должна отжаться кнопка БЧ(ui->btnQuickFreq) и спрятаться виджет с кнопками Ча, Чб.. То что нужно отжимать кн-ки Ча, Чб.. так это работает из-за группы и оно реализовано. мне нужно отжать как бы "родителя" - кн-ку БЧ и спрятать виджет!
|
|
|
84
|
Qt / Пользовательский интерфейс (GUI) / Re: Отжать кнопку QToolButton
|
: Сентябрь 30, 2014, 22:10
|
есть еще варианты??
А в чём сложность найти от нажатой кнопки (Ча, Чb..) QMenu и спратать его? Не совсем понял мысль..Кнопки делались так wChangeQFreq = new QWidget(this); btnGroupQuickFreq = new QButtonGroup(this); btnGroupQuickFreq->setObjectName("btnGroupQuickFreq");
QHBoxLayout *layout = new QHBoxLayout(wChangeQFreq); layout->setMargin (2); layout->setSpacing(2);
for(int i = 0; i < NUMB_BTN_QUICK_FREQ; i++) { btnFreqQuickSelector.push_back(new QPushButton(this)); btnFreqQuickSelector[i]->setObjectName(QString("btnFreqQS%1").arg(i)); btnFreqQuickSelector[i]->setText(aws->workFreqsAWS.titleNameQuickFreqs[i]); btnFreqQuickSelector[i]->setFixedSize(40,40); btnFreqQuickSelector[i]->setCheckable(true);
layout->addWidget(btnFreqQuickSelector[i]); btnGroupQuickFreq->addButton(btnFreqQuickSelector[i],i); }
QWidgetAction *actQFreq = new QWidgetAction(this); actQFreq->setDefaultWidget(wChangeQFreq); ui->btnQuickFreq->addAction(actQFreq);
Вы предлагаете сделать что-то типо: QMenu *menu = btnFreqQuickSelector[id_btn]->menu(); menu->hide();
так вылетает на hide()! Или как?
|
|
|
86
|
Qt / Пользовательский интерфейс (GUI) / Re: Отжать кнопку QToolButton
|
: Сентябрь 30, 2014, 11:35
|
Кнопки объедены в QButtonGroup? если да, то так: C++ (Qt) group->setExclusive(false); button->setChecked(false); group->setExclusive(true);
да, объеденены в btnGroupQuickFreq. но это не помогло кнопка не отжимается и виджет не прячется!
|
|
|
89
|
Qt / Пользовательский интерфейс (GUI) / Re: Изменение цвета иконки
|
: Март 23, 2014, 14:49
|
Спасибо за разъяснения.. QIcon tmpIcon; if(state) { tmpIcon.addPixmap(aws->gui->mToolBar->iconInd_M->pixmap(40,40, QIcon::Active)); aws->gui->mToolBar->btnTypeInd_M->setIcon(tmpIcon); } else { tmpIcon.addPixmap(aws->gui->mToolBar->iconInd_M->pixmap(40,40, QIcon::Disabled)); aws->gui->mToolBar->btnTypeInd_M->setIcon(tmpIcon); }
так работает (в слоте обрабоки нажатия на кнопку меняю состояние с Active на Disabled), так этот механизм и должен использоваться? или при инициализации кнопки можно задать состояния иконки при нажатой/отжатой кнопки, а не делать это в обработке? на что влияют флаги QIcon::Off и QIcon::On, не на состояние кнопки? не могу понять.. Потому что, если при инициализации писать btnScaleUp = new QPushButton(this); btnScaleUp->setCheckable(true); QIcon tmpIcon; QIcon iconBtnScaleUp(QPixmap(":/img/zoomin.png")); tmpIcon.addPixmap(iconBtnScaleUp.pixmap(40,40, QIcon::Active, QIcon::On)); tmpIcon.addPixmap(iconBtnScaleUp.pixmap(40,40, QIcon::Disabled,QIcon::Off)); btnScaleUp->setIcon(tmpIcon);
btnScaleUp->setIconSize(QSize(32,32)); btnScaleUp->setMinimumSize(sizeBtn); btnScaleUp->setMaximumSize(sizeBtn); addWidget(btnScaleUp);
то иконка всегда Disabled и состояние ее не меняется..
|
|
|
90
|
Qt / Общие вопросы / Re: Шрифты в приложении под Linux
|
: Март 21, 2014, 15:35
|
две qt в системе? если примеры из новой qt работают верно, то возможно твой проект собрался/запускается не с теми библиотеками
я ставил QtSdk-offline-linux-x86-v1.2.1 там, да 2 версии идет (4.7 и 4. .. так а как проверить правильность библиотек или хотя бы какие шрифты используются в версии 4.7?
|
|
|
|
|