Объявление формы (qt4)

Модератор: Модераторы разделов

Аватара пользователя
losaped
Сообщения: 124
ОС: Zenwalk

Объявление формы

Сообщение losaped »

У меня нет конкретного вопроса, но есть непонятки с объявлением формы. Я читая кое что из русского (читать Ю.Земскова) по qt4. Из того что я там прочел, я понял, что для разных уровней использования формы и её компонентов требуется по разному объявлять окошко, Вопрос: нахер? И как понять, в какой ситуации и как нужно объявлять окно? И вот еще: почему нельзя стандартно объявить каждую из форм, и автоматически генерить код окна? В QT4 обработка событий только сигнал-слот? Почему в property editor'e нету всех свойств выбранного мной объекта?
писюн - это не самое плохое слово!
Спасибо сказали:
Аватара пользователя
Liksys
Сообщения: 2910

Re: Объявление формы

Сообщение Liksys »

1) Земского - в треш :)
2) Два основных класс для окна - QMainWindow и QDialog, остальные или производные или редко используются. QMainWindow служит для объявления главного окна программы, а QDialog - для остальных окон.
3) Макрос Q_OBJECT добавляется при создании своего класса окна, он делает доступными все возможности QObject`ов, подробнее читай в ассистанте про метообъектную систему.
4) не понял про окно)))
5) Стооп, не путай сигналы-слоты с событиями. Есть в основном два типа: Сигналы-слоты и события. Сигналы используются чаще всего, события тогда, когда надо с классом сделать что-то нестандартное, это более низкий уровень реализации, там идут обычные вызовы функций.
Спасибо сказали:
Аватара пользователя
eduard_pustobaev
Сообщения: 2629
Статус: Ленивец
ОС: Arch/Debian.

Re: Объявление формы

Сообщение eduard_pustobaev »

Честно говоря почти ничего не понял. То есть слова знакомые, но вцелом непонятно.
Насчёт property editor: чёрт его знает, я им не пользуюсь. Может и зря, но я руками привык.
Насчёт событий: в принципе да. Правда ещё есть events.

P.S. Действительно, лучше Бланшетт'а читать, там как-то оно всё попроще, без словоблудия.
В дисгармонии со вселенной.
Спасибо сказали:
Аватара пользователя
Liksys
Сообщения: 2910

Re: Объявление формы

Сообщение Liksys »

eduard_pustobaev писал(а):
22.09.2007 01:09
Может и зря, но я руками привык.
Да нет, я тоже руками все пишу, мы с тобой старомодного воспитания :)
Спасибо сказали:
Аватара пользователя
losaped
Сообщения: 124
ОС: Zenwalk

Re: Объявление формы

Сообщение losaped »

Darth Liksys писал(а):
22.09.2007 00:33
1) Земского - в треш :)
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: Объявление формы

Сообщение eduard_pustobaev »

Darth Liksys писал(а):
22.09.2007 01:14
Да нет, я тоже руками все пишу, мы с тобой старомодного воспитания :)

Олдскул...:) Рановато как-то быть старомодными...
В дисгармонии со вселенной.
Спасибо сказали:
Аватара пользователя
Liksys
Сообщения: 2910

Re: Объявление формы

Сообщение Liksys »

3) У меня с инглишем точно так же. Я тебе уже говорил, в нете валяется ботва по Qt3 от Бланшед-Саммерфилд, вполне сгодится для усвоения концепций.
4) Руками надо перекомпилировать. Но вот например видел в Qt4 недавно фишку, когда файлы ui можно грузить непосредственно при работе проги, хз как руботает, в доках написано, но вникать мне в лом, как было сказано выше - дизайнерами не пользуюсь :)
5) Это тебе надо сигнал/слот делать.
Спасибо сказали:
Аватара пользователя
eduard_pustobaev
Сообщения: 2629
Статус: Ленивец
ОС: Arch/Debian.

Re: Объявление формы

Сообщение eduard_pustobaev »

losaped писал(а):
22.09.2007 01:16
5)Если у меня есть класс 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: Объявление формы

Сообщение Liksys »

eduard_pustobaev писал(а):
22.09.2007 01:17
Олдскул...:) Рановато как-то быть старомодными...
Ну хз :) В универе преподы вешаются от моих переменных вида create_index_table_button, а когда видят, что я руками формы пишу, начинают рассказывать, что кроме моей обожаемой консоли и вима есть еще среды разработки :D
Спасибо сказали:
Аватара пользователя
eduard_pustobaev
Сообщения: 2629
Статус: Ленивец
ОС: Arch/Debian.

Re: Объявление формы

Сообщение eduard_pustobaev »

Darth Liksys писал(а):
22.09.2007 01:23
В универе преподы вешаются от моих переменных вида create_index_table_button, а когда видят, что я руками формы пишу, начинают рассказывать, что кроме моей обожаемой консоли и вима есть еще среды разработки :D

Ну среды-то как раз штука неплохая. Я например kdevelop пользую. А вот дизайнеры как-то не прижились.
В дисгармонии со вселенной.
Спасибо сказали:
Аватара пользователя
Liksys
Сообщения: 2910

Re: Объявление формы

Сообщение Liksys »

Пошли оффтопить :) Имхо, дело привычки. У меня и среды как-то не прижились, Может, просто пока не нашел "правильную" для себя.
Спасибо сказали:
sergio
Сообщения: 436
Статус: Интересующийся новичок
ОС: Debian GNU/Linux 4 & 5

Re: Объявление формы

Сообщение sergio »

Darth Liksys писал(а):
22.09.2007 01:20
4) Руками надо перекомпилировать. Но вот например видел в Qt4 недавно фишку, когда файлы ui можно грузить непосредственно при работе проги, хз как руботает, в доках написано, но вникать мне в лом, как было сказано выше - дизайнерами не пользуюсь :)

Дык в ГТК такая же ботва есть - Глайд. И либглайд соотв-но. То ж юи файлы в ХМЛ во время работы грузит, типа можно открыть окошко, посмотреть, подредактировать в глайде, сохранить новых ХМЛ, снова нажать на кнопочку - и откроется уже новая версия. =)
Debian GNU/Linux 4 -- AMD Athlon64 3000+ / Asus 7600GS -- Gnome
Debian GNU/Linux 5 -- Dell (Vostro) 500 (Celeron M560 / iGM965) -- Gnome
Спасибо сказали: