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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: ScrollArea без scrollbar'ов  (Прочитано 2810 раз)
AfterEarth
Гость
« : Январь 12, 2011, 06:29 »

Здравствуйте!

Подскажите, пожалуйста, как сделать ScrollArea без скроллбаров, а в качестве кнопок прокрутки использовать 2 виджета со стрелками (справа и слева)? Пробовал убирать скроллбары просто через hide() - пропадает возможность прокрутки Грустный
Вот код:
Код:
        body_layout = new QHBoxLayout(); //body

        body_layout->setAlignment(Qt::AlignVCenter);

        leftScroll = new QPushButton(this);
        leftScroll->setFixedSize(37,53);
        leftScroll->setIcon(QIcon(":/images/scrollButtonLeft.png"));
        leftScroll->setIconSize(QSize(37,53));

        leftScroll->setFlat(true);

        body_layout->addWidget(leftScroll);

        catalog_body = new QWidget(this);
        catalog_body->setObjectName("catalog_body");
        catalog_body->resize(body->width()-74,body->height());

        gr = new QGridLayout (catalog_body); //body
        gr->setSizeConstraint(QLayout::SetMinimumSize);

        int current_row = 1;
        int current_column = 1;
        int s;
        do
        {
            QString category_id = query->value(0).toString();
            QString category_name = query->value(1).toString();
            category_Labels.append(new category_Label(catalog_body,category_id, category_name)); //this
            s = category_Labels.last()->width();
            gr->addWidget(category_Labels[category_Labels.count()-1],current_row,current_column);
           
            connect(category_Labels[category_Labels.count()-1], SIGNAL(clicked()), this, SLOT(get_Signal()));
            if (current_row<row_count) current_row++;
            else
            {
                current_row =1;
                current_column ++;
            }
        } while(query->next());

        body_layout->setAlignment(Qt::AlignHCenter);
        catalog_body->setLayout(gr);
        sa = new QScrollArea(this);//(body);
        sa->setWidget(catalog_body);
        sa->setFrameStyle(QFrame::NoFrame);

          body_layout->addWidget(sa);

        rightScroll = new QPushButton(this);

        QIcon rightScrollIcon;
        rightScrollIcon.addFile(QString::fromUtf8(":/images/scrollButtonRight.png"), QSize(37,53), QIcon::Normal, QIcon::Off);
        rightScrollIcon.actualSize(QSize(37,53), QIcon::Normal, QIcon::Off);
        rightScroll->setIcon(rightScrollIcon);
        rightScroll->setIconSize(QSize(37,53));
        rightScroll->setFlat(true);

        body_layout->addWidget(rightScroll);

        if ((s*col_count) <= body->width())
        {
            leftScroll->hide();
            rightScroll->hide();
        }
        body->setLayout(body_layout);
Версия: Qt 4.7.0

Заранее благодарен за ответ!
Записан
Fat-Zer
Гость
« Ответ #1 : Январь 12, 2011, 07:40 »

sa->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
sa->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
Не оно?
Записан
AfterEarth
Гость
« Ответ #2 : Январь 12, 2011, 10:28 »

Хм, странно-сейчас виджеты внутри ScrollArea не сжались, как раньше. Спасибо! Улыбающийся Так уже делал правда, но с другим результатом.. Надо будет прокрутку попробовать к кнопкам привязать...
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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