Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 18, средняя оценка - 4.78
NewFag
1 / 1 / 0
Регистрация: 11.09.2013
Сообщений: 28
#1

Реализация графического интерфейса - C++

12.09.2013, 21:21. Просмотров 2551. Ответов 38
Метки нет (Все метки)

Добрый день.Долгое время уже изучаю c++,сейчас надоели консольные приложения,решил научиться делать кнопки и т.д. Почитал как это делается,было много разных вариантов,где-то писали что это устарело,либо это "не огонь".Можете подсказать литературу которую нужно изучить?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.09.2013, 21:21
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Реализация графического интерфейса (C++):

Реализация графического интерфейса пользователя в приложениях WinAPI. Ошибка default - C++
Сама программа: // фывфвфыв.cpp: определяет точку входа для приложения. // #include "stdafx.h" #include <windows.h> #include...

Создание графического интерфейса - C++
Дали задание написать матричный калькулятор.Я вроде с этим справился теперь нужен интерфейс для неё .раньше никогда не делал.использую...

Создание графического пользовательского интерфейса - C++
Доброго времени суток всем! Хотел бы обратиться к вам за советом. Вот недавно закончил писать проект на Си и теперь мне пришла идея...

Литература для графического интерфейса - C++
Здравствуйте, у меня есть вопрос. Вот объясните, например я изучаю С++, но там консольные приложения, а как потом писать оконные? Как можно...

Подскажите библиотеку для создание графического интерфейса - C++
Погуглил .. много разных библиотек нагуглил. Сам никогда не использовал ничего, кроме стандартных тулкитов MSVS ... Нужна библиотека .. для...

Среда разработки под C++ с элементами графического интерфейса - C++
Нужно решении, как Delphi, только там пишется языком Паскаль, мне нужно решение под С++, чтобы можно было сделать интерфейс/кнопки и прочие...

38
gromo
371 / 270 / 24
Регистрация: 04.09.2009
Сообщений: 1,214
13.09.2013, 19:37 #16
Цитата Сообщение от alsav22 Посмотреть сообщение
Это не заголовочный файл, а папка (в 5). Заголовочный файл QWidget.
Из документации:

Код
To include the definitions of the module's classes, use the following directive:
#include <QtWidgets>
0
alsav22
5425 / 4820 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
13.09.2013, 19:41 #17
И что из этого? QtWidgets стал заголовочным файлом? Зайдите в папку библиотеки и посмотрите, что это.
0
gromo
371 / 270 / 24
Регистрация: 04.09.2009
Сообщений: 1,214
13.09.2013, 19:58 #18
Цитата Сообщение от alsav22 Посмотреть сообщение
И что из этого? QtWidgets стал заголовочным файлом? Зайдите в папку библиотеки и посмотрите, что это.
файл /usr/include/qt/QtWidgets/QtWidgets
вот его содержание:
Кликните здесь для просмотра всего текста
#ifndef QT_QTWIDGETS_MODULE_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
#define QT_QTWIDGETS_MODULE_H
#include <QtWidgets/QtWidgetsDepends>
#include "qcolordialog.h"
#include "qdialog.h"
#include "qerrormessage.h"
#include "qfiledialog.h"
#include "qfilesystemmodel.h"
#include "qfontdialog.h"
#include "qinputdialog.h"
#include "qmessagebox.h"
#include "qprogressdialog.h"
#include "qwizard.h"
#include "qgraphicseffect.h"
#include "qgraphicsanchorlayout.h"
#include "qgraphicsgridlayout.h"
#include "qgraphicsitem.h"
#include "qgraphicsitemanimation.h"
#include "qgraphicslayout.h"
#include "qgraphicslayoutitem.h"
#include "qgraphicslinearlayout.h"
#include "qgraphicsproxywidget.h"
#include "qgraphicsscene.h"
#include "qgraphicssceneevent.h"
#include "qgraphicstransform.h"
#include "qgraphicsview.h"
#include "qgraphicswidget.h"
#include "qabstractitemdelegate.h"
#include "qabstractitemview.h"
#include "qcolumnview.h"
#include "qdatawidgetmapper.h"
#include "qdirmodel.h"
#include "qfileiconprovider.h"
#include "qheaderview.h"
#include "qitemdelegate.h"
#include "qitemeditorfactory.h"
#include "qlistview.h"
#include "qlistwidget.h"
#include "qstyleditemdelegate.h"
#include "qtableview.h"
#include "qtablewidget.h"
#include "qtreeview.h"
#include "qtreewidget.h"
#include "qtreewidgetitemiterator.h"
#include "qaction.h"
#include "qactiongroup.h"
#include "qapplication.h"
#include "qboxlayout.h"
#include "qdesktopwidget.h"
#include "qformlayout.h"
#include "qgesture.h"
#include "qgesturerecognizer.h"
#include "qgridlayout.h"
#include "qlayout.h"
#include "qlayoutitem.h"
#include "qshortcut.h"
#include "qsizepolicy.h"
#include "qstackedlayout.h"
#include "qtooltip.h"
#include "qwhatsthis.h"
#include "qwidget.h"
#include "qwidgetaction.h"
#include "qkeyeventtransition.h"
#include "qmouseeventtransition.h"
#include "qcommonstyle.h"
#include "qdrawutil.h"
#include "qproxystyle.h"
#include "qstyle.h"
#include "qstylefactory.h"
#include "qstyleoption.h"
#include "qstylepainter.h"
#include "qstyleplugin.h"
#include "qcolormap.h"
#include "qcompleter.h"
#include "qscroller.h"
#include "qscrollerproperties.h"
#include "qsystemtrayicon.h"
#include "qundogroup.h"
#include "qundostack.h"
#include "qundoview.h"
#include "qabstractbutton.h"
#include "qabstractscrollarea.h"
#include "qabstractslider.h"
#include "qabstractspinbox.h"
#include "qbuttongroup.h"
#include "qcalendarwidget.h"
#include "qcheckbox.h"
#include "qcombobox.h"
#include "qcommandlinkbutton.h"
#include "qdatetimeedit.h"
#include "qdial.h"
#include "qdialogbuttonbox.h"
#include "qdockwidget.h"
#include "qfocusframe.h"
#include "qfontcombobox.h"
#include "qframe.h"
#include "qgroupbox.h"
#include "qlabel.h"
#include "qlcdnumber.h"
#include "qlineedit.h"
#include "qmainwindow.h"
#include "qmdiarea.h"
#include "qmdisubwindow.h"
#include "qmenu.h"
#include "qmenubar.h"
#include "qplaintextedit.h"
#include "qprogressbar.h"
#include "qpushbutton.h"
#include "qradiobutton.h"
#include "qrubberband.h"
#include "qscrollarea.h"
#include "qscrollbar.h"
#include "qsizegrip.h"
#include "qslider.h"
#include "qspinbox.h"
#include "qsplashscreen.h"
#include "qsplitter.h"
#include "qstackedwidget.h"
#include "qstatusbar.h"
#include "qtabbar.h"
#include "qtabwidget.h"
#include "qtextbrowser.h"
#include "qtextedit.h"
#include "qtoolbar.h"
#include "qtoolbox.h"
#include "qtoolbutton.h"
#include "qtwidgetsversion.h"
#endif

ЧЯДНТ? Я не очень силен в Qt, поэтому, если я ошибаюсь, то прошу объясните мне в чем.
0
alsav22
5425 / 4820 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
13.09.2013, 20:01 #19
Цитата Сообщение от gromo Посмотреть сообщение
вот его содержание:
Я не пойму о чём вы? Словами скажите, пожалуйста.
0
gromo
371 / 270 / 24
Регистрация: 04.09.2009
Сообщений: 1,214
13.09.2013, 20:06 #20
alsav22, в документации написано, что для того, чтобы включить в проект графическую часть библиотеки, то нужно включить файл <QtWidgets> (в 5.0) вмето <QtGui> в 4.8
Вы же говорите:
Цитата Сообщение от alsav22 Посмотреть сообщение
И что из этого? QtWidgets стал заголовочным файлом? Зайдите в папку библиотеки и посмотрите, что это.
я и зашел в папку с библиотекой и обнаружил этот файл, который, судя по его содержанию (в спойлере выше) является все-таки заголовочным файлом. Следовательно его и надо теперь включать в свою программу вместо <QtGui>.
Цитата Сообщение от gromo Посмотреть сообщение
Я не очень силен в Qt, поэтому, если я ошибаюсь, то прошу объясните мне в чем.
0
ValeryS
13.09.2013, 20:15
  #21

Не по теме:

Цитата Сообщение от alsav22 Посмотреть сообщение
Я цитату, чью привёл? Тому и пишу...
Пардону прошу
погорячился

0
alsav22
5425 / 4820 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
13.09.2013, 20:21 #22

Не по теме:

Цитата Сообщение от gromo Посмотреть сообщение
в документации написано, что для того, чтобы включить в проект графическую часть библиотеки, то нужно включить файл <QtWidgets> (в 5.0) вмето <QtGui> в 4.8
В приведённой вами цитате, в 16 посте, файл не упоминается, пишется модуль. Но у меня ни модуля, ни файла такого нет, папка есть (даже две). У вас какая библиотека?



