Russian Qt Forum
Май 01, 2024, 22:55 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: UFoldoutGroupBox  (Прочитано 6938 раз)
gil9red
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1805



Просмотр профиля WWW
« : Август 14, 2013, 07:42 »

Group box с возможностью сворачивания/разворачивания своего содержимого Улыбающийся
Вобщем, стандартный QGroupBox Улыбающийся
Код архипростенький, благодаря чему легко разобрать код и расширить его Улыбающийся

Код:
class UFoldoutGroupBox: public QGroupBox
{
    Q_OBJECT

public:
    UFoldoutGroupBox(QWidget *parent = 0)
        : QGroupBox(parent)
    {
        setCheckable(true);
        setChecked(true);
        setExpanded(true);

        connect(this, SIGNAL(toggled(bool)), SLOT(setExpanded(bool)));
    }

public slots:
    void setExpanded(bool expanded)
    {
        setFlat(!expanded);

        foreach(QWidget *child, findChildren <QWidget *> ())
            child->setVisible(expanded);
    }
};

UPD Исправил на setExpanded  Смеющийся
« Последнее редактирование: Август 14, 2013, 14:38 от gil9red » Записан

Bepec
Гость
« Ответ #1 : Август 14, 2013, 08:47 »

Нормальное решение, только checkbox скачет Улыбающийся
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4727



Просмотр профиля WWW
« Ответ #2 : Август 14, 2013, 10:13 »

слот правильнее назвать setExpanded.

в КДЕ есть штука поинтереснее, называется KExpandableGroupBox Подмигивающий
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Bepec
Гость
« Ответ #3 : Август 14, 2013, 10:24 »

Kambala покажите? КДЕ в глаза не видел ^.^
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4727



Просмотр профиля WWW
« Ответ #4 : Август 14, 2013, 12:18 »

http://bit.ly/19hopoN
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Bepec
Гость
« Ответ #5 : Август 14, 2013, 12:46 »

Очень приятно получить результаты по запросу "Expandable GroupBox". Мб чуть внимательнее станем друг к другу и не будем посылать в неверный поиск? Улыбающийся

Очень много говорит поиск - всего три картинки Веселый и 3 страницы результатов исходников.

<sarcasm>
Неужели так трудно кинуть ссылку на какую-либо известную вам картинку, которую вы найдетё за пару секунд?
Очень информативно, но я единственно не понял - где же он? Показает язык
</sarcasm>

https://www.google.com/search?btnG=1&pws=0&q=KExpandableGroupBox#bav=on.2,or.r_cp.r_qf.&ei=EVELUryGNoa74ASoz4DIAw&fp=952502cd83beaefa&nfpr=1&pws=0&q=KExpandableGroupBox&sa=X&ved=0CCkQvgUoAQ
https://www.google.com/search?q=KExpandableGroupBox&pws=0&nfpr=1&source=lnms&tbm=isch&sa=X&ei=RlELUsmuO4jh4QS9hYDYBw&ved=0CAcQ_AUoAQ&biw=1920&bih=1075

PS вполне вероятно, что он на первой картинке - тупо groupBox с убранной рамочкой?
« Последнее редактирование: Август 14, 2013, 12:49 от Bepec » Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4727



Просмотр профиля WWW
« Ответ #6 : Август 14, 2013, 13:13 »

я ж тебе имя класса написал, там (в моем гугле) почти все ссылки ведут на репозитории с кодом. выкладываю картинку из своего приложения (правда я слегка подпилил класс):
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Bepec
Гость
« Ответ #7 : Август 14, 2013, 13:25 »

Мне картинку надо было. А код то найдётся Улыбающийся

Ну да, обычный чекбокс с чуть изменённой отрисовкой Улыбающийся
Записан
gil9red
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1805



Просмотр профиля WWW
« Ответ #8 : Август 15, 2013, 09:06 »

Поиграл немного с стилями, и получилось немного улучшить Улыбающийся

Код:
 QGroupBox {
     border-radius: 10px;
 }

QGroupBox::title {
     subcontrol-origin: margin;
     subcontrol-position: top center; /* помещаем вверху по центру */
     padding: 0 3px;
 }

QGroupBox::indicator {
     width: 9px;
     height: 9px;
 }

 QGroupBox::indicator:unchecked {
     image: url(:/resource/close.png);
 }

 QGroupBox::indicator:checked {
     image: url(:/resource/open.png);
 }
Записан

gil9red
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1805



Просмотр профиля WWW
« Ответ #9 : Август 15, 2013, 09:07 »

Подскажите, как содержимое groupbox'а немного вниз опустить )
Записан

Bepec
Гость
« Ответ #10 : Август 15, 2013, 10:30 »

Поля установи сверху в Layout'e
Записан
Akon
Гость
« Ответ #11 : Август 15, 2013, 21:03 »

При вызове setVisible надо бы запоминать видимые контролы, а то при разворачивании невидимые станут видимыми.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.122 секунд. Запросов: 22.