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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: помогите пожалуйста соеденить два кода  (Прочитано 9779 раз)
Noize_programmer
Чайник
*
Offline Offline

Сообщений: 91


работает не трогай


Просмотр профиля WWW
« : Январь 24, 2023, 11:04 »

                                                                                               решено




я пытылся сам но у меня не получилось Грустный Грустный Грустный Плачущий
помогите пожалуйста соеденить два кода
ну или хотя бы объясните Непонимающий Непонимающий Непонимающий

код 1 :
https://github.com/SpeechKingV/customNotePad
код 2 :
Код:

void load_Window(QSplashScreen* psplash)
{
    QTime time;
    time.start();

    int i;
    for(i = 0; i < 10000000;);
    {
        if(time.elapsed() > 40)
        {
            time.start();
            ++i;
        }
        psplash->showMessage("Loading : "
                            + QString::number((i/1000000))+ "%",
                             Qt::AlignHCenter | Qt::AlignBottom,
                             Qt::black
                             );
        qApp->processEvents();
    }

[....]
{
    QSplashScreen splash(QPixmap(":/icon/raibow icon notepad.jpg"));

    QLabel lbl("<H1><CENTER>Costum Notepad<BR>"
               "Is ready!</Center></H1>"
               );

        splash.finish(&lbl);
        lbl.resize(250,250);
        lbl.show();
}



« Последнее редактирование: Январь 27, 2023, 11:22 от Noize_programmer » Записан

Официальная стандартизация языка с++ началась в 1998 году, когда был опубликован стандарт языка ISO/IEC 14882:1998(известный как C++98), разработанный комитетом по стандартизации C++(ISO/IEC JTC1/SC22/WG21 working group)
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4727



Просмотр профиля WWW
« Ответ #1 : Январь 24, 2023, 16:59 »

так а что не получается-то?
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
sergek
Гипер активный житель
*****
Offline Offline

Сообщений: 870


Мы должны приносить пользу людям.


Просмотр профиля
« Ответ #2 : Январь 24, 2023, 22:52 »

так а что не получается-то?
Что не понятно? "пытылся" "соеденить" и не получилось. "Памагите!!"
Записан

Qt 5.13.0 Qt Creator 5.0.1
Win10, Ubuntu 20.04
Noize_programmer
Чайник
*
Offline Offline

Сообщений: 91


работает не трогай


Просмотр профиля WWW
« Ответ #3 : Январь 25, 2023, 12:48 »

так а что не получается-то?

в каждом варианте "соеденения" которое я делал были ошибки
кроме одного но в нем откравалось два окна окно загрузки моментально перекрывалось окном Notpad
« Последнее редактирование: Январь 25, 2023, 12:51 от Noize_programmer » Записан

Официальная стандартизация языка с++ началась в 1998 году, когда был опубликован стандарт языка ISO/IEC 14882:1998(известный как C++98), разработанный комитетом по стандартизации C++(ISO/IEC JTC1/SC22/WG21 working group)
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4727



Просмотр профиля WWW
« Ответ #4 : Январь 25, 2023, 13:59 »

так показывай свои варианты
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Noize_programmer
Чайник
*
Offline Offline

Сообщений: 91


работает не трогай


Просмотр профиля WWW
« Ответ #5 : Январь 25, 2023, 14:33 »

так показывай свои варианты
код который упоминается:
Код:
void load_Window(QSplashScreen* psplash)
{
    QTime time;
    time.start();

    int i;
    for(i = 0; i < 10000000;);
    {
        if(time.elapsed() > 40)
        {
            time.start();
            ++i;
        }
        psplash->showMessage("Loading : "
                            + QString::number((i/1000000))+ "%",
                             Qt::AlignHCenter | Qt::AlignBottom,
                             Qt::black
                             );
        qApp->processEvents();
    }

[....]
{
    QSplashScreen splash(QPixmap(":/icon/raibow icon notepad.jpg"));

    QLabel lbl("<H1><CENTER>Costum Notepad<BR>"
               "Is ready!</Center></H1>"
               );

        splash.finish(&lbl);
        lbl.resize(250,250);
        lbl.show();
}

вариант 1: 2 окна
код и функция в main()

вариант 2:
код в cpp (main_Notepad) и в функция в h  (main_Notepad)

вариант 3:
код и функция в cpp (main_Notepad)

вариант 4:
код смешан с кодом функции в cpp (main_Notepad)


код и функция = код из код который упоминается + функция из код который упоминается
Записан

Официальная стандартизация языка с++ началась в 1998 году, когда был опубликован стандарт языка ISO/IEC 14882:1998(известный как C++98), разработанный комитетом по стандартизации C++(ISO/IEC JTC1/SC22/WG21 working group)
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4727



Просмотр профиля WWW
« Ответ #6 : Январь 26, 2023, 09:53 »

ты читал о QSplashScreen, как он работает? по этому огрызку кода у тебя получится, что заставка скроется мгновенно, ведь лейблу не требуется времени на инициализацию. зачем там миллионы итераций и QTime тоже не особо понятно: достаточно сделать 10 или 100 и добавить sleep для симуляции работы.

а каким ты видишь конечный результат? что должно происходить (пошагово)?
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Noize_programmer
Чайник
*
Offline Offline

Сообщений: 91


работает не трогай


Просмотр профиля WWW
« Ответ #7 : Январь 26, 2023, 11:19 »

а каким ты видишь конечный результат? что должно происходить (пошагово)?


(картинка загрузки это иконка приложения)
1 окно загрузки открывается
2 загрузка началась
3 загрузка закончена  (спустя 1 минуту(может чуть больше))

4 окнозагрузки закрылось и открылось окно Notepad
5 предусмотреные действия пользователя (использование программы по назначению)


достаточно сделать 10 или 100 и добавить sleep для симуляции работы.

спасибо а то я подзабыл как называется "sleep"
« Последнее редактирование: Январь 26, 2023, 12:14 от Noize_programmer » Записан

Официальная стандартизация языка с++ началась в 1998 году, когда был опубликован стандарт языка ISO/IEC 14882:1998(известный как C++98), разработанный комитетом по стандартизации C++(ISO/IEC JTC1/SC22/WG21 working group)
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4727



Просмотр профиля WWW
« Ответ #8 : Январь 26, 2023, 15:31 »

1. в main() сначала создаем QSplashScreen
2. вызываем твою load_Window(), где происходит симуляция загрузки
3. после этого создаем main_notepad (как сейчас в коде)
4. после вызова w.show() у main_notepad добавляем splash.finish(&w), что скроет заставку и покажет главное окно программы
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Noize_programmer
Чайник
*
Offline Offline

Сообщений: 91


работает не трогай


Просмотр профиля WWW
« Ответ #9 : Январь 26, 2023, 16:33 »

1. в main() сначала создаем QSplashScreen
2. вызываем твою load_Window(), где происходит симуляция загрузки
3. после этого создаем main_notepad (как сейчас в коде)
4. после вызова w.show() у main_notepad добавляем splash.finish(&w), что скроет заставку и покажет главное окно программы

спасибо огромное только какое ставить число в sleep чтобы загрузка длилась 1 минуту?
Записан

Официальная стандартизация языка с++ началась в 1998 году, когда был опубликован стандарт языка ISO/IEC 14882:1998(известный как C++98), разработанный комитетом по стандартизации C++(ISO/IEC JTC1/SC22/WG21 working group)
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4727



Просмотр профиля WWW
« Ответ #10 : Январь 26, 2023, 16:40 »

если надо прямо ровно минуту, то тебе надо найти «скорость» загрузки. скажем, надо пройти 100 шагов (от 0 до 100%) за минуту, значит каждый шаг надо проходить за 60/100 = 0.6 секунд (или 600 мс). т.е. надо обновлять интерфейс каждые 0.6 секунд, вот тут как раз QTime и пригодится.

также можно сделать асинхронно через таймер, который будет «тикать» каждые 0.6 секунд, чтоб время вручную не считать.
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Noize_programmer
Чайник
*
Offline Offline

Сообщений: 91


работает не трогай


Просмотр профиля WWW
« Ответ #11 : Январь 26, 2023, 17:05 »

вото так?
Код:
#include"main_notepad.h"

#include <QApplication>
#include <QThread>

void load_Window(QSplashScreen* psplash)
{

    int i;
    for(i = 0; i < 100; i++)
    {

        QThread::msleep(600);

        psplash->showMessage("Loading : "
                            + QString::number(i)+ "%",
                             Qt::AlignHCenter | Qt::AlignBottom,
                             Qt::black
                             );
        qApp->processEvents();
    }
}

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    QSplashScreen splash(QPixmap(":/icon/raibow icon notepad.jpg"));

    main_notepad w;
    w.setWindowTitle("Costom Notepad");
    w.setWindowIcon(QIcon(":/icon/raibow icon notepad.jpg"));
    w.resize(800,600);

    splash.finish(&w);

    w.show();

    return a.exec();
}
просто если сделать так то тогда загрузки невидно (просто запускается Notepad)
Записан

Официальная стандартизация языка с++ началась в 1998 году, когда был опубликован стандарт языка ISO/IEC 14882:1998(известный как C++98), разработанный комитетом по стандартизации C++(ISO/IEC JTC1/SC22/WG21 working group)
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4727



Просмотр профиля WWW
« Ответ #12 : Январь 26, 2023, 17:40 »

потому что load_Window() нигде не вызывается Улыбающийся
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Noize_programmer
Чайник
*
Offline Offline

Сообщений: 91


работает не трогай


Просмотр профиля WWW
« Ответ #13 : Январь 27, 2023, 11:18 »

потому что load_Window() нигде не вызывается Улыбающийся

саписибо огромное всё заработало
Записан

Официальная стандартизация языка с++ началась в 1998 году, когда был опубликован стандарт языка ISO/IEC 14882:1998(известный как C++98), разработанный комитетом по стандартизации C++(ISO/IEC JTC1/SC22/WG21 working group)
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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