Добавлено через 1 минуту

Не по теме:

У вас ОС Linux?



Добавлено через 3 минуты

Не по теме:

У нас, наверное, библиотеки разные (я про 5.0.2 пишу, для windows).

0
gromo
371 / 270 / 24
Регистрация: 04.09.2009
Сообщений: 1,214
13.09.2013, 20:37 #23
Цитата Сообщение от alsav22 Посмотреть сообщение
В приведённой вами цитате, в 16 посте, файл не упоминается, пишется модуль. Но у меня ни модуля, ни файла такого нет, папка есть (даже две). У вас какая библиотека?
Как раз таки файл и упоминается. Вот более полная цитата из доки:
Код
Detailed Description

To include the definitions of the module's classes, use the following directive:
#include <QtWidgets>

To link against the module, add this line to your qmake .pro file:
QT += widgets
но у меня этот файл <QtWidgets> сама IDE не находит автоматом, и даже если вручную прописать путь тоже ругается на отсутствие QtWidgets/QtWidgetsDepends, который инклудится в этом файле(в <QtWidgets>). Скорее всего, я думаю, что это мейнтейнеры еще не доконца ввели поддержку qt5 на линуксе.
Цитата Сообщение от alsav22 Посмотреть сообщение
папка есть (даже две).
аналогично. Вот все, что есть:
Код
/usr/include/qt/QtWidgets  -- каталог
/usr/include/qt/QtWidgets/5.1.1/QtWidgets   -- каталог
/usr/include/qt/QtWidgets/QtWidgets  --- файл
Цитата Сообщение от alsav22 Посмотреть сообщение
У вас ОС Linux?
да. ArchLinux x86_64 я уже выше писал. Так же я писал, что qt5 установлена, но часть осталась и от qt4.8.5 (всего один какой-то пакет, как я смог посчитать. Скорее всего для совместимости).

Добавлено через 8 минут
Цитата Сообщение от alsav22 Посмотреть сообщение
У нас, наверное, библиотеки разные (я про 5.0.2 пишу, для windows).
у меня библиотека 5.1.1. Я не думаю, что они сильно уж разнятся...
0
alsav22
5425 / 4820 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
13.09.2013, 20:38 #24
Цитата Сообщение от gromo Посмотреть сообщение
Как раз таки файл и упоминается. Вот более полная цитата из доки:
И где там слово "file"? Если это: ".pro file:", так это не про QtWidgets.
Цитата Сообщение от gromo Посмотреть сообщение
Вот все, что есть:
У меня вот этого нет:
Цитата Сообщение от gromo Посмотреть сообщение
/usr/include/qt/QtWidgets/QtWidgets --- файл
Но у меня и не 5.1.1, и не Linux. Может в этом дело.
0
gromo
371 / 270 / 24
Регистрация: 04.09.2009
Сообщений: 1,214
13.09.2013, 20:51 #25
Может у нас разные варианты перевода, давайте переведем:
To include the definitions of the module's classes, use the following directive:
Чтобы включить определения классов модуля, используйте следующую директиву:

Цитата Сообщение от alsav22 Посмотреть сообщение
И где там слово "file"?
Явно не написано, но что же еще это может быть? Препроцессор после директивы #include, насколько мне известно, обрабатывает ни что иное как текстовые файлы.
+ Я же нашел этот файл (по-видимому из-за того, что библиотека немного свежее вашей), значит это файл.

И дальше в доке написано:
Цитата Сообщение от gromo Посмотреть сообщение
To link against the module, add this line to your qmake .pro file:
QT += widgets
Перевод (опять же, чтобы разрулить возможные расхождения в наших индивидуальных толкованиях этих фраз): Чтобы прилинковать данный модуль, добавьте следующее в ваш проектный файл:

QT += widgets это я так понял вместо 'gui' надо теперь писать. (Во всяком случае, когда запилят уже нормальную поддержку 5-ой кути)
0
ValeryS
Модератор
6679 / 5088 / 475
Регистрация: 14.02.2011
Сообщений: 17,086
13.09.2013, 21:04 #26
Цитата Сообщение от gromo Посмотреть сообщение
о у меня этот файл <QtWidgets> сама IDE не находит автоматом,
креатор автоматом, ну почти, ставит так
C++ (Qt)
1
#include <QtWidgets/QtWidgets>
только что проверил на 5.1.1
взял пример из книги который указывал
поменял include
и в .pro добавил
QT += widgets
Виндос семерка, QtCreator 5.1.1

