Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.64/25: Рейтинг темы: голосов - 25, средняя оценка - 4.64
0 / 0 / 0
Регистрация: 18.07.2023
Сообщений: 12

Как сделать кнопку?

23.08.2023, 23:42. Показов 7051. Ответов 58
Метки c++ (Все метки)

Студворк — интернет-сервис помощи студентам
То есть чтоб когда мышкой наводишься на определенную область например где текст, и нажимаешь на нее, то происходят определенные действия
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.08.2023, 23:42
Ответы с готовыми решениями:

как сделать свою кнопку
для курсового проекта мне нужно внедрить браузер в форму и сделать пару кнопок(типа вперед,назад) чтобы все работало,это я сделал с помощью...

Как в visual studio 10 сделать кнопку на форме?
сделал форму в visual studio 10.а как сделать пару кнопок?

После нажатия на кнопку TBitBtn сделать кнопку не действующей
Как после нажатия на кнопку bitbtn1 кнопка становилась не действушей

58
25.08.2023, 14:00
Студворк — интернет-сервис помощи студентам

Не по теме:

Наталья8, а вот касательно кражи винды, то её воруют только в развивающихся странах, причем, майкрософт в курсе этого и не против. Вот в моей стране я в каком-то кафе потрачу больше бабла, чем на лицензию винды. Да и если не ошибаюсь, вин11 отдельно не продается. Она уже предустановлена на устройствах и включена в их стоимость. По крайней мере, раньше на разных интернет-магазинах я видел лицензии винды, но сейчас их нет. Возможно, нужно купить 10, а до 11 обновляется бесплатно. Я в этой теме не эксперт, не могу точно сказать.

0
25.08.2023, 14:00

Не по теме:

Цитата Сообщение от Royal_X Посмотреть сообщение
я привёл статистику пользования
Я понял...
Жизнь разная.
По разному люди живут.
Уровень жизни.
Россия...

0
Just Do It!
 Аватар для XLAT
4220 / 2683 / 656
Регистрация: 23.09.2014
Сообщений: 9,236
Записей в блоге: 3
25.08.2023, 14:12
Цитата Сообщение от Наталья8 Посмотреть сообщение
Так кто же винду покупает?
Все её воруют...

откуда у них тада бабки?

Кликните здесь для просмотра всего текста
а, вспомнил:
я как то раз покупал винду-7 вместе с ноутом ...

каюсь, больше так делать не буду ...
0
 Аватар для Наталья8
624 / 382 / 67
Регистрация: 09.03.2016
Сообщений: 4,265
25.08.2023, 14:15
Ну да спасибо изучил...
(Жёлтым это развивающиеся.)
0
 Аватар для SmallEvil
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
25.08.2023, 14:29
Цитата Сообщение от XLAT Посмотреть сообщение
откуда у них тада бабки?
Лучше бы продолжили беседу о кнопочках и виджетах.
Почему никто не упомянул про UWP ? Это же последний писк моды

Не по теме:

А то подгорает. Берут бабки за нешо. Нет, хуже. За откровенный шлак : смартфоны с андроидом. Устаревающие (ихними стараниями) за пол года и до нескольких лет. Плюс еще и всю твою активность на нём в придачу.

0
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6318 / 3043 / 1054
Регистрация: 01.06.2021
Сообщений: 11,601
25.08.2023, 14:41
Наталья8, а, наверное, красным странам на карте, они дарят винду бесплатно как жест доброй воли всего лишь за спасибо и пару тонн алмазов.

Добавлено через 10 минут
SmallEvil, что там говорить про UWP? Я как вижу приложение на UWP, сразу его удаляю. Если стандартное удаление недоступно, то удаляю через PowerShell. Хотя, иногда делаю исключения...
0
Just Do It!
 Аватар для XLAT
4220 / 2683 / 656
Регистрация: 23.09.2014
Сообщений: 9,236
Записей в блоге: 3
25.08.2023, 15:23
Цитата Сообщение от SmallEvil Посмотреть сообщение
Лучше бы продолжили беседу о кнопочках и виджетах.
специально для эстетов:
SFML: ui собственными лапками:


"button.h"
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
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
///----------------------------------------------------------------------------|
/// ...
///----------------------------------------------------------------------------:
#include <iostream>
#include <string>
#include <vector>
#include <memory>
#include <SFML/Graphics.hpp>
 
#ifndef l
    #define l(v) std::cout << #v << " = " << v << "\n";
#endif
 
