Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: linuxoid от Ноябрь 14, 2007, 11:22



Название: Перенос строк
Отправлено: linuxoid от Ноябрь 14, 2007, 11:22
Как в QLabel или в QCheckBox сделать так чтобы текст переносился по строчкам(если длинна текста превышает длинну label'a или box'a ?


Название: Re: Перенос строк
Отправлено: pastor от Ноябрь 14, 2007, 11:33
Для QLabel смотрим setWordWrap

Для QCheckBox никак, пишем сами

ЗЫ: Такие вопросы стыдно задавать, в ассистенте же все написано! Покрайней мере про QLabel...


Название: Re: Перенос строк
Отправлено: linuxoid от Ноябрь 14, 2007, 11:46
хочу чтобы мне код выложили для переноса строк


Название: Re: Перенос строк
Отправлено: pastor от Ноябрь 14, 2007, 11:56
Код:
QLabel *label = new QLabel(this);
label->setWordWrap(true);
label->setText(<some text>);


Название: Re: Перенос строк
Отправлено: linuxoid от Ноябрь 14, 2007, 12:08
да не, для QCheckBox!


Название: Re: Перенос строк
Отправлено: Вячеслав от Ноябрь 14, 2007, 14:06
Блин , если писать самому лень - делай в лоб  QHboxLayout , в него QCheckBox без надписи и QLabel , для QLabela setBuddy на QCheckBox и setWordWarp как уже сказали ;)


Название: Re: Перенос строк
Отправлено: linuxoid от Ноябрь 14, 2007, 14:53
так у меня и было сделано!ЭТОТ МЕТОД НЕ КОРРЕКТЕН!я пишу "правильные программы" 8)


Название: Re: Перенос строк
Отправлено: Вячеслав от Ноябрь 14, 2007, 15:21
А почему кстати ? (некорректен)
Я пока плюсов больше вижу чем минусов ....


Название: Re: Перенос строк
Отправлено: ритт от Ноябрь 14, 2007, 16:10
скажи, кстати, а где ты видел такой виджет, чтобы называть его "частью правильной программы"?
какой ты видишь метод, более корректный, чем этот?
на мой взгляд нормальное решение. бадди вообще для этих целей и сделаны.


Название: Re: Перенос строк
Отправлено: Dodge от Ноябрь 16, 2007, 16:29
ИМХО в "правильных" программах, в любых лэйблах (и чекбоксовских тоже), обычно содержится краткое описание, а не целый "гнайд"... ;)
Для таких "гайдов" есть - вот зыс и хинт.


Название: Re: Перенос строк
Отправлено: linuxoid от Ноябрь 16, 2007, 17:46
Спасибо за критику я уже решил проблему :)


Название: Re: Перенос строк
Отправлено: pastor от Ноябрь 16, 2007, 23:25
ИМХО в "правильных" программах, в любых лэйблах (и чекбоксовских тоже), обычно содержится краткое описание, а не целый "гнайд"... ;)
Для таких "гайдов" есть - вот зыс и хинт.

В корне не согласен, бывают случае когда удобно сделать надпись в две строки. Кстате тролям поступил suggestion сделать перенос текста:

162306 - Suggestion for word wrapping on text of QAbstractButton and title text QGroupBox


Название: Re: Перенос строк
Отправлено: ритт от Ноябрь 16, 2007, 23:40
от кого бы он? :)

статус, как у всех саггестионов - нот шедулед

линухоид, а как решил-то?


Название: Re: Перенос строк
Отправлено: Dodge от Ноябрь 16, 2007, 23:48
В корне не согласен, бывают случае когда удобно сделать надпись в две строки. Кстате тролям поступил suggestion сделать перенос текста:

162306 - Suggestion for word wrapping on text of QAbstractButton and title text QGroupBox
я спорить по этому поводу не буду, но в софте написанно грамотно, в плане "дружеского"/"интуитивно понятного" пользовательского интерфейса, переносов строк в таких контролах не наблюдал... опять же, это чисто мое мнение  - переносы строк в таких элементах пользовательского интерфейса - неправильно. Даже 2 строки на кнопке или комбобоксе, смотрятся жутко.


Название: Re: Перенос строк
Отправлено: pastor от Ноябрь 17, 2007, 00:23
от кого бы он? :)

статус, как у всех саггестионов - нот шедулед

Могу сказать точно не от меня :)
А статус:

Priority:    3   Scheduled for:   Some future release


Название: Re: Перенос строк
Отправлено: Вячеслав от Ноябрь 17, 2007, 12:11
В корне не согласен, бывают случае когда удобно сделать надпись в две строки. Кстате тролям поступил suggestion сделать перенос текста:

162306 - Suggestion for word wrapping on text of QAbstractButton and title text QGroupBox
я спорить по этому поводу не буду, но в софте написанно грамотно, в плане "дружеского"/"интуитивно понятного" пользовательского интерфейса, переносов строк в таких контролах не наблюдал... опять же, это чисто мое мнение  - переносы строк в таких элементах пользовательского интерфейса - неправильно. Даже 2 строки на кнопке или комбобоксе, смотрятся жутко.
С батоном согласен, с групбоксом - нет ;) IMHO бывает так , что при переводе интефейса строка оказываеться длиннее чем задумывалось ;) И лучше что-б оно переносилось а не растягивалась ;)


Название: Re: Перенос строк
Отправлено: stealth от Ноябрь 17, 2007, 19:26
Давно хотел спросить, а как сделать перенос строк в делегате???
Вот мой переопределённый метод рисования, при сужении ячейки с этим делегатом текст урезается тремя точка, а не переносится. Как сюда запихнуть WordWrap???
Код:
void paint (
        QPainter *painter,
        const QStyleOptionViewItem& option,
        const QModelIndex& index ) const {

    QString text;
    QRect rect;
    QVariant value;

    QStyleOptionViewItemV2 opt = setOptions(index, option);
    value = index.data(Qt::DisplayRole);

    opt.displayAlignment = Qt::AlignLeft | Qt::AlignVCenter;
   
    int a = (index.row() % 2) ? 14 : 0;
painter->fillRect(option.rect, QBrush(QColor(250,210-a,210-a, 200))); //!Цвет фона
drawDisplay(painter, opt, opt.rect, value.toString());
}