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

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

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 18, средняя оценка - 4.78
NewFag
1 / 1 / 0
Регистрация: 11.09.2013
Сообщений: 27
12.09.2013, 21:21     Реализация графического интерфейса #1
Добрый день.Долгое время уже изучаю c++,сейчас надоели консольные приложения,решил научиться делать кнопки и т.д. Почитал как это делается,было много разных вариантов,где-то писали что это устарело,либо это "не огонь".Можете подсказать литературу которую нужно изучить?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ValeryS
13.09.2013, 20:15     Реализация графического интерфейса
  #21

Не по теме:

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

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5282 / 4801 / 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).

gromo
 Аватар для gromo
366 / 265 / 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. Я не думаю, что они сильно уж разнятся...
alsav22
5282 / 4801 / 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. Может в этом дело.
gromo
 Аватар для gromo
366 / 265 / 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-ой кути)
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,057
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
gromo
 Аватар для gromo
366 / 265 / 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> и так далее, советую почитать, если интересно.
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,057
13.09.2013, 21:39     Реализация графического интерфейса #28
Цитата Сообщение от gromo Посмотреть сообщение
у меня все равно так не находит, пишет, что нет такого файла/каталога.
я даже не писал
начал писать он автоматом ввел QtWidgets/ потом из второго списка QtWidgets
но это было до того как я написал в pro файл
QT += widgets

когда ввел то поведение изменилось
сразу предлагает QtWidgets
т.е получается
C++ (Qt)
1
#include <QtWidgets>
работает и так и так
gromo
 Аватар для gromo
366 / 265 / 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>
iceglen
 Аватар для iceglen
24 / 24 / 2
Регистрация: 24.06.2013
Сообщений: 105
13.09.2013, 21:53     Реализация графического интерфейса #30
Получается, что актуальная литература есть только в доках и на русский еще не переводили?
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,057
13.09.2013, 22:07     Реализация графического интерфейса #31
Цитата Сообщение от iceglen Посмотреть сообщение
Получается, что актуальная литература есть только в доках и на русский еще не переводили?
для пятерки не написали еще
так что скачай четверку, правда не знаю где на официальном сайте не нашел, по ней книг куча
а когда научишься разберешься то легко перейдешь на следующую версию
gromo
 Аватар для gromo
366 / 265 / 24
Регистрация: 04.09.2009
Сообщений: 1,214
13.09.2013, 22:14     Реализация графического интерфейса #32
iceglen, конечно же актуальная и точная информация ТОЛЬКО в доках (по чему бы то ни было).
Цитата Сообщение от iceglen Посмотреть сообщение
на русский еще не переводили?
Сказать не могу точно, но я думаю, что нет. К слову, я даже и не подозревал до этого момента, что использую новые "фичи" Qt5, потому что Qt Creator сам составил совместимый *.pro file "незаметно" от меня А как я выше писал, то стиль инклудов на qt5 не отличается от 4.*

Не по теме:

что-то мы раздули темку

iceglen
13.09.2013, 22:31
  #33

Не по теме:

Вопрос к тов. gromo. Как к creator'у подцепить 4-ю версию? У меня так же стоит арч х86_64. Ситуация аналогичная - стоит все вперемешку начиная от qt3(прицепился как зависимость) до qt5.1.1. При вооде

Bash
1
qtchooser -list-versions
выдал варианты 4,5,3,default

gromo
13.09.2013, 22:47
  #34

Не по теме:

Цитата Сообщение от iceglen Посмотреть сообщение
выдал варианты 4,5,3,default
у меня так же... Но используется qt5. Главное, чтобы правильно была настроена платформенная конфигурация в самом qtcreator.
Посмотрите Tools > Options > Buil & Run > Kits
в текущей конфигурации пункт Qt Version: и там выбираете нужную. (лично у меня там только qt4. Если ничего нету, то вручную добавляем путь к qmake)

Kuzia domovenok
13.09.2013, 22:49
  #35

Не по теме:

У автора темы 2 сообщения на форуме, он тут и не появляется уже, а вы развели тут...

gromo
 Аватар для gromo
366 / 265 / 24
Регистрация: 04.09.2009
Сообщений: 1,214
13.09.2013, 23:00     Реализация графического интерфейса #36

Не по теме:

iceglen, кстати у вас там, наверное, прописан путь /usr/lib/qt4/bin/qmake
НО, есть еще /usr/lib/qt/bin/qmake
Так вот, я ради эксперимента, добавил этот путь и применил его в платформенной конфигурации... Это оказался Qt 5.1.1 После перекомпиляции приложения, графические элементы стали выглядеть куда более привлекательнее, вобщем я не понимаю, почему Arch меинтейнеры не сделали хотя бы символьную ссылку на этот /usr/lib/qt/bin/qmake . Вобщем, благодаря вам я только что открыл для себя qt5 Сам бы и не полез лишний раз туда)



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

Не по теме:

Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
У автора темы 2 сообщения на форуме, он тут и не появляется уже, а вы развели тут...
Ну зато может кто-то почерпнет для себя полезняшек



Добавлено через 1 минуту
Ах да, всех с Днем Программиста что-ли
iceglen
13.09.2013, 23:04
  #37

Не по теме:

Уже прикрутил, большое спасибо. В /usr/bin есть куча симлинков (qmake-qt3 qmake-qt4 и qmake=qmake-qt5) - их и использовал для настройки. А вообще мейнтейнеры арча вроде как переименовали qt5 просто в qt. Из-за этого и пошла вся каша.

gromo
13.09.2013, 23:17
  #38

Не по теме:

Цитата Сообщение от iceglen Посмотреть сообщение
А вообще мейнтейнеры арча вроде как переименовали qt5 просто в qt. Из-за этого и пошла вся каша.
дааа, помню это изменение давненько было Но зато теперь все хорошо) Пойду-ка генту собирать

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.09.2013, 23:18     Реализация графического интерфейса
Еще ссылки по теме:

Реализация функций интерфейса C++
C++ Создание графического интерфейса
Реализация графического интерфейса пользователя в приложениях WinAPI. Ошибка default C++

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

Или воспользуйтесь поиском по форуму:
ValeryS
13.09.2013, 23:18     Реализация графического интерфейса
  #39

Не по теме:

Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
У автора темы 2 сообщения на форуме, он тут и не появляется уже, а вы развели тут...
Кузя, а нахрена нам автор мы тут трепемся, балдеем,присоеденяйся
а то автор придет будет вопросы всякие задавать скуушшно

Yandex
Объявления
13.09.2013, 23:18     Реализация графического интерфейса
Ответ Создать тему
Опции темы

Текущее время: 03:59. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru