Форум программистов, компьютерный форум, киберфорум
SFML
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
2 / 2 / 0
Регистрация: 09.02.2020
Сообщений: 84
1

Изменение цвета конкретного символа в объекте Text

02.11.2020, 20:56. Показов 1733. Ответов 9

Author24 — интернет-сервис помощи студентам
Мне нужно изменить цвет конкретного символа у текста(класс Text), но при использовании setFillColor() меняется цвет у всех символов. Я же хочу, чтобы всё работало, будто я использую \x1b[**m(изменение цвета в консоли, ей можно обрамлять нужные символы)

P.S так это работало с \x1b[**m:

C++
1
cout<<"\x1b[32mHello, \x1b[34mWorld!<<"\x1b[0m"<<endl;
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.11.2020, 20:56
Ответы с готовыми решениями:

Изменение цвета конкретного символа текста в консоли
Мне нужно изменить цвет определенных элементов в массиве. Ну пусть для примера нужно будет изменить...

изменение конкретного символа в stringgrid
подскажите, пожалуйста. у меня есть стринггрид (двумерный) с числовыми значениями. кое-где...

Изменение цвета символа в консоле
Добрый день. Интересует, возможно ли сменить цвет отдельного символа в виндовской консоли? Либо...

Изменение цвета символа матрицы
Здравствуйте! Возникла необходимость изменения цвета конкретного символа в матрице. Этот символ...

9
Just Do It!
3841 / 2286 / 636
Регистрация: 23.09.2014
Сообщений: 7,073
Записей в блоге: 3
02.11.2020, 21:27 2
FeatheredVortex,
вот:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
///----------------------------------------------------------------------------|
/// Структура строки с цветными символами.
///----------------------------------------------------------------------------:
struct  Anim_str
{
    Anim_str(sf::String name)
        {   error = build(name);
        }
 
    struct Sign
    {      Sign() : _r(1.f), _g(1.f), _b(1.f),
                     r(0),    g(0),    b(0)
           {    srand((unsigned)time(0));
           }
        sf::String c;
        sf::Uint8  r;
        sf::Uint8  g;
        sf::Uint8  b;
 
        float _r;
        float _g;
        float _b;
        bool update()
        {
            if (_r < 255.f)
            {
                _r += 0.18f;
                _g += 0.17f;
                _b += 0.14f;
                r = (sf::Uint8)_r;
                g = (sf::Uint8)_g;
                b = (sf::Uint8)_b;
                return false;
            }
            return true;
        }
    };
 
    void info()
    {
        
    }
 
    void draw(sf::RenderWindow& window, sf::Text& message)
    {
        sf::Clock clock;
 
        float speed = -100.0f;
        while (window.isOpen())
        {
            float time = (float)clock.getElapsedTime().asMicroseconds() / 1000000;
            clock.restart();
 
            sf::Event               event;
            while (window.pollEvent(event))
            {
                switch (event.type)
                {
                case sf::Event::Closed: window.close(); break;
                case sf::Event::KeyPressed:
                {
                    switch (event.key.code)
                    {
                    case sf::Keyboard::Escape: return;
                    }
                }
                }
            }
 
            window.clear();
            ///------------------------------------|
            /// Рисуем на SFML экране.             |
            ///------------------------------------:
            message.setCharacterSize(38);
            message.setPosition(20.f, 20.f);
            
            int cnt_ = 0;
            for (auto& e : v)
            {
                message.setString(e.c);
                message.setFillColor(sf::Color(e.r, e.g, e.b));
                window.draw (message);
                message.move(20.f, 0.0f);
                if (cnt == cnt_)
                {   if(e.update())
                    {   ++cnt;
                    }
                }
                ++cnt_;
            }
 
            window.display();
        }
    }
 
private:
    ERROR_ build(sf::String& name)
    {   for (const auto& e : name)
        {   Sign o;
                 o.c += e;
                 v.emplace_back(o);
        }
        cnt = 0;
        return FAIL;
    }
 
    int cnt;
    std::vector<Sign> v;
    ERROR_ error;
};
это я делал для темы:
Бегущая строка SFML
можете глянуть как она там работает, правда цель была другая,
но не проблема задать свой индивидуальный цвет для каждого символа.
0
Всегда онлайн
1084 / 788 / 295
Регистрация: 07.04.2013
Сообщений: 2,703
02.11.2020, 22:30 3
FeatheredVortex, можете глянуть вот этот класс, сам его давно когда использовал, у него его API похож очень на API самого SFML: https://github.com/skyrpex/RichText
1
2 / 2 / 0
Регистрация: 09.02.2020
Сообщений: 84
03.11.2020, 19:00  [ТС] 4
Спасибо. В скором времени попробую разобрать Ваш код
0
Неэпический
17870 / 10635 / 2054
Регистрация: 27.09.2012
Сообщений: 26,737
Записей в блоге: 1
04.11.2020, 12:24 5
Можете еще здесь глянуть: SFML: Как сделать чтобы каждая буква отдельно выходила из разной точки и собиралась в одно слово?

после минимальной переделки можно получить такое


P.S. Бобра тебе, Taatshi.
1
Taatshi
14.11.2020, 20:17
  #6

Не по теме:

Цитата Сообщение от Croessmah Посмотреть сообщение
P.S. Бобра тебе, Taatshi
Ну и вот чего я с ним теперь делать буду?)) Он же мне всё на свете угрызёт)

0
Croessmah
16.11.2020, 09:06
  #7

Не по теме:

Цитата Сообщение от Taatshi Посмотреть сообщение
Ну и вот чего я с ним теперь делать буду?)) Он же мне всё на свете угрызёт)
Главное, не быть бревном. :jokingly:

0
Заблокирован
23.12.2020, 17:31 8
Croessmah, Грамотный. Без Порно.
Но главное! не быть бревном.
Подпишусь. Может и мне поленом прилетит
0
Заблокирован
23.01.2021, 13:17 9
А я бы уволил Админа
https://www.cyberforum.ru/members/166525.html
И не только его!

Добавлено через 4 минуты
Если ТЫ админ? Надо на форуме показываться? Хотя бы иногда?
0
Неэпический
17870 / 10635 / 2054
Регистрация: 27.09.2012
Сообщений: 26,737
Записей в блоге: 1
23.01.2021, 17:37 10
Цитата Сообщение от badakhshan Посмотреть сообщение
А я бы уволил Админа
Она здесь устроена на работу?

Цитата Сообщение от badakhshan Посмотреть сообщение
Надо на форуме показываться? Хотя бы иногда?
А кто Вам сказал, что Вам доступна информация об онлайне администрации?
0
23.01.2021, 17:37
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.01.2021, 17:37
Помогаю со студенческими работами здесь

Изменение цвета одного символа в строке
Есть такая прога которая проверяет введенный символы. Мне нужно чтобы при неправильном вводе в...

Изменение цвета символа с использованием системного прерывания BIOS!
Всем доброго времени суток помогите пожалуйста дописать программу! Мое задание звучит так вывести...

Изменение цвета символа ❶ в поле ввода формулы
Здравствуйте. Такой у меня вопрос. В эксель есть такой символ - ❶ Как заставить этот...

Изменение цвета символа с использованием системного прерывания BIOS
Всем доброго времени суток помогите пожалуйста дописать программу! Мое задание звучит так вывести...

Замена текста в объекте Shape.TextFrame.TextRange.Text
Здравствуйте! Помогите с заменой текста в объекте надпись Shape.TextFrame.TextRange.Text ...

Подсветка символа в объекте
Есть объект StaticText. У него свойство Caption, например = 'Absdefg' Нужно сделать курсор,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru