Название: label Отправлено: comalex1 от Февраль 12, 2012, 20:00 Ребята ,в меня такая задача:
нужно подсчитывать количество слов в тексте и я хочу чтобы оно выводило их в таком формате.Но у меня не получается создавать динамически лейбл,чтобы следуещее слово выводило под приведущим.Внимание вопрос->как это зделать? (http://xmages.net/storage/10/1/0/f/0/upload/490ea631.jpg) (http://xmages.net/i/3361943) Название: Re: label Отправлено: Bepec от Февраль 12, 2012, 20:03 Самый простой - используй QGridLayout.
Создавай и запихивай в него динамические лейблы :) Самый нормальный - сделать ModelView для отображения. Самый сложный - сделать собственный виджет, который выполнял бы твои прихоти. Название: Re: label Отправлено: comalex1 от Февраль 12, 2012, 20:16 в меня не получается создавать лейблы динамически.Я просто не пойму как их добавлять циклом:типа(бред)
Код: QLabel *label=new QLabel; Название: Re: label Отправлено: Alex Custov от Февраль 12, 2012, 20:59 в меня не получается создавать лейблы динамически.Я просто не пойму как их добавлять циклом:типа(бред) Код: QLabel *label=new QLabel; Код
Название: Re: label Отправлено: comalex1 от Февраль 12, 2012, 23:27 спасиба за ответы,оказалось все очень просто. :)
Название: Re: label Отправлено: sudo от Февраль 13, 2012, 11:29 Может я не правильно понимаю цель, но если нужно просто переносить слова на следующую строку, то должно работать так:
Код: label->setText(label->text() + "\n" + addingText); Название: Re: label Отправлено: Bepec от Февраль 13, 2012, 12:11 sudo, вы неправильно понимаете.
Должно соблюдаться расстояние/расположение label. А в вашем случае будет просто перенос строки в метке. Название: Re: label Отправлено: andrew.k от Февраль 13, 2012, 12:28 Может я не правильно понимаю цель, но если нужно просто переносить слова на следующую строку, то должно работать так: Судя по постановке задачи от ТС (выводить слова на отдельной строке) это даже лучше, чем лепить кучу лабелов.Код: label->setText(label->text() + "\n" + addingText); Вообще мне кажется стоит взять за правило, если можно сделать одним виджетом вместо десяти, то надо делать одним. А если нельзя сделать одним виджетом, то нужно постараться. Тогда не будут появляться такие темы: "сделал 10тыщ виджетов и что теперь делать?" Неизвестно конечно, какое количество слов там может быть. Но это уже нюансы. Да. Ты правильно все понимаешь, sudo ;D Название: Re: label Отправлено: Bepec от Февраль 13, 2012, 12:54 Если сделать таким подходом, как sudo, то...
При первом же значении строки, которое будет больше чем ширина между надписями, приведёт к сдвигу всей конструкции и "АЛАРМ АЛАРМ, У НАС ВСЁ РУШИТСЯ". А динамические лейблы будут управляться компоновщиком. Название: Re: label Отправлено: andrew.k от Февраль 13, 2012, 13:11 Если сделать таким подходом, как sudo, то... Так и не понял, о чем повествует это предложение. Понял только, что у кого-то "сдвинута конструкция".При первом же значении строки, которое будет больше чем ширина между надписями, приведёт к сдвигу всей конструкции и "АЛАРМ АЛАРМ, У НАС ВСЁ РУШИТСЯ". А динамические лейблы будут управляться компоновщиком. А один большой лабел запихнуть в компоновщик видимо религия не позволяет или фобия?Название: Re: label Отправлено: Bepec от Февраль 13, 2012, 13:30 Поясняю.
Так как предлагает sudo - использовать 1 лейбл и тыкать /n. Пример Код: h 5\n Код: h12345678 5\n А по условию ТСса, он хочет чтобы колонки были друг под другом. При использовании же 2 (хотя бы) динамических лейблов даже при значении x = 10, сохранится исходная сигнатура. Благодаря компоновщику. Код: h1234567891 5 PS к тому же использование многих динамических лейблов, позволит удалять/переносить/изменять нужные строки непосредственно, а не тыркаться с регэкспами в содержимое одного лейбла. Название: Re: label Отправлено: _OLEGator_ от Февраль 13, 2012, 13:38 Поддерживаю, один QLabel разумнее.
Название: Re: label Отправлено: andrew.k от Февраль 13, 2012, 13:47 Поясняю. Если руки из жопы, будет именно так как ты описал, а если нет одного лабела достаточно.Так как предлагает sudo - использовать 1 лейбл и тыкать /n. Пример Код: h 5\n Код: h12345678 5\n А по условию ТСса, он хочет чтобы колонки были друг под другом. При использовании же 2 (хотя бы) динамических лейблов даже при значении x = 10, сохранится исходная сигнатура. Благодаря компоновщику. Код: h1234567891 5 PS к тому же использование многих динамических лейблов, позволит удалять/переносить/изменять нужные строки непосредственно, а не тыркаться с регэкспами в содержимое одного лейбла. Название: Re: label Отправлено: Bepec от Февраль 13, 2012, 13:48 _OLEGator_ а как вы будете выдерживать расстояние между строками разной длины? Пробелами подгонять до нужной отметки? :)
Да и к тому же при ресайзе окна программы перерасчитывать всё? А если придётся удалить пятый сверху элемент? RegExp? Я конечно мастер "простых" решений, но ручками переписывать минимум 4-7 функции, для получения функционала, который уже доступен... andrew.k ты видимо уже из упоротости прёшь на танк :) Хотяяя... ты знаешь толк в извращениях. PS я бы лично выбрал второе решение с моделькой. Название: Re: label Отправлено: sudo от Февраль 13, 2012, 13:49 Мужики, тут такое дело ) У меня рабочая прокся картинку порезала
Тогда всё-таки будет имхо лучше 2 лейбла, ничего никуда не поедет, сущности плодить не надо будет Название: Re: label Отправлено: Пантер от Февраль 13, 2012, 13:49 Юзай таблицу (QTableWidget) и не слушай никого. :)
Название: Re: label Отправлено: Bepec от Февраль 13, 2012, 13:51 АААА....
+++ к sudo. to Пантер: вы над ним издеваетесь? :D Название: Re: label Отправлено: sudo от Февраль 13, 2012, 13:52 Юзай таблицу (QTableWidget) и не слушай никого. :) Тоже верно :) Свойства чуток покрутить, и будет как лейбл выглядеть, если хочется Название: Re: label Отправлено: andrew.k от Февраль 13, 2012, 13:59 Юзай таблицу (QTableWidget) и не слушай никого. :) "Не слушай никого", в т.ч. Пантера? :)А вообще я не говорил, что нужно именно лабел использовать, я говорил, что должен быть один виджет, а речь шла о лабеле. Так же я говорил, что можно достичь этого результата одним лабелом, например, использованием html. А так я тоже за тейблвиджет, раз такие пироги ) Название: Re: label Отправлено: _OLEGator_ от Февраль 13, 2012, 14:15 Юзай тогда сразу QTableView =)
Название: Re: label Отправлено: Bepec от Февраль 13, 2012, 14:21 И модель и модель SQL, чтоб проще было :D
Название: Re: label Отправлено: Bzzzuka от Апрель 14, 2012, 17:36 Как я поняла метода который бы просто добавлял в label текст к уже имеющемуся не существует?
Название: Re: label Отправлено: kambala от Апрель 14, 2012, 18:23 нету, но есть простое решение для этого:
Код
|