Форум программистов, компьютерный форум, киберфорум
C++ Qt
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
29 / 58 / 6
Регистрация: 10.01.2011
Сообщений: 1,231
1

Разбор основ qt widtgets

26.10.2015, 21:09. Показов 612. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте! В первый раз создал qt gui приложение и сразу появилось множество вопросов. Вот код:

Кликните здесь для просмотра всего текста
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
header.h
......
namespace Ui {
class MainWindow;
}
 
class MainWindow : public QMainWindow
{
    Q_OBJECT
 
public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();
 
private:
    Ui::MainWindow *ui;
};
.......
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
 
    connect(ui->horizontalSlider, SIGNAL(valueChanged(int)), ui->progressBar, SLOT(setValue(int)));
}
 
MainWindow::~MainWindow()
{
    delete ui;
}
 
header.cpp


1) Зачем создается namespace ui;
2) Что обозначает class MainWindow; в namespace;
3) explicit MainWindow(QWidget *parent = 0); зачем это нужно, я так понял это нужно для инициализации базового класса QMainWindow: MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent)

По идеи ui нужно для связи с элементами формы, но почему нужно так изощряться, можно было бы через this обращаться, но через него не работает
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.10.2015, 21:09
Ответы с готовыми решениями:

освоение основ
я учусь на инженера программного обеспечения на втором курсе. Нам дают всего по чу-чуть, возникла...

Последовательность для изучения основ 1С
Здравствуйте! Для изучения основ програмирования 1С-Предприятия я выбрал следующую...

Знание основ ООП/Джава
Здравствуйте. Хочу записаться на курсы по Java, но там требование: знание основ ООП/Java....

Что учить после основ?
Расскажите пожалуйста, что учить после того как узнал основы C++. QT или STL или вообще что - то...

4
6 / 6 / 8
Регистрация: 18.09.2014
Сообщений: 124
26.10.2015, 22:25 2
1) При создании прокета уберай создание формы. Оно тебе будет мешать разбираться с основами Qt
2) Это класс который собственно отвечает за главнео окно. Лучше делать главное окно QWidget (сам так делаю)
3) Сей штука говорит о том, что родителья у неё нет. Оно - окно главное.
1
29 / 58 / 6
Регистрация: 10.01.2011
Сообщений: 1,231
27.10.2015, 00:41  [ТС] 3
Лучше делать главное окно QWidget (сам так делаю)
Это как делать?
0
44 / 44 / 12
Регистрация: 05.04.2015
Сообщений: 345
27.10.2015, 02:01 4
1) Он создается для того чтоб название генерированного автоматически класса было таким же как и вашего класса только так нельзя поэтому он находится в другом пространстве имен. Каков сокровенный смысл этого непонятно надо просто взять на заметку.
2) ui::MainWindow это совсем другой класс. В нем находится то что вы будете кидать на форму в дизайнере. То есть код генерируется автоматически. Посмотреть что там творится можно нажав по его названию мышкой, удерживая при этом control.
3) В Qt любой класс унаследованный от QObject(самый базовый класс или по крайней мере почти надо точно смотреть) может иметь родителя. При уничтожении родителя потомок уничтожается автоматически. Очень удобно, можно не думать об утечках памяти а просто задать родителя. В случае с виджетами родитель имеет еще один смысл а именно объект потомок располагается внутри родителя, ну это если грубо говоря.

C++ (Qt)
1
2
private:
    Ui::MainWindow *ui;
ui это объект совсем другого класса. А перенесено все в другой класс потому что он генерированный автоматически, то есть таким образом отделяется генерированный код от набранного вручную.
1
29 / 58 / 6
Регистрация: 10.01.2011
Сообщений: 1,231
27.10.2015, 08:56  [ТС] 5
Спасибо
0
27.10.2015, 08:56
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.10.2015, 08:56
Помогаю со студенческими работами здесь

Перегрузка методов (изучение основ)
Добрый день! Вот я добрался до перегрузки методов и быстренько накидал вот такой пример: ...

Что изучать после основ?
Всем доброго времени суток, пробуксировал учебник по плюсам, теперь знаю основы от выделения памяти...

Ищу видеокурсы по изучению основ C#
Доброй ночи, господа) Взялся за изучение дот нета, в качестве основы взял себе книгу Шилдта,...

Бесплатное обучение основ CSS
Хочу сделать такой класс обучения css-основ.Но это будет только если будет наберется минимум 5...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru