crossplatform.ru

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


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

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

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


Последние 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 Текстовая версия Сейчас: 28.3.2024, 23:45