Добавлено через 2 минуты
вот полный текст
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
//#include <QtGui>
#include <QtWidgets/QtWidgets>
 
int main(int argc, char** argv)
{
    QApplication app(argc, argv);
    QLabel lbl("Hello, World !");
    lbl.show();
    return app.exec();
}
про файл
TEMPLATE = app
SOURCES = hello.cpp
QT += widgets
win32:TARGET = Hello
0
gromo
371 / 270 / 24
Регистрация: 04.09.2009
Сообщений: 1,214
13.09.2013, 21:30 #27
Цитата Сообщение от ValeryS Посмотреть сообщение
креатор автоматом, ну почти, ставит так
C++
1
#include <QtWidgets/QtWidgets>
у меня все равно так не находит, пишет, что нет такого файла/каталога.
Но тут я обратил внимание на .pro файл своего проекта и увидел забавную вещь:
Кликните здесь для просмотра всего текста
Код
QT       += core gui

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets   #!!!!!!!!!!!!!!!!

TARGET = BaseConvInt
TEMPLATE = app
QMAKE_CXXFLAGS += -std=c++11 -Wall -Wpedantic -Wextra


SOURCES += main.cpp\
        mainwindow.cpp \
    exitdialog.cpp

HEADERS  += mainwindow.h \
    exitdialog.h \
    standard_headers_mainwindow.h \
    personal_data.h \
    description.h

RESOURCES += \
    toolButtonsImg.qrc \
    appIcon.qrc \
    key_pad.qrc

Так поддерживается совместимость Qt4 u Qt5. (в спойлере выделено как #!!!!!!!!!!!!!!!)
Вот очень полезная тема по этому поводу: http://qt-project.org/forums/viewthread/23119
Там показано, что *.pl скрипты, которые выпускает Nokia для замены путей для инклуда, заменяет <QtGui> HA <QtWidgets> и так далее, советую почитать, если интересно.
0
ValeryS
Модератор
6679 / 5088 / 475
Регистрация: 14.02.2011
Сообщений: 17,086
13.09.2013, 21:39 #28
Цитата Сообщение от gromo Посмотреть сообщение
у меня все равно так не находит, пишет, что нет такого файла/каталога.
я даже не писал
начал писать он автоматом ввел QtWidgets/ потом из второго списка QtWidgets
но это было до того как я написал в pro файл
QT += widgets

когда ввел то поведение изменилось
сразу предлагает QtWidgets
т.е получается
C++ (Qt)
1
#include <QtWidgets>
работает и так и так
0
gromo
371 / 270 / 24
Регистрация: 04.09.2009
Сообщений: 1,214
13.09.2013, 21:50 #29
Цитата Сообщение от ValeryS Посмотреть сообщение
работает и так и так
ну не знаю, именно файл <QtWidgets> у меня отказывается подключать.
И вообще, <QtWidgets> ввели как расширение <QtGui>.
<QtGui> содержит базовые абстракции
<QtWidgets> уже расширяет <QtGui> для определенных платформ.

И, если подвести итог:

1.Используем в .pro файле конструкцию
Код
QT       += core gui

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
как универсальный способ совместимости кути4 и кути5
2. Инклудим все файлы как и раньше, только крайне не рекомендуется использовать префиксы типа
C++
1
#include <QtWidgets/QtWidgets>
и включать сразу весь комплексный модуль-заголовок тобишь <QtGui> u <QtWidgets>
0
iceglen
24 / 24 / 2
Регистрация: 24.06.2013
Сообщений: 105
13.09.2013, 21:53 #30
Получается, что актуальная литература есть только в доках и на русский еще не переводили?
0
13.09.2013, 21:53
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.09.2013, 21:53
Привет! Вот еще темы с ответами:

Ищу книжки по файловым указателям и разработке графического интерфейса - C++
-Нужно чтиво по файловым указателям... Какие-нибудь штуки по работе сосписком записанным в бинарник, т.е. чтоб можно было делать чо-то...

Реализация функций интерфейса - C++
Есть класс с прототипами - интерфейс (верно?). Наследую от него два класса, А и В. Как мне в этих классах сделать разную реализацию...

Реализация графического интерфейса к программе - C++
Допустим я написал код для калькулятора,теперь мне нужно это как то вывести,не будед же пользователь скачивать эту программу и пользоваться...

Посоветуйте новичку книжку или сайт, где описывается создание графического интерфейса в VC - C++
Добрый вечер, подскажите пожалуйста какую нибудь книжку или сайт где описывается создание графического интерфейса в VC.


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

Или воспользуйтесь поиском по форуму:
30
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru