Russian Qt Forum
Апрель 19, 2024, 05:00
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Общие вопросы
>
помогите пожалуйста соеденить два кода
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: помогите пожалуйста соеденить два кода (Прочитано 9779 раз)
Noize_programmer
Чайник
Offline
Сообщений: 91
работает не трогай
помогите пожалуйста соеденить два кода
«
:
Январь 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
Сообщений: 4727
Re: помогите пожалуйста соеденить два кода
«
Ответ #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
Сообщений: 870
Мы должны приносить пользу людям.
Re: помогите пожалуйста соеденить два кода
«
Ответ #2 :
Январь 24, 2023, 22:52 »
Цитата: kambala от Январь 24, 2023, 16:59
так а что не получается-то?
Что не понятно? "пытылся" "соеденить" и не получилось. "Памагите!!"
Записан
Qt 5.13.0 Qt Creator 5.0.1
Win10, Ubuntu 20.04
Noize_programmer
Чайник
Offline
Сообщений: 91
работает не трогай
Re: помогите пожалуйста соеденить два кода
«
Ответ #3 :
Январь 25, 2023, 12:48 »
Цитата: kambala от Январь 24, 2023, 16:59
так а что не получается-то?
в каждом варианте "соеденения" которое я делал были
ошибки
кроме одного но в нем откравалось два окна окно загрузки моментально перекрывалось окном Notpad
«
Последнее редактирование: Январь 25, 2023, 12:51 от Noize_programmer
»
Записан
Официальная стандартизация языка с++ началась в 1998 году, когда был опубликован стандарт языка ISO/IEC 14882:1998(известный как C++98), разработанный комитетом по стандартизации C++(ISO/IEC JTC1/SC22/WG21 working group)
kambala
Джедай : наставник для всех
Offline
Сообщений: 4727
Re: помогите пожалуйста соеденить два кода
«
Ответ #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
Сообщений: 91
работает не трогай
Re: помогите пожалуйста соеденить два кода
«
Ответ #5 :
Январь 25, 2023, 14:33 »
Цитата: kambala от Январь 25, 2023, 13:59
так показывай свои варианты
код который упоминается:
Код:
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
Сообщений: 4727
Re: помогите пожалуйста соеденить два кода
«
Ответ #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
Сообщений: 91
работает не трогай
Re: помогите пожалуйста соеденить два кода
«
Ответ #7 :
Январь 26, 2023, 11:19 »
Цитата: kambala от Январь 26, 2023, 09:53
а каким ты видишь конечный результат? что должно происходить (пошагово)?
(картинка загрузки это иконка приложения)
1 окно загрузки открывается
2 загрузка началась
3 загрузка закончена (спустя 1 минуту(может чуть больше))
4 окнозагрузки закрылось и открылось окно Notepad
5 предусмотреные действия пользователя (использование программы по назначению)
Цитата: kambala от Январь 26, 2023, 09:53
достаточно сделать 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
Сообщений: 4727
Re: помогите пожалуйста соеденить два кода
«
Ответ #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
Сообщений: 91
работает не трогай
Re: помогите пожалуйста соеденить два кода
«
Ответ #9 :
Январь 26, 2023, 16:33 »
Цитата: kambala от Январь 26, 2023, 15:31
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
Сообщений: 4727
Re: помогите пожалуйста соеденить два кода
«
Ответ #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
Сообщений: 91
работает не трогай
Re: помогите пожалуйста соеденить два кода
«
Ответ #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
Сообщений: 4727
Re: помогите пожалуйста соеденить два кода
«
Ответ #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
Сообщений: 91
работает не трогай
Re: помогите пожалуйста соеденить два кода
«
Ответ #13 :
Январь 27, 2023, 11:18 »
Цитата: kambala от Январь 26, 2023, 17:40
потому что load_Window() нигде не вызывается
саписибо огромное всё заработало
Записан
Официальная стандартизация языка с++ началась в 1998 году, когда был опубликован стандарт языка ISO/IEC 14882:1998(известный как C++98), разработанный комитетом по стандартизации C++(ISO/IEC JTC1/SC22/WG21 working group)
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...