crossplatform.ru

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

2 страниц V   1 2 >  
Ответить в данную темуНачать новую тему
> QSplitter - добавление виджетов
breeve
  опции профиля:
сообщение 12.2.2010, 15:22
Сообщение #1


Участник
**

Группа: Участник
Сообщений: 188
Регистрация: 26.12.2009
Пользователь №: 1336

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




Репутация:   1  


//Не хотелось бы задавать тупых вопросов.. Но, тем не менее..
Как сделать так чтобы на Splitter добавить кнопку?
Создал splitter вертикальный, разместил его между двумя TextEdit'ами.. И необходимо чтобы на самом Splitter'е была кнопка. И если ты двигаешь его то он движется вместе с кнопкой и заодно изменяет размер нижнего TextEdit'а.
Как пример если кто видел Skype на Unix.. там в окне чата есть панелька со смайликами и еще какими-то кнопками..
Вот что получилось у меня:
Раскрывающийся текст
{
    chatTextEdit = new QTextEdit;
    chatTextEdit->setMinimumHeight(40);

    mesTextEdit = new QTextEdit;
    vLay = new QVBoxLayout;
    smileBut = new QPushButton("Smile");

    toolBar = new QToolBar;
    toolBar->setOrientation(Qt::Horizontal);
    toolBar->setMovable(true);
    toolBar->setFixedSize(toolBar->width(),toolBar->height());
    toolBar->addWidget(smileBut);
    toolBar->setToolButtonStyle(Qt::ToolButtonTextOnly);

    split = new QSplitter(Qt::Vertical);
    split->addWidget(chatTextEdit);
    split->addWidget(toolBar);

    vLay->addWidget(split);
    vLay->addWidget(mesTextEdit);


    setLayout(vLay);
}
Проблема собственно заключается в том что нижний TextEdit не меняет свой размер.

Сообщение отредактировал breeve - 12.2.2010, 16:27
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 12.2.2010, 15:24
Сообщение #2


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

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

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




Репутация:   94  


Цитата(breeve @ 12.2.2010, 18:22) *
Как пример если кто видел Skype на Unix.. там в окне чата есть панелька со смайликами и еще какими-то кнопками..
давай снимок экрана
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
breeve
  опции профиля:
сообщение 12.2.2010, 16:27
Сообщение #3


Участник
**

Группа: Участник
Сообщений: 188
Регистрация: 26.12.2009
Пользователь №: 1336

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




Репутация:   1  


Цитата(Litkevich Yuriy @ 12.2.2010, 15:24) *
давай снимок экрана

Скрин не стал делать, было бы не понятно. Залил видео.
Прикрепленные файлы
Прикрепленный файл  skype.ogv.txt ( 147,49 килобайт ) Кол-во скачиваний: 440
 
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
BRE
  опции профиля:
сообщение 12.2.2010, 16:51
Сообщение #4


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

Группа: Участник
Сообщений: 1112
Регистрация: 6.3.2009
Из: Ростов-на-Дону
Пользователь №: 591

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




Репутация:   44  


Цитата(breeve @ 12.2.2010, 16:27) *
Цитата(Litkevich Yuriy @ 12.2.2010, 15:24) *
давай снимок экрана

Скрин не стал делать, было бы не понятно. Залил видео.

Это обычный сплиттер, внизу расположен виджет на котором находиться QFrame (с кнопками) и QTextEdit. Для QFrame зафиксирована высота.

Сообщение отредактировал BRE - 12.2.2010, 16:56
Прикрепленные файлы
Прикрепленный файл  splitter.ui.txt ( 1,46 килобайт ) Кол-во скачиваний: 379
 
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 12.2.2010, 17:18
Сообщение #5


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

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

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




Репутация:   94  


BRE, а по моему и того проще (удалите расширение txt)
Прикрепленный файл  skipe.ui.txt ( 2,49 килобайт ) Кол-во скачиваний: 490


я не делал фиксированного размера
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
BRE
  опции профиля:
сообщение 12.2.2010, 17:24
Сообщение #6


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

Группа: Участник
Сообщений: 1112
Регистрация: 6.3.2009
Из: Ростов-на-Дону
Пользователь №: 591

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




Репутация:   44  


Цитата(Litkevich Yuriy @ 12.2.2010, 17:18) *
BRE, а по моему и того проще (удалите расширение txt)
Прикрепленный файл  skipe.ui.txt ( 2,49 килобайт ) Кол-во скачиваний: 490


я не делал фиксированного размера

А я .ui тоже отказался от дополнительного QFarme, QWidget на нем кнопки (в QHBoxLayout) и QTextEdit.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
breeve
  опции профиля:
сообщение 12.2.2010, 19:28
Сообщение #7


Участник
**

Группа: Участник
Сообщений: 188
Регистрация: 26.12.2009
Пользователь №: 1336

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




Репутация:   1  


Кто-нибудь может объяснить на словах.. А то я смотрю на код и не могу ничего понять..

Сообщение отредактировал breeve - 12.2.2010, 19:28
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
BRE
  опции профиля:
сообщение 12.2.2010, 19:37
Сообщение #8


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

Группа: Участник
Сообщений: 1112
Регистрация: 6.3.2009
Из: Ростов-на-Дону
Пользователь №: 591

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




Репутация:   44  


Цитата(breeve @ 12.2.2010, 19:28) *
Кто-нибудь может объяснить на словах.. А то я смотрю на код и не могу ничего понять..

Например.
Сплитер разделяет два виджета. Верхний QListView, нижний QWidget.
На нижнем располагается ряд кнопок, лейблов, ... (виджетов) - они располагаются QHBoxLayout.
Ниже расположен QTextEdit.
Верхний ряд и QTextEdit лежат в QVBoxLayout.
Если зафиксировать высоту всех элементов в верхнем ряду, то получишь нужный эффект.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
breeve
  опции профиля:
сообщение 12.2.2010, 19:52
Сообщение #9


Участник
**

Группа: Участник
Сообщений: 188
Регистрация: 26.12.2009
Пользователь №: 1336

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




Репутация:   1  


Цитата(BRE @ 12.2.2010, 19:37) *
Например.
Сплитер разделяет два виджета. Верхний QListView, нижний QWidget.
На нижнем располагается ряд кнопок, лейблов, ... (виджетов) - они располагаются QHBoxLayout.
Ниже расположен QTextEdit.
Верхний ряд и QTextEdit лежат в QVBoxLayout.
Если зафиксировать высоту всех элементов в верхнем ряду, то получишь нужный эффект.
Я наверное не правильно задал вопрос.. Как это все выглядит я понимаю, а вот что мне сделать чтобы выглядело так же, не совсем..
Как я понял в сплит нужно добавить верхнее текстовое поле и layout который содержит toolBar(или hLay с кнопками) и нижнее поле..
Только как мне в splitter добавить layout?

Сообщение отредактировал breeve - 12.2.2010, 19:53
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 12.2.2010, 19:58
Сообщение #10


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

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

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




Репутация:   94  


Цитата(breeve @ 12.2.2010, 22:28) *
Кто-нибудь может объяснить на словах.. А то я смотрю на код и не могу ничего понять..
могу объяснить, как я сделал:
1) Взял в дизайнере проект на основе QWidget
2) Положил на него два QTextEdit'а, на глазок
3) между ними положил в ряд: QToolButton, горизонтальную распорку, и ещё два QToolButton
4) Выделил QToolButton'ы и распорку, нажал кнопку "компоновать горизонтально" (они сцепились в одно целое)
5) Предыдущая группа виджетов пока ещё выделена, нажал CTRL и выделил нижний QTextEdit, нажал кнопку "компоновать вертикально" (они сцепились в одно целое)
6) Предыдущая группа виджетов пока ещё выделена, нажал CTRL и выделил верхний QTextEdit, нажал кнопку "компоновать вертикально с разделителем" (они сцепились в одно целое)
7) Выделил виджет верхнего уровня и нажал "компоновать ***" (здесь подойдёт и горизонтальная и вертикальная компоновка)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




RSS Текстовая версия Сейчас: 5.12.2024, 19:46