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

Войти
 
  Начало Форум WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  
  Просмотр сообщений
Страниц: 1 [2] 3 4 ... 7
16  Qt / Общие вопросы / помогите пожалуйста (game dev)(music) : Июнь 23, 2023, 17:24
проект: https://github.com/SpeechKingV/guess_the_number__with_graphics

подскажите как можно воспроизвести музыку (средствами с++)(для windows 10)
(мелодию для проекта ещё не создал)
я пытался так:

Код:
// это  в https://github.com/SpeechKingV/guess_the_number__with_graphics/blob/main/Menu_games.cpp

#include <windows.h>
#include <conio.h>
#include <mmsystem.h>//sndPlaySound
#include <stdio.h>
#include <tchar.h>
#pragma comment(lib, "winmm.lib")

// это в конструкторе

    if(!settings[1]) // включена ли музыка(в настройках игры)
    {
        wchar_t path[]=L"1.wav";
            PlaySound(path, NULL, SND_FILENAME);
    }

 Плачущий Обеспокоенный Грустный Плачущий Обеспокоенный Грустный

но выдаёт ошибки:

это вроде из-за ошибки линковки

Menu_games.cpp:29: ошибка: undefined reference to `__imp_PlaySoundW'
debug/Menu_games.o: In function `MenuGames::MenuGames(QWidget*)':
Menu_games.cpp:29: undefined reference to `__imp_PlaySoundW'

:-1: ошибка: collect2.exe: error: ld returned 1 exit status


:-1: ошибка: [Makefile.Debug:89: debug/guess_the_number__with_graphics.exe] Error 1


и предупреждение:

Menu_games.cpp:17: предупреждение: ignoring #pragma comment  [-Wunknown-pragmas]
Menu_games.cpp:17:0: warning: ignoring #pragma comment  [-Wunknown-pragmas]
 #pragma comment(lib, "winmm.lib")



и подскажите пожалуйста
как програмно изменить звук
всей системмы
(средствами с++)(для windows 10)
17  Qt / Общие вопросы / Re: помогите пожалуйста (game dev) : Июнь 23, 2023, 17:04
не сильно понятно что там где происходит. в месте, где у тебя заканчивается уровень, надо сигнал выслать, чтоб обрабатывающий сигнал вызывал твою функцию set.
спасибо игра не закрывается Веселый Веселый Веселый Веселый Веселый Веселый Веселый Веселый Улыбающийся Улыбающийся Улыбающийся Улыбающийся Улыбающийся Улыбающийся Улыбающийся Улыбающийся Смеющийся Смеющийся Смеющийся Смеющийся Смеющийся Смеющийся Смеющийся Смеющийся Подмигивающий Подмигивающий Подмигивающий Подмигивающий Подмигивающий Подмигивающий Подмигивающий Подмигивающий
18  Qt / Общие вопросы / Re: помогите пожалуйста (game dev) : Июнь 23, 2023, 12:48
https://github.com/SpeechKingV/guess_the_number__with_graphics/blob/main/GuessTheNumber_WithGraphics.h не вижу ту никакой функции set. так в каком именно месте проблема?

не надо злоупотреблять разноцветным текстом
GuessTheNumber_WithGraphics.h:22(закоментирована)

Menu_games.cpp:80(for() закоментираван)
19  Qt / Общие вопросы / Re: помогите пожалуйста (game dev) : Июнь 22, 2023, 15:48
а что мешает выслать сигнал при окончании уровня и обработать его в этом же потоке?
пытался но так и не понял как это сделать Непонимающий
может подскажете?
(проблема не из-за потоков а из-за функции set у класса GuessTheNumber_WithGraphics(переменной w))
20  Qt / Общие вопросы / Re: помогите пожалуйста (game dev) : Июнь 21, 2023, 18:22
абсолютно неочевидно зачем для этого другой поток
что бы подождать конца прошлого уровня(поток)(уровень = поток)
21  Qt / Общие вопросы / Re: помогите пожалуйста (game dev) : Июнь 21, 2023, 15:38
Я бы советовал сначала почитать литературу по программированию. Такое чувство, что вы надёргали куски кода, толком не понимая, что именно эти куски делают.
Допустим, вы сначала открываете файл с параметром QIODevice::WriteOnly, а чуть ниже пытаетесь из него читать с помощью readAll (видимо, не совсем понимая, как работает QTextStream)
С потоками та же беда.
Кстати, зачем они вам там? Почему бы вам просто не создать GuessTheNumber_WithGraphics и использовать?
потоки для того что бы следующий уровень открывался при прохождении предыдущего
22  Qt / Общие вопросы / Re: помогите пожалуйста (game dev) : Июнь 02, 2023, 12:18
проект:https://github.com/SpeechKingV/guess_the_number__with_graphics
(я перезалил(другая версия))

у file.open() надо проверять возвращаемое значение, может он не может создать файл в той папке
Код:
if(file.open(QIODevice::WriteOnly))
так?

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

вывод приложения:
12:14:21: Запускается F:\projects\Qt_project\5.0.2\games\guess_the_number__with_graphics\build-guess_the_number__with_graphics-Desktop_Qt_5_12_12_MinGW_64_bit-Debug\debug\guess_the_number__with_graphics.exe ...
QIODevice::read (QFile, "Save.txt"): WriteOnly device
QObject::moveToThread: Widgets cannot be moved to a new thread
12:14:33: Программа неожиданно завершилась.
12:14:33: Процесс был завершён принудительно.
12:14:33: F:\projects\Qt_project\5.0.2\games\guess_the_number__with_graphics\build-guess_the_number__with_graphics-Desktop_Qt_5_12_12_MinGW_64_bit-Debug\debug\guess_the_number__with_graphics.exe аварийно завершился.



вывод сборки:
12:14:17: Выполняются этапы для проекта guess_the_number__with_graphics...
12:14:17: Настройки не изменились, этап qmake пропускается.
12:14:17: Запускается: «F:\Qt5.14\Tools\mingw730_64\bin\mingw32-make.exe» -j6
F:/Qt5.14/Tools/mingw730_64/bin/mingw32-make -f Makefile.Debug
mingw32-make[1]: Entering directory 'F:/projects/Qt_project/5.0.2/games/guess_the_number__with_graphics/build-guess_the_number__with_graphics-Desktop_Qt_5_12_12_MinGW_64_bit-Debug'
g++ -c -fno-keep-inline-dllexport -g -std=gnu++11 -Wall -W -Wextra -fexceptions -mthreads -DUNICODE -D_UNICODE -DWIN32 -DMINGW_HAS_SECURE_API=1 -DQT_QML_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_NEEDS_QMAIN -I..\guess_the_number__with_graphics -I. -IF:\Qt5.14\5.12.12\mingw73_64\include -IF:\Qt5.14\5.12.12\mingw73_64\include\QtWidgets -IF:\Qt5.14\5.12.12\mingw73_64\include\QtGui -IF:\Qt5.14\5.12.12\mingw73_64\include\QtANGLE -IF:\Qt5.14\5.12.12\mingw73_64\include\QtCore -Idebug -I. -I/include -IF:\Qt5.14\5.12.12\mingw73_64\mkspecs\win32-g++  -o debug\Menu_games.o ..\guess_the_number__with_graphics\Menu_games.cpp
g++ -Wl,-subsystem,windows -mthreads -o debug\guess_the_number__with_graphics.exe debug/GuessTheNumber_WithGraphics.o debug/Menu_games.o debug/main.o debug/qrc_resource_file.o debug/moc_GuessTheNumber_WithGraphics.o debug/moc_Menu_games.o  F:\Qt5.14\5.12.12\mingw73_64\lib\libQt5Widgetsd.a F:\Qt5.14\5.12.12\mingw73_64\lib\libQt5Guid.a F:\Qt5.14\5.12.12\mingw73_64\lib\libQt5Cored.a  -lmingw32 F:\Qt5.14\5.12.12\mingw73_64\lib\libqtmaind.a -LC:\openssl\lib -LC:\Utils\my_sql\mysql-5.6.11-winx64\lib -LC:\Utils\postgresql\pgsql\lib -lshell32
mingw32-make[1]: Leaving directory 'F:/projects/Qt_project/5.0.2/games/guess_the_number__with_graphics/build-guess_the_number__with_graphics-Desktop_Qt_5_12_12_MinGW_64_bit-Debug'
12:14:21: Процесс «F:\Qt5.14\Tools\mingw730_64\bin\mingw32-make.exe» завершился успешно.
12:14:21: Прошло времени: 00:04.
23  Qt / Общие вопросы / Re: помогите пожалуйста (game dev) : Май 31, 2023, 10:20
Цитировать
окно игры пропадает при запуске
потому что объект типа GuessTheNumber_WithGraphics удаляется сразу после выхода из функции. замени на указатель, тогда окно не будет закрываться.
Цитировать
файл сохранения не создаётся(он .txt)
ты забыл вызвать file.open()
спасибо окно игры перестало закрываться, но файл сохранения фсё ещё не появляется
24  Qt / Общие вопросы / [РЕШЕНО]помогите пожалуйста (game dev) : Май 30, 2023, 12:37
проект: https://github.com/SpeechKingV/guess_the_number__with_graphics

  • окно игры пропадает при запуске(не меню)(из кнопок работает только "Start a new game"(так должно быть(пока что)))

  • файл сохранения не создаётся(он .txt)

вывод приложения:
12:32:06: Запускается F:\projects\Qt_project\5.0.2\games\guess_the_number__with_graphics\build-guess_the_number__with_graphics-Desktop_Qt_5_12_12_MinGW_64_bit-Debug\debug\guess_the_number__with_graphics.exe ...
QIODevice::write (QFile, "Save"): device not open
12:32:38: F:\projects\Qt_project\5.0.2\games\guess_the_number__with_graphics\build-guess_the_number__with_graphics-Desktop_Qt_5_12_12_MinGW_64_bit-Debug\debug\guess_the_number__with_graphics.exe завершился с кодом 0

выывод сборки:
12:31:57: Выполняются этапы для проекта guess_the_number__with_graphics...
12:31:57: Настройки не изменились, этап qmake пропускается.
12:31:58: Запускается: «F:\Qt5.14\Tools\mingw730_64\bin\mingw32-make.exe» -j6
F:/Qt5.14/Tools/mingw730_64/bin/mingw32-make -f Makefile.Debug
mingw32-make[1]: Entering directory 'F:/projects/Qt_project/5.0.2/games/guess_the_number__with_graphics/build-guess_the_number__with_graphics-Desktop_Qt_5_12_12_MinGW_64_bit-Debug'
g++ -c -fno-keep-inline-dllexport -g -std=gnu++11 -Wall -W -Wextra -fexceptions -mthreads -DUNICODE -D_UNICODE -DWIN32 -DMINGW_HAS_SECURE_API=1 -DQT_QML_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_NEEDS_QMAIN -I..\guess_the_number__with_graphics -I. -IF:\Qt5.14\5.12.12\mingw73_64\include -IF:\Qt5.14\5.12.12\mingw73_64\include\QtWidgets -IF:\Qt5.14\5.12.12\mingw73_64\include\QtGui -IF:\Qt5.14\5.12.12\mingw73_64\include\QtANGLE -IF:\Qt5.14\5.12.12\mingw73_64\include\QtCore -Idebug -I. -I/include -IF:\Qt5.14\5.12.12\mingw73_64\mkspecs\win32-g++  -o debug\Menu_games.o ..\guess_the_number__with_graphics\Menu_games.cpp
g++ -Wl,-subsystem,windows -mthreads -o debug\guess_the_number__with_graphics.exe debug/GuessTheNumber_WithGraphics.o debug/Menu_games.o debug/main.o debug/qrc_resource_file.o debug/moc_GuessTheNumber_WithGraphics.o debug/moc_Menu_games.o  F:\Qt5.14\5.12.12\mingw73_64\lib\libQt5Widgetsd.a F:\Qt5.14\5.12.12\mingw73_64\lib\libQt5Guid.a F:\Qt5.14\5.12.12\mingw73_64\lib\libQt5Cored.a  -lmingw32 F:\Qt5.14\5.12.12\mingw73_64\lib\libqtmaind.a -LC:\openssl\lib -LC:\Utils\my_sql\mysql-5.6.11-winx64\lib -LC:\Utils\postgresql\pgsql\lib -lshell32
mingw32-make[1]: Leaving directory 'F:/projects/Qt_project/5.0.2/games/guess_the_number__with_graphics/build-guess_the_number__with_graphics-Desktop_Qt_5_12_12_MinGW_64_bit-Debug'
12:32:06: Процесс «F:\Qt5.14\Tools\mingw730_64\bin\mingw32-make.exe» завершился успешно.
12:32:06: Прошло времени: 00:09.
25  Qt / Общие вопросы / Re: помогите разобраться с ошибками(DB)(Sql Lite) : Май 21, 2023, 20:08
В .pro
Код:
QT += sql

В main
Код:
#include <QSqlError>
Код:
qDebug() << "Cannot open database: " << db.lastError().text();

спасибо ошибки исправились
26  Qt / Общие вопросы / [РЕШЕНО]помогите разобраться с ошибками(DB)(Sql Lite) : Май 21, 2023, 15:17
проект: https://github.com/SpeechKingV/DB1

ошибки:
F:\projects\Qt_project\5.0.2\lesons\Book\DB\1\DB_Level2\main.cpp:17: ошибка: calling 'lastError' with incomplete return type 'QSqlError'

F:\projects\Qt_project\5.0.2\lesons\Book\DB\1\DB_Level2\main.cpp:17: ошибка: invalid operands to binary expression ('QDebug' and 'QSqlError')


вывод сборки:
15:15:45: Выполняются этапы для проекта DB_Level2...
15:15:45: Настройки не изменились, этап qmake пропускается.
15:15:45: Запускается: «F:\Qt5.14\Tools\mingw730_64\bin\mingw32-make.exe» -j6
F:/Qt5.14/Tools/mingw730_64/bin/mingw32-make -f Makefile.Debug
mingw32-make[1]: Entering directory 'F:/projects/Qt_project/5.0.2/lesons/Book/DB/1/build-DB_Level2-Desktop_Qt_5_12_12_MinGW_64_bit-Debug'
g++ -c -fno-keep-inline-dllexport -g -std=gnu++11 -Wall -W -Wextra -fexceptions -mthreads -DUNICODE -D_UNICODE -DWIN32 -DMINGW_HAS_SECURE_API=1 -DQT_QML_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_NEEDS_QMAIN -I..\DB_Level2 -I. -IF:\Qt5.14\5.12.12\mingw73_64\include -IF:\Qt5.14\5.12.12\mingw73_64\include\QtWidgets -IF:\Qt5.14\5.12.12\mingw73_64\include\QtGui -IF:\Qt5.14\5.12.12\mingw73_64\include\QtANGLE -IF:\Qt5.14\5.12.12\mingw73_64\include\QtCore -Idebug -I/include -IF:\Qt5.14\5.12.12\mingw73_64\mkspecs\win32-g++  -o debug\main.o ..\DB_Level2\main.cpp
..\DB_Level2\main.cpp: In function 'bool createConnection()':
..\DB_Level2\main.cpp:17:62: error: invalid use of incomplete type 'class QSqlError'
         qDebug() << "Cannot open database: " << db.lastError();
                                                              ^
In file included from F:\Qt5.14\5.12.12\mingw73_64\include/QtSql/QSqlDatabase:1:0,
                 from ..\DB_Level2\main.cpp:1:
F:\Qt5.14\5.12.12\mingw73_64\include/QtSql/qsqldatabase.h:49:7: note: forward declaration of 'class QSqlError'
 class QSqlError;
       ^~~~~~~~~
mingw32-make[1]: *** [Makefile.Debug:239: debug/main.o] Error 1
mingw32-make[1]: Leaving directory 'F:/projects/Qt_project/5.0.2/lesons/Book/DB/1/build-DB_Level2-Desktop_Qt_5_12_12_MinGW_64_bit-Debug'
mingw32-make: *** [Makefile:38: debug] Error 2
15:15:48: Процесс «F:\Qt5.14\Tools\mingw730_64\bin\mingw32-make.exe» завершился с кодом 2.
Ошибка при сборке/развёртывании проекта DB_Level2 (комплект: Desktop Qt 5.12.12 MinGW 64-bit)
Во время выполнения этапа «Сборка»
15:15:48: Прошло времени: 00:03.

помогите пожалуйста
27  Qt / Общие вопросы / Re: [РЕШЕНО]помогите разобраться с ошибками(их 3)(XML) : Май 20, 2023, 12:58
Немного дополню, как обещал:
Проверил варианты в винде 8.1
Если использовать комплект сборки от MSVC2019 64bit - всё соберётся без всякой ругани
Если использовать MinGW - ошибки будут, как описаны в теме. Однако, если в параметры функции main добавить стандартное int argc, char *argv[] - всё соберётся и там.
Итог: как и подозревал, проблема в MinGW. Хотя параметры функции main не обязательны, обязателен лишь код возврата.

спасибо за доп. информацию
28  Qt / Общие вопросы / Re: помогите разобраться с ошибками(их 3)(XML) : Май 18, 2023, 20:47
У вас всё нормально. Проект собирается и запускается. И файл addressbook.xml успешно создаётся и заполняется.
Проверял в gentoo. Qt 5.15.9 gcc 12.2.1
Подозреваю, что проблема в MinGW (за ним подобные штуки наблюдаю периодически). Проверить не могу (точнее могу, но уже завтра и в винде)
спасибо за ответ

В Windows я думаю в main нужно обязательно передавать аргументы:

Код:
int main(int argc, char *argv[])

С ними проект будет собираться. Работу не проверял.

спасибо, всё заработало, сам бы никогда не догадался
просто занимаюсь по книге  от Макса Шлее
и в этом коде этих аргументов нет
29  Qt / Общие вопросы / [РЕШЕНО]помогите разобраться с ошибками(их 3)(XML) : Май 17, 2023, 16:43
C:\Users\qt\work\qt\qtbase\src\winmain\qtmain_win.cpp:97: ошибка: undefined reference to `qMain(int, char**)'
F:\Qt5.14\5.12.12\mingw73_64\lib\libqtmaind.a(qtmain_win.o): In function `WinMain':
C:\Users\qt\work\qt\qtbase\src\winmain/qtmain_win.cpp:97: undefined reference to `qMain(int, char**)'

