Форум программистов, компьютерный форум, киберфорум
C++ Qt
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/9: Рейтинг темы: голосов - 9, средняя оценка - 5.00
 Аватар для malloy
0 / 0 / 0
Регистрация: 11.04.2017
Сообщений: 21

Не запускается пример из книги Шлее qt5.3

18.04.2017, 16:59. Показов 2032. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам


У меня стоит 5.8
Как я понял, виджет потомок должен отображаться, когда родитель имеет метод show()
может, просто версия старая, сейчас, так делать нельзя?
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
18.04.2017, 16:59
Ответы с готовыми решениями:

Не запускается пример из книги Шлее по QT 4.8
Hi all! Вот такая проблема.:( Создал пустой проект, в него добавил hello.cpp, вот код: #include <QtGui> int main(int...

Не запускается пример из книги М. Шлее
Пример из книги М. Шлее "Qt4.5: Профессиональное программирование на С++", упрощенный до минимума с целью локализовать ошибку: ...

Очередной неработающий пример из книги Шлее
Проблема состоит в том, что программа компилируется и появляются необходимые окна, но все завершается с ошибкой. Проблема заключается в...

12
 Аватар для icpu
487 / 365 / 93
Регистрация: 10.03.2011
Сообщений: 1,513
Записей в блоге: 5
18.04.2017, 19:14
Это Шлее старый, да и ленивый. У него длинный шлейф коричневого добра ещё с третьего кьюти тянется.
QMainWindow используй для основного окна, QWidget по умолчанию не имеет фрейма.
1
 Аватар для malloy
0 / 0 / 0
Регистрация: 11.04.2017
Сообщений: 21
18.04.2017, 19:22  [ТС]
icpu,
т.е. так делать нельзя?
Кроме Шлее, я не нашёл книг по qt5
а qt4, как я понял, сильно отличается
0
 Аватар для icpu
487 / 365 / 93
Регистрация: 10.03.2011
Сообщений: 1,513
Записей в блоге: 5
18.04.2017, 19:34
malloy, не имеет смысла, QWidget без родителя-владельца тут же схлопывается, а за ним и всё приложение (хотя тут могут быть варианты, когда приложение висит без окон).
4 от 5 отличается значительно, но без разрушения мировоззрения. То есть миграция не очень приятная, но это не "легче заново написать".
Лучше всего изучать Qt по оффдокам. Вот серьёзно, эталонная документация: простая, понятная, 99% актуальная и точная. Даже с яндексопереводчиком доки могут потягаться с Шлее, а по части примеров - уделают, как боженька. Всё, что может потребоваться, от редактора QSLite базы до блютус-чата и игры - всё есть в доках, и написано очень прилично.
1
Эксперт .NET
 Аватар для Rius
13128 / 7689 / 1676
Регистрация: 25.05.2015
Сообщений: 23,460
Записей в блоге: 14
18.04.2017, 19:35
Под виндой 10 результат такой:
1
Эксперт .NET
 Аватар для Rius
13128 / 7689 / 1676
Регистрация: 25.05.2015
Сообщений: 23,460
Записей в блоге: 14
18.04.2017, 19:41
А вот так под Debian:
1
 Аватар для icpu
487 / 365 / 93
Регистрация: 10.03.2011
Сообщений: 1,513
Записей в блоге: 5
18.04.2017, 19:44
Rius, окей, был неправ.
0
 Аватар для malloy
0 / 0 / 0
Регистрация: 11.04.2017
Сообщений: 21
18.04.2017, 19:47  [ТС]
Rius, у меня дебиан8, может у тебя другая версия компилятора? у меня 4.9.2
0
Эксперт .NET
 Аватар для Rius
13128 / 7689 / 1676
Регистрация: 25.05.2015
Сообщений: 23,460
Записей в блоге: 14
18.04.2017, 19:54
От компилятора это никак не должно зависеть.
Файл проекта вот такой. Проект приложения с виджетами в QtCreator.
Code
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
#-------------------------------------------------
#
# Project created by QtCreator 2017-04-18T21:32:34
#
#-------------------------------------------------
 
QT       += core gui
 
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
 
TARGET = WidgetTest
TEMPLATE = app
 
# The following define makes your compiler emit warnings if you use
# any feature of Qt which as been marked as deprecated (the exact warnings
# depend on your compiler). Please consult the documentation of the
# deprecated API in order to know how to port your code away from it.
DEFINES += QT_DEPRECATED_WARNINGS
 
# You can also make your code fail to compile if you use deprecated APIs.
# In order to do so, uncomment the following line.
# You can also select to disable deprecated APIs only up to a certain version of Qt.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0
 
 
SOURCES += main.cpp\
        mainwindow.cpp
 
HEADERS  += mainwindow.h
 
FORMS    += mainwindow.ui
Добавлено через 5 минут
malloy, а вы программу, простите, запустили вообще? А то make есть в консоли, а запуска бинарника - нет.
1
 Аватар для malloy
0 / 0 / 0
Регистрация: 11.04.2017
Сообщений: 21
18.04.2017, 19:54  [ТС]
Rius, единственная разница, что не было
QT += core gui
все равно не запускается

так бинарник то не создается
0
Эксперт .NET
 Аватар для Rius
13128 / 7689 / 1676
Регистрация: 25.05.2015
Сообщений: 23,460
Записей в блоге: 14
18.04.2017, 20:01
Лучший ответ Сообщение было отмечено malloy как решение

Решение

Цитата Сообщение от malloy Посмотреть сообщение
так бинарник то не создается
Откуда инфа?

У меня вот такой лог на винде:
qmake
Кликните здесь для просмотра всего текста
Bash
1
2
3
4
5
6
7
21:57:33: Выполняются этапы для проекта WidgetTest...
21:57:33: Запускается: «D:\Qt\5.7\mingw53_32\bin\qmake.exe» D:\projects\QtTests\WidgetTest\WidgetTest.pro -spec win32-g++ "CONFIG+=debug" "CONFIG+=qml_debug"
21:57:34: Процесс «D:\Qt\5.7\mingw53_32\bin\qmake.exe» завершился успешно.
21:57:34: Запускается: «D:\Qt\Tools\mingw530_32\bin\mingw32-make.exe» qmake_all
mingw32-make: Nothing to be done for 'qmake_all'.
21:57:35: Процесс «D:\Qt\Tools\mingw530_32\bin\mingw32-make.exe» завершился успешно.
21:57:35: Прошло времени: 00:01.

make
Кликните здесь для просмотра всего текста
Файлы MainWindow удалил, чтобы было как у вас.
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
22:00:01: Выполняются этапы для проекта WidgetTest...
22:00:01: Настройки не изменились, этап qmake пропускается.
22:00:01: Запускается: «D:\Qt\Tools\mingw530_32\bin\mingw32-make.exe» 
D:/Qt/Tools/mingw530_32/bin/mingw32-make -f Makefile.Debug
mingw32-make[1]: Entering directory 'D:/projects/QtTests/build-WidgetTest-Desktop_Qt_5_7_1_MinGW_32bit-Debug'
g++ -c -pipe -fno-keep-inline-dllexport -g -std=gnu++11 -frtti -Wall -Wextra -fexceptions -mthreads -DUNICODE -DQT_DEPRECATED_WARNINGS -DQT_QML_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_NEEDS_QMAIN -I..\WidgetTest -I. -I..\..\..\Qt\5.7\mingw53_32\include -I..\..\..\Qt\5.7\mingw53_32\include\QtWidgets -I..\..\..\Qt\5.7\mingw53_32\include\QtGui -I..\..\..\Qt\5.7\mingw53_32\include\QtANGLE -I..\..\..\Qt\5.7\mingw53_32\include\QtCore -Idebug -I..\..\..\Qt\5.7\mingw53_32\mkspecs\win32-g++  -o debug\main.o ..\WidgetTest\main.cpp
..\WidgetTest\main.cpp: In function 'int qMain(int, char**)':
..\WidgetTest\main.cpp:12:18: warning: unused variable 'btn' [-Wunused-variable]
     QPushButton *btn = new QPushButton("ok", &wgt);
                  ^
g++ -Wl,-subsystem,windows -mthreads -o debug\WidgetTest.exe debug/main.o  -lmingw32 -LD:\Qt\5.7\mingw53_32\lib D:\Qt\5.7\mingw53_32\lib\libqtmaind.a -lshell32 -LC:\utils\my_sql\my_sql\lib -LC:\utils\postgresql\pgsql\lib D:\Qt\5.7\mingw53_32\lib\libQt5Widgetsd.a D:\Qt\5.7\mingw53_32\lib\libQt5Guid.a D:\Qt\5.7\mingw53_32\lib\libQt5Cored.a 
mingw32-make[1]: Leaving directory 'D:/projects/QtTests/build-WidgetTest-Desktop_Qt_5_7_1_MinGW_32bit-Debug'
22:00:04: Процесс «D:\Qt\Tools\mingw530_32\bin\mingw32-make.exe» завершился успешно.
22:00:04: Прошло времени: 00:03.
1
 Аватар для malloy
0 / 0 / 0
Регистрация: 11.04.2017
Сообщений: 21
18.04.2017, 20:07  [ТС]
Rius, оу мой касяк, извиняюсь создается.
Да запускается!
Но на что тогда ругается?
выхлоп как у вас


неиспользованная переменная
0
Эксперт .NET
 Аватар для Rius
13128 / 7689 / 1676
Регистрация: 25.05.2015
Сообщений: 23,460
Записей в блоге: 14
18.04.2017, 20:16
А вот под Debian
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
vladimir@book:~/projects/QtTests/WidgetTest$ ls -l
итого 8
-rw-r--r-- 1 vladimir vladimir 285 апр 18 21:39 main.cpp
-rw-r--r-- 1 vladimir vladimir 943 апр 18 22:09 WidgetTest.pro
vladimir@book:~/projects/QtTests/WidgetTest$ ~/Qt/
5.8/             dist/            Docs/            Examples/        Licenses/        MaintenanceTool  Tools/           
vladimir@book:~/projects/QtTests/WidgetTest$ ~/Qt/5.8/gcc_64/bin/qmake WidgetTest.pro 
Info: creating stash file /home/vladimir/projects/QtTests/WidgetTest/.qmake.stash
vladimir@book:~/projects/QtTests/WidgetTest$ make
g++ -c -pipe -O2 -std=gnu++11 -Wall -W -D_REENTRANT -fPIC -DQT_DEPRECATED_WARNINGS -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I. -I../../../Qt/5.8/gcc_64/include -I../../../Qt/5.8/gcc_64/include/QtWidgets -I../../../Qt/5.8/gcc_64/include/QtGui -I../../../Qt/5.8/gcc_64/include/QtCore -I. -isystem /usr/include/libdrm -I../../../Qt/5.8/gcc_64/mkspecs/linux-g++ -o main.o main.cpp
main.cpp: In function ‘int main(int, char**)’:
main.cpp:12:18: warning: unused variable ‘btn’ [-Wunused-variable]
     QPushButton *btn = new QPushButton("OK", &wgt);
                  ^
g++ -Wl,-O1 -Wl,-rpath,/home/vladimir/Qt/5.8/gcc_64/lib -o WidgetTest main.o   -L/home/vladimir/Qt/5.8/gcc_64/lib -lQt5Widgets -lQt5Gui -lQt5Core -lGL -lpthread 
vladimir@book:~/projects/QtTests/WidgetTest$ ls -l
итого 92
-rw-r--r-- 1 vladimir vladimir   285 апр 18 21:39 main.cpp
-rw-r--r-- 1 vladimir vladimir  4544 апр 18 22:11 main.o
-rw-r--r-- 1 vladimir vladimir 63398 апр 18 22:11 Makefile
-rwxr-xr-x 1 vladimir vladimir 10352 апр 18 22:11 WidgetTest
-rw-r--r-- 1 vladimir vladimir   943 апр 18 22:09 WidgetTest.pro
vladimir@book:~/projects/QtTests/WidgetTest$
Добавлено через 59 секунд
Ругается на неиспользуемую переменную, очевидно.
Она же не используется.

Добавлено через 2 минуты
На Шлее зазря не гоните
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
18.04.2017, 20:16
Помогаю со студенческими работами здесь

Пример из Шлее калькулятор
вообщем стал разбирать пример(Макс Шлее листинг 6.11), выяснил что где-то косяк - а точнее в QStack<QString> m_stk; не записываетяся...

Не компилируется код из книги Макса Шлее
Здравствуйте. Пытаюсь изучить Qt по книге Макса Шлее "Qt 4.8. Проффессиональное программирование". В книге, в качестве...

Пример из книги
Пытаюсь разобрать примеры из книги Харрингтона "PHP-трюки". Трюк 3 (стр.46) Все более-менее понятно. Кроме одного фрагмента. ...

пример из книги
#include <iostream.h> long summa (int k,...){ int *pik=&k; char *pc=(char *)pik; cout <<" *pc="<<*pc<<"...

Пример из книги
Разбираю книгу по самообучающимся системам. Хочу запустить такой пример: ...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru