Объявление формы (qt4)
Модератор: Модераторы разделов
-
losaped
- Сообщения: 124
- ОС: Zenwalk
Объявление формы
У меня нет конкретного вопроса, но есть непонятки с объявлением формы. Я читая кое что из русского (читать Ю.Земскова) по qt4. Из того что я там прочел, я понял, что для разных уровней использования формы и её компонентов требуется по разному объявлять окошко, Вопрос: нахер? И как понять, в какой ситуации и как нужно объявлять окно? И вот еще: почему нельзя стандартно объявить каждую из форм, и автоматически генерить код окна? В QT4 обработка событий только сигнал-слот? Почему в property editor'e нету всех свойств выбранного мной объекта?
писюн - это не самое плохое слово!
-
Liksys
- Сообщения: 2910
Re: Объявление формы
1) Земского - в треш 
2) Два основных класс для окна - QMainWindow и QDialog, остальные или производные или редко используются. QMainWindow служит для объявления главного окна программы, а QDialog - для остальных окон.
3) Макрос Q_OBJECT добавляется при создании своего класса окна, он делает доступными все возможности QObject`ов, подробнее читай в ассистанте про метообъектную систему.
4) не понял про окно)))
5) Стооп, не путай сигналы-слоты с событиями. Есть в основном два типа: Сигналы-слоты и события. Сигналы используются чаще всего, события тогда, когда надо с классом сделать что-то нестандартное, это более низкий уровень реализации, там идут обычные вызовы функций.
2) Два основных класс для окна - QMainWindow и QDialog, остальные или производные или редко используются. QMainWindow служит для объявления главного окна программы, а QDialog - для остальных окон.
3) Макрос Q_OBJECT добавляется при создании своего класса окна, он делает доступными все возможности QObject`ов, подробнее читай в ассистанте про метообъектную систему.
4) не понял про окно)))
5) Стооп, не путай сигналы-слоты с событиями. Есть в основном два типа: Сигналы-слоты и события. Сигналы используются чаще всего, события тогда, когда надо с классом сделать что-то нестандартное, это более низкий уровень реализации, там идут обычные вызовы функций.
-
eduard_pustobaev
- Сообщения: 2629
- Статус: Ленивец
- ОС: Arch/Debian.
Re: Объявление формы
Честно говоря почти ничего не понял. То есть слова знакомые, но вцелом непонятно.
Насчёт property editor: чёрт его знает, я им не пользуюсь. Может и зря, но я руками привык.
Насчёт событий: в принципе да. Правда ещё есть events.
P.S. Действительно, лучше Бланшетт'а читать, там как-то оно всё попроще, без словоблудия.
Насчёт property editor: чёрт его знает, я им не пользуюсь. Может и зря, но я руками привык.
Насчёт событий: в принципе да. Правда ещё есть events.
P.S. Действительно, лучше Бланшетт'а читать, там как-то оно всё попроще, без словоблудия.
В дисгармонии со вселенной.
-
Liksys
- Сообщения: 2910
Re: Объявление формы
Да нет, я тоже руками все пишу, мы с тобой старомодного воспитания
-
losaped
- Сообщения: 124
- ОС: Zenwalk
Re: Объявление формы
Darth Liksys писал(а): ↑22.09.2007 00:331) Земского - в треш
2) Два основных класс для окна - QMainWindow и QDialog, остальные или производные или редко используются. QMainWindow служит для объявления главного окна программы, а QDialog - для остальных окон.
3) Макрос Q_OBJECT добавляется при создании своего класса окна, он делает доступными все возможности QObject`ов, подробнее читай в ассистанте про метообъектную систему.
4) не понял про окно)))
5) Стооп, не путай сигналы-слоты с событиями. Есть в основном два типа: Сигналы-слоты и события. Сигналы используются чаще всего, события тогда, когда надо с классом сделать что-то нестандартное, это более низкий уровень реализации, там идут обычные вызовы функций.
1)Вобщем-то я тоже так подумал.
2)Тут бы мне надо попытаться привести пример, который заставил меня об этом задуматься, но не сейчас.
3)Эх, еслиб у меня было хорошо с инглишем. Я конечно общий смысл написанного понимаю, но все же этого мало, чтобы хорошо разобраться.
4)Если я правильно понял, то непонятно с автоматической генерацией кода окна в файл? Тут я имел ввиду среды типа билдеров и все такое, где не нужно практически ничего объявлять, Когда код объявления формы заполняется сам.
5)Если у меня есть класс array и в нем функция добавления элемента, конструктор, который должен заполнить массив опред. образом, смотря какая пимпа нажата, то как мне это сделать удобнее? Ну например добавить элемент в массив: допустим это функция void addal(int)где параметр-это число которое я добавляю в масив. Вопрос в том как мне эту функцию вызвать.
писюн - это не самое плохое слово!
-
eduard_pustobaev
- Сообщения: 2629
- Статус: Ленивец
- ОС: Arch/Debian.
Re: Объявление формы
Darth Liksys писал(а): ↑22.09.2007 01:14Да нет, я тоже руками все пишу, мы с тобой старомодного воспитания
Олдскул...
В дисгармонии со вселенной.
-
Liksys
- Сообщения: 2910
Re: Объявление формы
3) У меня с инглишем точно так же. Я тебе уже говорил, в нете валяется ботва по Qt3 от Бланшед-Саммерфилд, вполне сгодится для усвоения концепций.
4) Руками надо перекомпилировать. Но вот например видел в Qt4 недавно фишку, когда файлы ui можно грузить непосредственно при работе проги, хз как руботает, в доках написано, но вникать мне в лом, как было сказано выше - дизайнерами не пользуюсь
5) Это тебе надо сигнал/слот делать.
4) Руками надо перекомпилировать. Но вот например видел в Qt4 недавно фишку, когда файлы ui можно грузить непосредственно при работе проги, хз как руботает, в доках написано, но вникать мне в лом, как было сказано выше - дизайнерами не пользуюсь
5) Это тебе надо сигнал/слот делать.
-
eduard_pustobaev
- Сообщения: 2629
- Статус: Ленивец
- ОС: Arch/Debian.
Re: Объявление формы
losaped писал(а): ↑22.09.2007 01:165)Если у меня есть класс array и в нем функция добавления элемента, конструктор, который должен заполнить массив опред. образом, смотря какая пимпа нажата, то как мне это сделать удобнее? Ну например добавить элемент в массив: допустим это функция void addal(int)где параметр-это число которое я добавляю в масив. Вопрос в том как мне эту функцию вызвать.
class Array : public QObject
{
public:
Array();
public slots:
void addElem(void){};
};
.....
Array *ar = new Array();
QObject::connect(button, SIGNAL(clicked()), ar, SLOT(addElem()));
В дисгармонии со вселенной.
-
Liksys
- Сообщения: 2910
Re: Объявление формы
Ну хз
-
eduard_pustobaev
- Сообщения: 2629
- Статус: Ленивец
- ОС: Arch/Debian.
Re: Объявление формы
Darth Liksys писал(а): ↑22.09.2007 01:23В универе преподы вешаются от моих переменных вида create_index_table_button, а когда видят, что я руками формы пишу, начинают рассказывать, что кроме моей обожаемой консоли и вима есть еще среды разработки
Ну среды-то как раз штука неплохая. Я например kdevelop пользую. А вот дизайнеры как-то не прижились.
В дисгармонии со вселенной.
-
Liksys
- Сообщения: 2910
Re: Объявление формы
Пошли оффтопить
Имхо, дело привычки. У меня и среды как-то не прижились, Может, просто пока не нашел "правильную" для себя.
-
sergio
- Сообщения: 436
- Статус: Интересующийся новичок
- ОС: Debian GNU/Linux 4 & 5
Re: Объявление формы
Darth Liksys писал(а): ↑22.09.2007 01:204) Руками надо перекомпилировать. Но вот например видел в Qt4 недавно фишку, когда файлы ui можно грузить непосредственно при работе проги, хз как руботает, в доках написано, но вникать мне в лом, как было сказано выше - дизайнерами не пользуюсь
Дык в ГТК такая же ботва есть - Глайд. И либглайд соотв-но. То ж юи файлы в ХМЛ во время работы грузит, типа можно открыть окошко, посмотреть, подредактировать в глайде, сохранить новых ХМЛ, снова нажать на кнопочку - и откроется уже новая версия. =)
Debian GNU/Linux 4 -- AMD Athlon64 3000+ / Asus 7600GS -- Gnome
Debian GNU/Linux 5 -- Dell (Vostro) 500 (Celeron M560 / iGM965) -- Gnome
Debian GNU/Linux 5 -- Dell (Vostro) 500 (Celeron M560 / iGM965) -- Gnome