:-1: ошибка: collect2.exe: error: ld returned 1 exit status

:-1: ошибка: [Makefile.Debug:65: XmlDomRead.exe] Error 1


отладка не запускается

вывод сборки:

16:39:00: Выполняются этапы для проекта XML1...
16:39:00: Настройки не изменились, этап qmake пропускается.
16:39:00: Запускается: «F:\Qt5.14\Tools\mingw730_64\bin\mingw32-make.exe» -j6
F:/Qt5.14/Tools/mingw730_64/bin/mingw32-make -f Makefile.Debug
mingw32-make[1]: Entering directory 'F:/projects/Qt_project/5.0.2/lesons/Book/XML/1/build-XML1-Desktop_Qt_5_12_12_MinGW_64_bit-Debug'
g++ -Wl,-subsystem,windows -mthreads -o .\XmlDomRead.exe debug/main.o  F:\Qt5.14\5.12.12\mingw73_64\lib\libQt5Widgetsd.a F:\Qt5.14\5.12.12\mingw73_64\lib\libQt5Guid.a F:\Qt5.14\5.12.12\mingw73_64\lib\libQt5Xmld.a F:\Qt5.14\5.12.12\mingw73_64\lib\libQt5Cored.a  -lmingw32 F:\Qt5.14\5.12.12\mingw73_64\lib\libqtmaind.a -LC:\openssl\lib -LC:\Utils\my_sql\mysql-5.6.11-winx64\lib -LC:\Utils\postgresql\pgsql\lib -lshell32
F:\Qt5.14\5.12.12\mingw73_64\lib\libqtmaind.a(qtmain_win.o): In function `WinMain':
C:\Users\qt\work\qt\qtbase\src\winmain/qtmain_win.cpp:97: undefined reference to `qMain(int, char**)'
collect2.exe: error: ld returned 1 exit status
mingw32-make[1]: *** [Makefile.Debug:65: XmlDomRead.exe] Error 1
mingw32-make[1]: Leaving directory 'F:/projects/Qt_project/5.0.2/lesons/Book/XML/1/build-XML1-Desktop_Qt_5_12_12_MinGW_64_bit-Debug'
mingw32-make: *** [Makefile:38: debug] Error 2
16:39:01: Процесс «F:\Qt5.14\Tools\mingw730_64\bin\mingw32-make.exe» завершился с кодом 2.
Ошибка при сборке/развёртывании проекта XML1 (комплект: Desktop Qt 5.12.12 MinGW 64-bit)
Во время выполнения этапа «Сборка»
16:39:01: Прошло времени: 00:01.

помогите пожалуйста(с XML работаю первый раз)
30  Qt / Общие вопросы / Re: сообщение не отоброжается на сервере (Tcp_Network) : Март 04, 2023, 12:06
проблема в твоем «сборочном окружении», где-то оттуда лезут эти странные сообщения. выбрось винду, поставь линукс Улыбающийся

а в коде сервера у тебя проблема в том, что ты в SReadClient пытаешься получить новый сокет вместо того, чтоб работать с тем, который ты получил в SNewConnection. переделай метод SReadClient на лямбда-функцию и на нее делай connect, будет проще обработать.
можно сделать и без лямбды;
но это дало только вывод на сервере надписи сообщающей о успешном подключении и упрощение кода;

и я уже привык к винде Улыбающийся

оказалось я сам за комментировал отправку сообщений  Улыбающийся Улыбающийся Улыбающийся
Страниц: 1 [2] 3 4 ... 7

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