Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: mal от Июль 07, 2009, 15:14



Название: ширина строки
Отправлено: mal от Июль 07, 2009, 15:14
всем привет.
дано - в QListWidget добавляю айтемы. Хочу сделать так чтоб размер строки был одинаковым:
Код:
QString str;
for(int i=0; i< 150; i++)
{
str.clear();
str.append(QString::number(i));
while(str.length()<20)
    str.append(" ");

str.append(":");
ui.listWidget->addItem(str);
}

далее видим что разделитель ":" смещается при добавлении каждого порядка
0   :
1   :
...
9   :
10   :
...
100   :

Понимаю, что это вызвано тем, что ширина символа циферка меньше ширины символа " ", и курить надо куда то в сторону ширины фонта.
А вот куда курить?   ???


Название: Re: ширина строки
Отправлено: Rcus от Июль 07, 2009, 15:28
А зачем? Обычно для численных значений достаточно выравнивания вправо.
Ну можно использовать QWidget::setFont(QFont("Mono")) для установки моноширинного шрифта, только нужно ли?


Название: Re: ширина строки
Отправлено: mal от Июль 07, 2009, 15:41
ну вообщем то не только численные значения, предположим такие данные:
разряд-1         : Иванов
СпортЛото-82   :Сидоров
и т.д..

Про моноширинный шрифт идея понятная, однако если будут использоваться например иероглифы, получим полную неразбериху.
Редактировать ничего не надо - надо только показать названия полей и значение для них. Ну и разделить названия от значений. Названия полей по длине разные.
Видимо проще будет  использовать старый добрый QTableWidget.



Название: Re: ширина строки
Отправлено: Rcus от Июль 07, 2009, 20:50
Да что-то я не думал о том что нормальная форма символов каны, кандзи и прочих идеографических письменностей занимает по два места :)
с таблицами в Qt только одна проблема: в Oxygen выделение строк выглядит фигово (поэтому многие используют QTreeView для плоских данных)
Можно еще определить делегата и самому выбрать как рисовать это.


Название: Re: ширина строки
Отправлено: Hordi от Июль 08, 2009, 11:56
А про извращенные методы забыли? Можно вставлять QWidget и рисовать на нем самостоятельно...


Название: Re: ширина строки
Отправлено: xintrea от Июль 08, 2009, 12:03
далее видим что разделитель ":" смещается при добавлении каждого порядка
0   :
1   :
...
9   :
10   :
...
100   :

Понимаю, что это вызвано тем, что ширина символа циферка меньше ширины символа " ", и курить надо куда то в сторону ширины фонта.
А вот куда курить?   ???

Однозначно в сторону QTableWidget. У тебя же логически получаются что в строке есть разделитель, значит имеем наличие двух полей. Каждое поле должно отображаться в отдельном столбце.


Название: Re: ширина строки
Отправлено: break от Июль 09, 2009, 01:15
вообще в сторону QTableWidget/QTableView действительно правильно, но я у себя при выводе отладочной информации иногда просто добавляю нули слева (если выводятся цифры)