Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.02.2014, 22:49   #1
_PROGRAMM_
Участник клуба
 
Аватар для _PROGRAMM_
 
Регистрация: 30.07.2009
Сообщений: 1,601
По умолчанию Qt Creator. Начало.

Доброй ночи. Открыл для себя классную вещь - Qt Creator. Он, на мой взгляд, очень упрощает жизнь. Вот только как ним пользоваться я не понял. Само собой, методом научного тыка кое-что раскопал, но этого не очень много для создания полноценного приложения. Открываем оф. документацию, а там мизерное количество информации. Только создание и расположение элементов. Где о нем можно подробнее узнать?

Рассмотрим ситуацию. Я налепил на форму кнопочек, виджетов, короче всякой твари по паре и хочу с ними работать в коде из main.cpp. Если прописать тупо имя виджета, то ловлю ошибку
Код:
pushButton1.show()
, что мол нет такого идентификатора. Есть еще много других нюансов. Что читать? Первоисточник желательно.
P.S. И давайте договоримся. На документацию к классам не кидать. Вопрос в использовании IDE.

В мире нет вечных двигателей, зато есть вечные тормоза...

Блог
_PROGRAMM_ вне форума Ответить с цитированием
Старый 22.02.2014, 00:30   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,830
По умолчанию

В Qt в мейне (как и в билдере) обычно запуск апликейшена и все, остальное в уи классе.

Цитата:
Что читать? Первоисточник желательно.
В Qt справка есть, достаточно хорошая.
p51x вне форума Ответить с цитированием
Старый 22.02.2014, 05:20   #3
rrrFer
Санитар
Старожил
 
Аватар для rrrFer
 
Регистрация: 04.10.2008
Сообщений: 2,577
По умолчанию

Добавляешь namespace Ui с классом, имя которого совпадает с формой.
Всем остальным элементам ты тоже даешь имена и обращаешься к ним как к элементам класса формы.

в хедере:
Код:
namespace Ui {
  class MainUI;
}
//... 
class MainUI : public QDialog {
  Q_OBJECT
//...
private:
  Ui::MainUI *m_ui;
}

в .cpp:
Код:
#include "ui_mainui.h" // файл с таким именем создан компилятором автоматически если ты создал форму с именем mainui

MainUI::MainUI(QWidget *parent)
  : QDialog(parent), m_ui(new Ui::MainUI) {
  m_ui->setupUi(this); // устанавливаешь форму в качестве интерфейса своего класса
//...

//Ну а дальше, соединяй как и где хочешь слоты от накиданных руками элементов с сигналами своих классов:
connect(m_ui->carAdd, SIGNAL(clicked()), SLOT(on_carAdd()));
  connect(m_ui->carRem, SIGNAL(clicked()), SLOT(on_carRem()));
Код примеров взят отсюда: http://pro-prof.com/archives/882 (там же можно найти полный рабочий код и посмотреть как что сделано).

Официальная документация - это и есть первоисточник. Там есть раздел про IDE:
http://qt-project.org/doc/qtcreator-3.0/index.html
А вот про дизайнер (который вас тревожит в этой теме: http://qt-project.org/doc/qt-5/qtdesigner-manual.html)

Цитата:
Открываем оф. документацию, а там мизерное количество информации. Только создание и расположение элементов. Где о нем можно подробнее узнать?
Ты плохо искал. Вот тут конкретно твой вопрос и описан. На официальном сайте, с примерами и прочим:
http://qt-project.org/doc/qt-5/desig...a-ui-file.html
Там описаны аж 4 варианта (я тут только один описал, но ИМХО самый удобный). И не только ИМХО, но и в документации фраза:
Цитата:
We generally recommend this approach for libraries and large applications. For more information, see Creating Shared Libraries.
Хотя, то, про что ты спрашивал (работа из main) там тоже описана (но это унылый вариант, это очевидно).

Другой вариант - положить в свой класс не указатель, а экземпляр класса формы. Единственное видимое различие в том, что в хедере придется подключать этот ui_ файл, а это плохо (сказывается на времени компиляции, как минимум).

Еще вариант - множественное наследование (с одной стороны класса формы, с другой, какого-нибудь QWidget) - преимуществ у этого варианта я не вижу, но тоже можно, в принципе.

Последний раз редактировалось rrrFer; 22.02.2014 в 05:32.
rrrFer вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Qt Creator _-Re@l-_ Свободное общение 21 15.02.2012 19:47
Qt creator 2.0.1 Hemul Qt и кроссплатформенное программирование С/С++ 12 26.02.2011 17:48
Qt Creator BioS Qt и кроссплатформенное программирование С/С++ 1 23.06.2010 06:50
QT Creator mirawoo Общие вопросы C/C++ 2 23.08.2009 16:09
FPS Creator SaiLight Gamedev - cоздание игр: Unity, OpenGL, DirectX 2 12.01.2009 09:57