crossplatform.ru

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


  Ответ в многострочный QLabel обрезается текст
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
Теги
Выровнять по центру
Ссылка на тему
Ссылка на сообщение
Скрытый текст
Сокращение
Код с подсветкой
Offtopic
 
Удалить форматирование
Спец. элементы
Шрифт
Размер
 
Цвет шрифта
 
Отменить ввод
Вернуть ввод
Полужирный
Курсив
Подчеркнутый
 
 
Смайлики
Вставить изображение
Вставить адрес электронной почты
Цитата
Код
Раскрывающийся текст
 
Увеличить отступ
По левому краю
По центру
По правому краю
Вставить список
Вставить список

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
Гость Дата 17.4.2009, 19:52
 
Цитата(Гость_Гость_* @ 17.4.2009, 14:48) *
Есть еще интересная функция

Но не работает :(
Гость Дата 17.4.2009, 14:48
 
Цитата(igor_bogomolov @ 17.4.2009, 14:07) *
Подойдет такое решение?

В принципе сойдет, но это фактически задать минимумы. Есть еще интересная функция
Цитата
void QSizePolicy::setHeightForWidth ( bool dependent )
Sets the flag determining whether the widget's preferred height depends on its width, to dependent.
See also hasHeightForWidth().
igor_bogomolov Дата 17.4.2009, 14:07
  Помогает следущее
QWidget * mwg()
{
    .....................
    lb->setText("..............");
    lb->setSizePolicy(QSizePolicy::MinimumExpanding,QSizePolicy::MinimumExpanding);
    lt->addWidget(lb,1,1);
    return wg; 
}

____________________________________________________________________________
P.S. Всегда думал, для чего же MinimumExpanding и как можно его использовать. А тут вот пригодился :)

Подойдет такое решение?
Гость Дата 17.4.2009, 13:02
  вот минимальный пример. ручки правда не видны - палетку нужно править
#include <QtGui>

QWidget * mwg()
{   QWidget *wg=new QWidget(0); 
    QGridLayout *lt = new QGridLayout(wg);
    lt->addWidget((QWidget *)new QPushButton,0,0);
    lt->addWidget((QWidget *)new QPushButton,1,2);
    lt->addWidget((QWidget *)new QPushButton,2,0);

    QLabel *lb=new QLabel;
    lb->setWordWrap(true);
    lb->setText("LONG TEXT  ====  In this example, keyboard focus is "
     " transferred to the label's buddy (the QLineEdit) "
     "  when the user presses Alt+P. If the buddy was a "
     "   button (inheriting from QAbstractButton), "
     "    triggering the mnemonic would emulate a button click. ");
    lt->addWidget(lb,1,1);
    return wg; 
}

int main(int argc, char ** argv)
{   QApplication app( argc, argv );
    QSplitter splitter;
    splitter.setChildrenCollapsible(false);
    splitter.addWidget(mwg());
    splitter.addWidget(mwg());
    
    splitter.show();
    mwg()->show();
    
    return app.exec();
}
igor_bogomolov Дата 17.4.2009, 8:59
 
Цитата(Гость_Гость_* @ 17.4.2009, 4:15) *
у меня setChildrenCollapsible(false); он нормально понимает допустимые размеры детей, ну кроме этого

Все это очень странно. Я Создал у себя форму с QLabel-ом, с теми же самыми свойствами что у тебя, добавил два сплитера, горизонтальный и вертикальный, оба со свойством setChildrenCollapsible(false). Накаких проблем с отображением у меня не возникло, текст не обрезается. Конфигурация на которой я проверял, у меня в подписи. Поэтому даже не знаю чем еще помочь. Приатачь свой ui файл, посмотрим его.
Danila_Bagrofff Дата 17.4.2009, 8:07
  А если использовать QSizePolicy и QLayout?
Гость Дата 17.4.2009, 3:15
 
Цитата(igor_bogomolov @ 17.4.2009, 0:45)
Так ведь splitter для того и нужен, что можно вообще скрыть виджет.

у меня setChildrenCollapsible(false); он нормально понимает допустимые размеры детей, ну кроме этого :(
igor_bogomolov Дата 17.4.2009, 0:45
  Так ведь splitter для того и нужен, что можно вообще скрыть виджет.
Не знаю можно ли как то ограничеть работу сплитера. Попробуй зафиксировать для виджета высоту void QWidget::setFixedHeight ( int h )
Либо же заюзать void QSplitter::setSizes ( const QList<int> & list )
Гость Дата 17.4.2009, 0:26
 
Цитата(Гость_Гость_* @ 17.4.2009, 0:23) *
изменении высоты добавляются строки
при изменении ширины конечно
Гость Дата 17.4.2009, 0:23
 
Цитата(SABROG @ 16.4.2009, 22:30) *
Под размером здесь подразумевается только высота?

Как высота так и ширина. При изменении высоты добавляются строки, так как установлен перенос по строкам.
Цитата(SABROG @ 16.4.2009, 22:30) *
Запуске виджета куда, в космос чтоль? Неправильный ресайз QLabel'a?

Запускать myWidgetPtr->show();

Цитата(SABROG @ 16.4.2009, 22:30) *
А что под этим подразумевается, отрицательные ширина или высота? Как должен выглядеть виджет с неправильным ресайзом?

Высота и ширина такие что у QLabel недостаточная высота. При myWidgetPtr->show(); не удается сделать мышкой непрвильный размер. А в сплитере удается и в вертикалином и горизонтальнос
Просмотр темы полностью (откроется в новом окне)
RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 10.7.2025, 2:00