20 / 20 / 9
Регистрация: 23.09.2013
Сообщений: 329
|
|
1 | |
Что значит конструкция при создании наследуемого класса от QMainWindow25.03.2014, 16:59. Показов 3326. Ответов 16
Метки нет (Все метки)
Здравствуйте, подскажите пожалуйста,
создал класс mainwindow, наследуемый от QMainWindow и в хедере: Код
class MainWindow : public QMainWindow { Q_OBJECT public: explicit MainWindow(QWidget *parent = 0); ~MainWindow(); protected: void virtual paintEvent(QPaintEvent*); private: Ui::MainWindow *ui; }; Код
private: Ui::MainWindow *ui; Код
Q_OBJECT Спасибо.
0
|
25.03.2014, 16:59 | |
Ответы с готовыми решениями:
16
Что значит * при создании переменных? Что значит элемент в строке при создании блокнота в Windows Form? Что значит эта конструкция? Что значит эта конструкция |
10 / 10 / 3
Регистрация: 02.11.2013
Сообщений: 53
|
|
25.03.2014, 17:06 | 2 |
Q_OBJECT - макрос, который используется во всех формах, наследуемых от QObject. Без него не будут работать сигналы, слоты и т.д.
Ui::MainWindow *ui - думается, что ссылка класса "на себя", через которую идет доступ к виджетам на форме. Если что не так - поправьте...
1
|
20 / 20 / 2
Регистрация: 27.01.2014
Сообщений: 232
|
|
25.03.2014, 17:12 | 3 |
C ui не все так просто. И вроде это далеко не ссылка на себя.
0
|
20 / 20 / 9
Регистрация: 23.09.2013
Сообщений: 329
|
|
25.03.2014, 17:14 [ТС] | 4 |
0
|
20 / 20 / 2
Регистрация: 27.01.2014
Сообщений: 232
|
|
25.03.2014, 17:18 | 5 |
Указатель на класс? А что это?
Вы попробуйте добавить какое-нибудь поле в MainWindow. А потом обратиться к нему через ui->. И в ui лежат элементы, которые добавляются через дизайнера.
0
|
20 / 20 / 9
Регистрация: 23.09.2013
Сообщений: 329
|
|
25.03.2014, 17:23 [ТС] | 6 |
Получается, что через ui можно дальше обращаться к членам класса MainWindow, например в его конструкторе.
0
|
20 / 20 / 2
Регистрация: 27.01.2014
Сообщений: 232
|
|
25.03.2014, 17:25 | 7 |
0
|
10 / 10 / 3
Регистрация: 02.11.2013
Сообщений: 53
|
|
25.03.2014, 17:32 | 8 |
Ну moc, дальше что?
Ну ежу понятно, что если добавлять поля сразу в файле, то обращение через ui не потребуется
0
|
20 / 20 / 9
Регистрация: 23.09.2013
Сообщений: 329
|
|
25.03.2014, 17:32 [ТС] | 9 |
Код
Попробуйте же. А вот сама запись как работает не очень понимаю. Не знает как этот конструктор работает?
0
|
20 / 20 / 2
Регистрация: 27.01.2014
Сообщений: 232
|
|
25.03.2014, 17:35 | 10 |
к самому ui и его некоторым методам да, а вы попробуйте в класс MainWindow добавить открытую переменную например int i;. А потом в конструкторе написать ui->i = 5; например
0
|
20 / 20 / 9
Регистрация: 23.09.2013
Сообщений: 329
|
|
25.03.2014, 17:40 [ТС] | 11 |
Код
Ну ежу понятно, что если добавлять поля сразу в файле, то обращение через ui не потребуется Добавлено через 5 минут
0
|
10 / 10 / 3
Регистрация: 02.11.2013
Сообщений: 53
|
|
25.03.2014, 17:45 | 12 |
uic читает xml, который создан в креаторе.
O_OBJECT обрабатывается с помощью moc.
0
|
20 / 20 / 9
Регистрация: 23.09.2013
Сообщений: 329
|
|
25.03.2014, 17:46 [ТС] | 13 |
0
|
10 / 10 / 3
Регистрация: 02.11.2013
Сообщений: 53
|
|
25.03.2014, 17:48 | 14 |
0
|
20 / 20 / 2
Регистрация: 27.01.2014
Сообщений: 232
|
|
25.03.2014, 17:49 | 15 |
Вот я тоже не совсем понимаю что означает эта запись с неймспейсом. Мои догадки:
1.Сам по себе код означает нэймспэйс ui c пустым классом c таким же именем как у рассматриваемого виджета. Возможно это делается автоматом так, что все классы ui у всех виджетов были уникальны(то есть Ui::имя класса виджета, которое само по себе уникально). 2. ui предоставляет доступ к тому, что есть на форме в дизайнере. И еще у ui есть методы, которые нигде не были определены в коде. Видимо в этом вся суть. Я прав? И вопрос к знатокам: можно ли как-то добавлять в ui виджеты динамически? Я просто не совсем понимаю где было бы правильно в классе главного виджета динамически добавляемые виджеты.
0
|
10 / 10 / 3
Регистрация: 02.11.2013
Сообщений: 53
|
|
25.03.2014, 17:53 | 16 |
Можно, но нудно и долго.
Надо взять (или создать) layout формы и через layoutname->addWidget(qpb), где qpb - имя QPushButton/ Как-то так
1
|
20 / 20 / 2
Регистрация: 27.01.2014
Сообщений: 232
|
|
25.03.2014, 17:56 | 17 |
А, точно я ведь и забыл про то, что все равно лучше все в лэйаутах делать. Надо будет попробовать.
Вообще почитать бы где-нибудь про этот ui.
0
|
25.03.2014, 17:56 | |
25.03.2014, 17:56 | |
Помогаю со студенческими работами здесь
17
Что значит конструкция в документации Java QTcpServer выдвет ошибку при создании сервера в классе, наследуемого от QObjetc Как при помощи указателя на базовый класс обратится к полю наследуемого класса? Что значит эта конструкция "<String>"? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |