Название: Что такое ui ? Отправлено: QtProger от Октябрь 23, 2009, 19:56 Вопрос заключается в следующем: чтобы обратиться к какому-нибудь виджету на форме, надо писать перед его именем ui, примерно так:
ui->plainTextEdit->toPlainText() Что такое ui и откуда он взялся ? Название: Re: Что такое ui ? Отправлено: zenden от Октябрь 23, 2009, 21:03 Кликаем по слову ui.
Нажимаем F2. Вуаля!! ;) Название: Re: Что такое ui ? Отправлено: QtProger от Октябрь 23, 2009, 21:17 Кликаем по слову ui. Нажимаем F2. Вуаля!! ;) Спасибо ! Не знал про такую крутую функцию F2 Не пойму, как это в классе можно объявить объект этого класса ??? Код
Название: Re: Что такое ui ? Отправлено: BRE от Октябрь 23, 2009, 21:25 Не пойму, как это в классе можно объявить объект этого класса ??? А это объект другого класса. ;)Посмотри файл ui_mywidget.h Название: Re: Что такое ui ? Отправлено: zenden от Октябрь 23, 2009, 21:31 Ui::MyWidget *ui; //эта строчка похоже меня доконает }; Выбираем Ui, нажимаем F2 и видим волшебное слово namespace. Название: Re: Что такое ui ? Отправлено: lit-uriy от Октябрь 23, 2009, 22:07 Цитировать Не пойму, как это в классе можно объявить объект этого класса так делать можно! Это наиболее простой способ создать связанный список (обычно так делают в структурах, но класс почти ничем от неё не отличается)Цитировать Ui::MyWidget *ui; //эта строчка похоже меня доконает Здесь нет упоминания этого же класса. Здесь объявлен указатель с именем ui на класс MyWidget находящийся в пространстве имён Ui (который в свою очередь определён в автоматически создаваемом файле)Название: Re: Что такое ui ? Отправлено: zenden от Октябрь 23, 2009, 22:34 так делать можно! Это наиболее простой способ создать связанный список (обычно так делают в структурах, но класс почти ничем от неё не отличается) Автор темы прав, объект создать нельзя, можно использовать указатель или ссылку на объект. всё, молчу, Капитан Очевидность вас покидает ;D Название: Re: Что такое ui ? Отправлено: QtProger от Октябрь 24, 2009, 10:24 Код
Зачем нужно делать namespace Ui, и в классе создавать указатель на объект этого класса ? Нафиг это нужно ? Название: Re: Что такое ui ? Отправлено: BRE от Октябрь 24, 2009, 10:51 Зачем нужно делать namespace Ui, и в классе создавать указатель на объект этого класса ? Нафиг это нужно ? Повторюсь, посмотри файл ui_mywidget.h, который генерируется утилитой uic из файла mywidget.uiНазвание: Re: Что такое ui ? Отправлено: QtProger от Октябрь 24, 2009, 12:13 Повторюсь, посмотри файл ui_mywidget.h, который генерируется утилитой uic из файла mywidget.ui Посмотрел, нашел там класс Ui_MyWidget, в котором содержатся все виджеты на форме. А также там нашел: Код
А в файле mywidget.cpp: Код
Зачем два раза писать класс MyWidget в пространстве имен Ui ? ??? Название: Re: Что такое ui ? Отправлено: BRE от Октябрь 24, 2009, 12:19 Посмотрел, нашел там класс Ui_MyWidget, в котором содержатся все виджеты на форме. А также там нашел: Первое написание - это определение самого класса, второе - его forward declaration.Код
А в файле mywidget.cpp: Код
Зачем два раза писать класс MyWidget в пространстве имен Ui ? ??? Название: Re: Что такое ui ? Отправлено: QtProger от Октябрь 24, 2009, 12:53 Я так понимаю, что MyWidget и Ui::MyWidget - это совершенно разные классы. Я правильно понял ?
Название: Re: Что такое ui ? Отправлено: BRE от Октябрь 24, 2009, 12:56 Я так понимаю, что MyWidget и Ui::MyWidget - это совершенно разные классы. Я правильно понял ? ДаНазвание: Re: Что такое ui ? Отправлено: QtProger от Октябрь 24, 2009, 13:22 Я так понимаю, что MyWidget и Ui::MyWidget - это совершенно разные классы. Я правильно понял ? ДаЕсли так, то это почти все проясняет. Но вот одна загвоздка.... (см. http://www.prog.org.ru/index.php?topic=11011.msg67007#msg67007) Навожу курсор мыши на класс MyWidget в пространстве имен Ui: Код
Нажимаю F2 и оказываюсь тут: Код
Что это значит ? Название: Re: Что такое ui ? Отправлено: lit-uriy от Октябрь 24, 2009, 14:23 >>Что это значит ?
скорее всего, алгоритм анализа в IDE несовершенен Название: Re: Что такое ui ? Отправлено: QtProger от Октябрь 24, 2009, 14:45 скорее всего, алгоритм анализа в IDE несовершенен На IDE надо грешить в самую последнюю очередь. |