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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: изменение размеров виджета  (Прочитано 5523 раз)
blood_shadow
Гость
« : Август 21, 2010, 11:22 »

Есть готовая программа состоящая с двух вертикально разположенных виджетов(вверху QTextEdit внизу QTableWidget), оба они помещены в вертикальный менеджер компоновки:



Вопрос - Как сделать чтобы пользователь имел возможность изменять размер допустим QTextEdit (уменьшать и увеличивать за счет другого виджета)?
Записан
BRE
Гость
« Ответ #1 : Август 21, 2010, 11:28 »

Посмотри на класс QSplitter.
Записан
blood_shadow
Гость
« Ответ #2 : Август 21, 2010, 14:11 »

Посмотри на класс QSplitter.
два элемента а именно QTextEdit и QTableWidget, разместить не проблема, однако между ними находится менеджер компоновки QHBoxLayout
в котором лежат кнопка, ComboBox + растяжка + 2 кнопки

Код:
    textIn = new QTextEdit("no text in file");
    textOut = new QTextEdit("Please, click button Run");
    runButton = new QPushButton("Run");
    undoButton = new QPushButton("Undo");
    hideButton = new QPushButton("Hide");
    changeChoiceCombo = new QComboBox;
    changeChoiceCombo->addItem("1");
    changeChoiceCombo->addItem("2");
    changeChoiceCombo->addItem("3");
    changeChoiceCombo->addItem("4");
    changeChoiceCombo->addItem("5");
    tableWidget = new QTableWidget;
    undoButton->setEnabled(false); //disabled button "Undo"

    //creating interface
    QHBoxLayout *layout = new QHBoxLayout;
    layout->addWidget(undoButton);
    layout->addWidget(changeChoiceCombo);
    layout->addStretch();
    layout->addWidget(hideButton);
    layout->addWidget(runButton);
    QVBoxLayout *main_Layout = new QVBoxLayout;

    main_Layout->addWidget(textIn);
    main_Layout->addLayout(layout);
    main_Layout->addWidget(tableWidget);
   
    setLayout(main_Layout);


Как сделать чтобы можно было перемещать вместе с этим менеджером компоновки QHBoxLayout?
Записан
BRE
Гость
« Ответ #3 : Август 21, 2010, 14:12 »

Так ты положи кнопки и нижнюю таблицу на отдельный виджет, скомпонуй их и вот его добавь в сплитер.  Улыбающийся
Записан
blood_shadow
Гость
« Ответ #4 : Август 21, 2010, 14:33 »

Так ты положи кнопки и нижнюю таблицу на отдельный виджет, скомпонуй их и вот его добавь в сплитер.  Улыбающийся
Спасибо! и как я до этого не додумался  Улыбающийся
Записан
virtual_root
Гость
« Ответ #5 : Декабрь 27, 2010, 16:58 »

У меня такая же проблема. Я добавила QSplitter, но результата нет. Подскажите,пожалуйста,что я не так написала:
 
Код:
   splitter = new QSplitter;
   splitter->addWidget(&treeview);
    Layout.addWidget(menuBar,0,0,1,1);
    Layout.addWidget(&treeview,1,0,1,1);
    Layout.addWidget(splitter,1,1,1,1);
    Layout.addWidget(&tabwidget,1,1);
    Layout.setColumnStretch(1,100);
    setLayout(&Layout);
Сами элнменты описаны в файле .h
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #6 : Декабрь 27, 2010, 17:08 »

splitter->addWidget(&treeview);
Layout.addWidget(&treeview,1,0,1,1);

В этом ошибка.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
virtual_root
Гость
« Ответ #7 : Декабрь 28, 2010, 12:00 »

спасибо,получилось) я добавила в сплиттер ещё один виджет и всё заработало)
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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