Russian Qt Forum
Ноябрь 26, 2024, 19:32 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: ширина строки  (Прочитано 4805 раз)
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   :

Понимаю, что это вызвано тем, что ширина символа циферка меньше ширины символа " ", и курить надо куда то в сторону ширины фонта.
А вот куда курить?   Непонимающий
Записан
Rcus
Гость
« Ответ #1 : Июль 07, 2009, 15:28 »

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

ну вообщем то не только численные значения, предположим такие данные:
разряд-1         : Иванов
СпортЛото-82   :Сидоров
и т.д..

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

Записан
Rcus
Гость
« Ответ #3 : Июль 07, 2009, 20:50 »

Да что-то я не думал о том что нормальная форма символов каны, кандзи и прочих идеографических письменностей занимает по два места Улыбающийся
с таблицами в Qt только одна проблема: в Oxygen выделение строк выглядит фигово (поэтому многие используют QTreeView для плоских данных)
Можно еще определить делегата и самому выбрать как рисовать это.
Записан
Hordi
Гость
« Ответ #4 : Июль 08, 2009, 11:56 »

А про извращенные методы забыли? Можно вставлять QWidget и рисовать на нем самостоятельно...
Записан
xintrea
Супер активный житель
*****
Offline Offline

Сообщений: 754



Просмотр профиля WWW
« Ответ #5 : Июль 08, 2009, 12:03 »

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

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

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

Собираю информацию по крупицам
http://webhamster.ru
break
Гипер активный житель
*****
Offline Offline

Сообщений: 846


Просмотр профиля
« Ответ #6 : Июль 09, 2009, 01:15 »

вообще в сторону QTableWidget/QTableView действительно правильно, но я у себя при выводе отладочной информации иногда просто добавляю нули слева (если выводятся цифры)
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.124 секунд. Запросов: 22.