Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Vld2 от Декабрь 19, 2006, 22:29



Название: Взаимодействие widgets + ui.
Отправлено: Vld2 от Декабрь 19, 2006, 22:29
Есть такая проблемма. Создал главную форму с помощью дизанера, создал класс который наследует её. Например class A:Form
Далее руками создаю собственный виджет и вешаю на форму. B:QWidget
Возникает пару вопросов.
1) приходится делать class A главным. Соответственно он принимает все события. Можно конечно их потом передать в класс B, но хотелось бы, чтобы сам класс B получал события. Как это сделать?
(То есть class A - это чисто форма. Буду работать в основном с B (виджетом). )
2)Как виджет лучше всего разместить на форме? Я сделал сто-то типа этого
Код:

A *rate = new A;
 B *ob= new B(rate,"Paint" );
 
 app.setMainWidget(rate);
 rate->show();


Название: Взаимодействие widgets + ui.
Отправлено: Racheengel от Декабрь 20, 2006, 00:23
на форме будет только один виджет В?
какая Qt? 3 или 4? там по-разному


Название: Взаимодействие widgets + ui.
Отправлено: Vld2 от Декабрь 20, 2006, 07:31
Racheengel, QT3 будет один виджет


Название: Взаимодействие widgets + ui.
Отправлено: Racheengel от Декабрь 20, 2006, 09:49
Ну так собственно самое простое тогда сделать этот виджет главным окном, и все. А то у тебя: 1. класс формы с 1 виджетом; 2. класс А, его наследующий, и 3. класс В, который собственно и нужен. Qt позволяет ЛЮБОЙ виджет сделать окном :)


Название: Взаимодействие widgets + ui.
Отправлено: Vld2 от Декабрь 21, 2006, 20:56
Racheengel, У меня есть MyWidget: Qwidget и соответственно класс формы MyForm:Form.
Что-то не понятно как их наследовать?


Название: Взаимодействие widgets + ui.
Отправлено: Racheengel от Декабрь 21, 2006, 23:06
Просто сделай твой  MyWidget главным. Зачем нужен MyForm в таком случае? В main.cpp создал MyWidget и сделал MyWidget->show(). Все, он сам стал главным окном и начал принимать все события....
Или я что-то не так понял?