namespace ui
{
    struct  ButtonStyle   : public sf::Drawable
    {       ButtonStyle() : sprites(N), textures(N)
            {   std::string nm{"ui/0/"
            };
 
            for(unsigned i = 0; i < N; ++i)
            {   textures[i].loadFromFile(nm + txr[i]);
                sprites [i].setTexture  (textures[i]);
                //isprites [i].setScale    ({0.3f, 0.3f});
 
                sf::Vector2f sz = sf::Vector2f(textures[i].getSize());
                sprites[i].setOrigin(sz.x / 2, sz.y / 2);
            }
        }
 
        const char* txr[3] { "0.png", "1.png", "2.png" };
 
        void setPosition(sf::Vector2f pos)
        {   for(auto& e : sprites)
                e.setPosition(pos);
        }
 
        void prosses(const sf::RenderWindow& window, sf::Event& event)
        {
                auto win_sz    = window.getSize();
                auto mouse_pos = sf::Mouse::getPosition(window);
                mouse_pos      = {  mouse_pos.x - (int)win_sz.x / 2,
                                    mouse_pos.y - (int)win_sz.y / 2
                                 };
 
                auto btn_pos   = sprites .front().getPosition();
                auto sz        = textures.front().getSize    ();
 
                int ax = btn_pos.x - sz.x / 2;
                int ay = btn_pos.y - sz.y / 2;
 
                int bx = btn_pos.x + sz.x / 2;
                int by = btn_pos.y + sz.y / 2;
 
            if (event.type == sf::Event::MouseMoved)
            {
                if( ax < mouse_pos.x && mouse_pos.x < bx &&
                    ay < mouse_pos.y && mouse_pos.y < by)
                {   status = E_OVER;
                    l("E_OVER")
                }
                else
                {   status = E_FREE;
                    l("E_FREE")
                }
            }
 
            if (sf::Mouse::isButtonPressed(sf::Mouse::Left)
                && status == E_OVER)
            {   status =  E_DOWN;
                l("E_DOWN")
            }
            else if(ax < mouse_pos.x && mouse_pos.x < bx &&
                    ay < mouse_pos.y && mouse_pos.y < by)
            {
                status =  E_OVER;
            }
            else status =  E_FREE;
        }
 
        enum eSTATUS
        {   E_FREE,
            E_OVER,
            E_DOWN,
            /// ...
            E_END
        };
 
        eSTATUS status = E_FREE;
 
private:
        std::vector<sf::Sprite > sprites ;
        std::vector<sf::Texture> textures;
        static const unsigned N;
 
        virtual void draw(sf::RenderTarget& target,
                          sf::RenderStates  states) const
        {   target.draw(sprites[status], states);
        }
    };
    const unsigned ButtonStyle::N = 3;
 
    struct  ButtonsHolder
    {       ButtonsHolder(sf::RenderWindow& win) : window(win)
            {   bts.push_back(ButtonStyle());
                bts.back().setPosition({0, 0});
            }
 
        void draw()
        {   for(auto& b : bts)
                window.draw(b);
        }
 
        void prosses(sf::Event& event)
        {   for(auto& b : bts)
                b.prosses(window, event);
        }
 
        bool istest(){ return  bts.front().status == ButtonStyle::E_DOWN; }
 
private:
        std::vector<ButtonStyle> bts;
        sf::RenderWindow&     window;
    };
 
}
 
inline void testclass_ButtonStyle()
{   ui::ButtonStyle bs;
}
2
Just Do It!
 Аватар для XLAT
4220 / 2683 / 656
Регистрация: 23.09.2014
Сообщений: 9,236
Записей в блоге: 3
25.08.2023, 15:29
Цитата Сообщение от Наталья8 Посмотреть сообщение
Ну да спасибо изучил...
1. синие это Господа - Лорды или как принято называть их сейчас "Золотой ярд".
2. желтые - колонии Золотого ярда.
3. красные - нечего там взять.
0
 Аватар для Наталья8
624 / 382 / 67
Регистрация: 09.03.2016
Сообщений: 4,265
25.08.2023, 16:03
Цитата Сообщение от XLAT Посмотреть сообщение
специально для эстетов:
SFML
Я не эстет, но делал..
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
//  ============================= < КНОПКА ENTER > =====MouseButtonReleased====================== здесь вызов функции вырезать фрагмент
static bool once(false); static bool once1(false);
    if (key_sprite3.getGlobalBounds().contains(pos.x, pos.y) && (time_two - time_one) > 0.0)//  при наезде зеленеет при отьезде белеет
            {
    if (event.type == Event::MouseButtonPressed && event.key.code == Mouse::Left)//если нажата клавиша мыши
            {  once = true;  once1 = true;
        } else {
if (event.type == Event::MouseButtonReleased && event.key.code == Mouse::Left)//если нажата клавиша мыши
          {
    if (once)viddy.Cutter_video(time_one, time_two, out_filename, ret_size, volume_x);
            once = false; once1 = false;
          } }
    if (once1)key_sprite3.setColor(Color::Yellow);//красим КНОПКУ в жёлтый
    else key_sprite3.setColor(Color::Green);//красим КНОПКУ в зелёный
       } else key_sprite3.setColor(Color::White);//красим КНОПКУ в белый
