crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

4 страниц V  « < 2 3 4  
Ответить в данную темуНачать новую тему
> вопросы по QFrame
SABROG
  опции профиля:
сообщение 3.3.2009, 22:45
Сообщение #31


Профессионал
*****

Группа: Участник
Сообщений: 1207
Регистрация: 8.12.2008
Из: Russia, Moscow
Пользователь №: 446

Спасибо сказали: 229 раз(а)




Репутация:   34  


Оно?

Раскрывающийся текст
#include "tst3.h"
#include <string>
#include <QScrollArea>
#include <QLabel>
#include "windows.h"

using namespace std;

QScrollArea* area;

tst3::tst3(QWidget *parent, Qt::WFlags flags)
    : QMainWindow(parent, flags)
{
    ui.setupUi(this);

    CreateScrollArea();
}

tst3::~tst3()
{

}

QFrame* tst3::AddFrame()
{
    QFrame* frame = new QFrame(area->widget());

    frame->setFrameShape(QFrame::Panel);
    frame->setFrameShadow(QFrame::Raised);
    frame->setMinimumSize(QSize(100, 100));

    return frame;
}


void tst3::on_pushButton_clicked()
{
    static int cnt = 0;

    QFrame* newframe = AddFrame();
    QGridLayout* grid = (QGridLayout*)area->widget()->layout();
    grid->addWidget(newframe, cnt / 4, cnt % 4);
    cnt++;
}

void tst3::CreateScrollArea()
{
    QGridLayout *grid = new QGridLayout(ui.fr);

    area = new QScrollArea(ui.fr);
    area->setWidgetResizable(true);
    grid->addWidget(area);
    QWidget *contents = new QWidget(area);
    /*QGridLayout* widgetgrid = */new QGridLayout(contents);//грид для общего виджета
    area->setWidget(contents);
    area->setFrameShape(QFrame::NoFrame);
    //area->setMinimumSize(QSize(200, 85));

}
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kuler
  опции профиля:
сообщение 4.3.2009, 11:22
Сообщение #32


Танцор диско
***

Группа: Участник
Сообщений: 441
Регистрация: 11.9.2008
Из: Москва
Пользователь №: 289

Спасибо сказали: 6 раз(а)




Репутация:   -1  


Цитата(SABROG @ 3.3.2009, 22:45) *
Оно?

пипец! ты просто бог!
Как я понял главная моя ошибка - использование в качестве главного QFrame а не QWidget.

Сообщение отредактировал kuler - 4.3.2009, 12:19
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kuler
  опции профиля:
сообщение 4.3.2009, 18:29
Сообщение #33


Танцор диско
***

Группа: Участник
Сообщений: 441
Регистрация: 11.9.2008
Из: Москва
Пользователь №: 289

Спасибо сказали: 6 раз(а)




Репутация:   -1  


а можно автоматично сделать чтобы при удалении какогото дочернего фрейма все остальные сдвигались налево, заполнив пустое место?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 4.3.2009, 18:31
Сообщение #34


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(kuler @ 4.3.2009, 21:29) *
все остальные сдвигались налево, заполнив пустое место?
распорку поставь

Хотя это ноборот будет
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
SABROG
  опции профиля:
сообщение 4.3.2009, 18:37
Сообщение #35


Профессионал
*****

Группа: Участник
Сообщений: 1207
Регистрация: 8.12.2008
Из: Russia, Moscow
Пользователь №: 446

Спасибо сказали: 229 раз(а)




Репутация:   34  


area->widget()->updateGeometry() попробуй вызывать после удаления
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

4 страниц V  « < 2 3 4
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


4 чел. читают эту тему (гостей: 4, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 29.11.2024, 4:39