На нём удобно...
1
Just Do It!
 Аватар для XLAT
4220 / 2683 / 656
Регистрация: 23.09.2014
Сообщений: 9,236
Записей в блоге: 3
25.08.2023, 16:47
Цитата Сообщение от Наталья8 Посмотреть сообщение
Я не эстет
вот так уже лучше:

короче, надо художницу в команду
и шоп сама была ничо ...
0
 Аватар для Наталья8
624 / 382 / 67
Регистрация: 09.03.2016
Сообщений: 4,265
27.08.2023, 03:56
Test.mp4
0
 Аватар для Наталья8
624 / 382 / 67
Регистрация: 09.03.2016
Сообщений: 4,265
27.08.2023, 14:54
Кому фигня - мусор...

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
// Здесь разставляю маленькие кнопочки яркости, и запоминаю их координаты в глобальные перем.
                        string lit[5] = { "0", "1", "2","3","Bright"};
                        for (short i = 0; i < 4; ++i) {
                        switch (i)
                            {
                            case 0:
                                coord_x_brg = width -= 163;
                                    putText(scr, lit[4], Point(width// надпись <Bright>
                                        , 30 + coord_y), 4, 0.6// размер в дублях
                                        , Scalar(28, 220, 182), 1); // Толщина int           
                                break;
                            case 1:
                                coord_x_brg1 = width += 20;
                                break;
                            case 2:
                                coord_x_brg2 = width += 20;
                                break;
                            case 3:
                                coord_x_brg3 = width += 20;
                                break;
                            }
                        Roi_a = scr(Rect(width, coord_y// Кнопочки с верху регул. яркость.
                                , 17,// <--- длина области (кнопочки)
                                14));// <--- высота
                            Roi_a.setTo(Scalar(50, 50, i*50));
                            putText(scr,lit[i], Point(width+2
                                , 11+ coord_y), 4, 0.5// размер в дублях
                                , Scalar(28, 220, 182), 1); // Толщина int                                                           
                            }
0
 Аватар для Наталья8
624 / 382 / 67
Регистрация: 09.03.2016
Сообщений: 4,265
03.09.2023, 12:48
final_file.mp4
Вот ещё нарисовал.
Два дня рисовал...
C++
1
2
3
4
5
6
7
8
9
10
//av_find_best_stream(m_pFormatCtx, AVMEDIA_TYPE_AUDIO, -1, -1, NULL, 0);
    
//printf(" VideoSt_indx %d\n", m_iVideoSt_indx);
 
static short circle{0};
m_iAudioSt_indx = m_flags[circle];
if (circle++ < m_indx-1);
else circle = 0;
 
         // printf(" --- %d\n", m_flags[circle]);
0
Just Do It!
 Аватар для XLAT
4220 / 2683 / 656
Регистрация: 23.09.2014
Сообщений: 9,236
Записей в блоге: 3
03.09.2023, 12:55
Цитата Сообщение от Наталья8 Посмотреть сообщение
Вот ещё нарисовал.
0
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6318 / 3043 / 1054
Регистрация: 01.06.2021
Сообщений: 11,601
03.09.2023, 13:38
XLAT, это уж дело вкуса. Мне вот в десктопных программах Windows такие кнопки точно не понравились бы. Я предпочитаю, когда программа полностью соответствует философии дизайна Windows.
То же самое касается других ОС. Например, я создавал приложения на Android и чётко следовал философии Android.
Например, в методических рекомендациях по дизайну Windows приводятся советы:
- когда стоит использовать те или иные контролы, окна и пр.
- каких размеров их лучше сделать
- как правильно размещать дочерние окна (в том числе, кнопки, ползунки, текстовые поля и т.д.)
- какие палитры цветов использовать
- какие шрифты использовать
- анимации, эффекты
- другие советы
И вот, если следовать рекомендациям, то получим программу, которая будет вписываться в родную экосистему ОС.

Конечно, я не говорю, что нужно тупо следовать этим рекомендациям и использовать лишь кнопки и прочие элементы из чистой WinAPI. Как раз, у топовых программ всегда бывает свой кастомный интерфейс и даже целая собственная философия дизайна, которая распространяется на другие продукты из серии (например, у программ из Adobe Creative Cloud собственная философия интерфейса, у программ MS Office тоже своя и т.д.).
Но вот я имею в виду, что если среднестатистический Вася пишет простенькую программу на Windows, то лучше ему не создавать всяких артхаусных кнопок, а просто использовать кнопки WinAPI и следовать рекомендациям Microsoft.

XLAT, такие сочные кнопки, как у вас, больше подошли бы для меню какой-нибудь игры. Но тут уже другая история: насколько целесообразно создавать такие кнопки выбранным вами методом? Ведь, в игровом движке это дело очень банальное и не занимает много времени.
0
Just Do It!
 Аватар для XLAT
4220 / 2683 / 656
Регистрация: 23.09.2014
Сообщений: 9,236
Записей в блоге: 3
03.09.2023, 13:56
Цитата Сообщение от Royal_X Посмотреть сообщение
больше подошли бы для меню
1. кросс.
2. если можно такие выпучиглазные, знам можно любые.
3. да, это велосипед, а значит его можно полностью контролировать,
т.е. делать с ним абсолютно всё, например, сделать на кнопке интерактивную анимацию и тд и тп...

Цитата Сообщение от Royal_X Посмотреть сообщение
такие кнопки точно не понравились бы
взял рандомно первые попавшиеся, примерно, с такого сайта:
https://www.pngegg.com/ru/search?q=кнопка+текстуры

Royal_X,
Дизайн кнопок, я уже выше намекал,
это не дело программиста.

Дело программиста, обеспечить дизайнеру лёгкий доступ к дизайнерскому интерфейсу,
для начала, хотя бы, чтобы он - диз-интерфейс просто был.

т.е. просто:
1. придумывается(желательно тоже худ-дизайнером) формат файла-стиля.
2. который можно загрузить из вне, например, из файла.
3. кодер пишет парсер этого формата.
4. готово.

один дизайнер рисует одну шкурку,
а другой рисует другую шкурку.

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

первый вариант для домохозяек, второй для работников силовых ведомств ...

...
0
03.09.2023, 14:04

Не по теме:

Цитата Сообщение от XLAT Посмотреть сообщение
Дизайн кнопок, я уже выше намекал,
это не дело программиста.
Да ладно, графический дизайн, сделанный программистом, заслуживает отдельное место в истории искусства, где-то в одом ряду с авангардизмом :)

0
03.09.2023, 14:17

Не по теме:

Слишком вы все, товарищи, восхваляете дизайнеров. Очень часто дизайн простого смертного намного лучше, чем дизайн "дизайнера" с погонами генерала.
Вот возьмем логотип московского метро, созданный студией Артемия Лебедева. Мне кажется, любой профан может в бесплатном Inkscape создать логотип куда лучше.

0
Just Do It!
 Аватар для XLAT
4220 / 2683 / 656
Регистрация: 23.09.2014
Сообщений: 9,236
Записей в блоге: 3
03.09.2023, 14:30
Цитата Сообщение от zayats80888 Посмотреть сообщение
графический дизайн, сделанный программистом, заслуживает отдельное место в истории искусства, где-то в одом ряду с авангардизмом
пару утилиток делал для сэба,
так очень сильно старался чтобы поменьше было всяких кнопок,
каждая добавленная кнопка, требовала веского основания быть добавленной.

потому что прожимать все эти кнопки иной раз просто времени жалко))

Цитата Сообщение от Royal_X Посмотреть сообщение
Слишком вы все, товарищи, восхваляете дизайнеров
Лебедева, даже если бы он мне денег заплатил, то всё равно я бы его не нанял))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
03.09.2023, 14:30

Как сделать многострочную кнопку?
В WinAPI есть такой флаг BS_MULTILINE. А что может предложить Qt?

Как сделать активной кнопку
Как сделать активной кнопку во время выполнения функции под другой кнопкой что бы можно было остановить, отменить?

Как сделать кнопку не активной?
Создаю Визардом диалоговый проект: В окне две кнопки... нужно чтобы при нажатии на Button1 делалась не активной Button2 Пробую...

Как сделать не стандартную кнопку
есть картинка к примеру крестик как натянуть ее на кнопку и менять к примеру на нолик при наведении. Пытался натенуть сам но кнопка...

Как сделать красивую кнопку?
Очень редко вижу такие кнопки: . И очень часто такие: . Как сделать второй вариант?


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

Или воспользуйтесь поиском по форуму:
59
Ответ Создать тему
Новые блоги и статьи
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701 Купил два термопринтера QR701. На сэлф-тесте написано: Language: PC936 (GB18030). Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
Создание формы заимствованного документа
Maks 03.08.2026
Задача: Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также табличная часть со следующими реквизитами: - Расчетный счет покупателя. . .
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача: В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
Почему SEO не начинается с ключевых слов: что проверить до написания текстов
Neotwalker 01.08.2026
Когда владельцу сайта предлагают заняться SEO, первым шагом часто становится сбор запросов и написание текстов. Логика кажется понятной: 1. Находим ключевые слова. 2. Добавляем их на. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru