Название: Как подружить два виджета. Отправлено: LIKAN_BLK от Май 02, 2012, 15:12 В QT разбираюсь второй день, так что ни чем в меня не кидать.
Есть два виджета (class Dialog : public QDialog{}; .....Dialog w; - В качестве основного окна), и собственный виджет отнаследованный от QWidget. Как сделать так чтобы второй виджет отрисовывался в окне первого? Название: Re: Как подружить два виджета. Отправлено: kambala от Май 02, 2012, 16:20 назначить второму виджету родителя типа Dialog
Название: Re: Как подружить два виджета. Отправлено: LIKAN_BLK от Май 02, 2012, 16:54 Пример можно?
Название: Re: Как подружить два виджета. Отправлено: LIKAN_BLK от Май 02, 2012, 17:04 Если вы имели ввиду что-то вроде
MyWidget(QDialog * parent = 0): QDialog(parent) {p=new QPainter; } То пишет ошибку MyWidget.h:13: ошибка: type «QDialog» is not a direct base of «MyWidget» Название: Re: Как подружить два виджета. Отправлено: kambala от Май 02, 2012, 17:52 книжки читать нужно, а не тыкаться наугад.
Код
Название: Re: Как подружить два виджета. Отправлено: LIKAN_BLK от Май 02, 2012, 18:05 Эмм, пробовал уже, не пашет, не появляется мой виджет.
Кстати метод show() нужно вызывать для обоих виджетов или только для родителя? Если вызываю для обоих-то вижу два разных окна, если только для родителя, не вижу второго виджета вообще. Название: Re: Как подружить два виджета. Отправлено: Serr500 от Май 02, 2012, 19:54 Код: Dialog D; Если вы имели ввиду что-то вроде А так может писать только тот, кто ещё и в C++ не разбирается.MyWidget(QDialog * parent = 0): QDialog(parent) {p=new QPainter; } То пишет ошибку MyWidget.h:13: ошибка: type «QDialog» is not a direct base of «MyWidget» Название: Re: Как подружить два виджета. Отправлено: LIKAN_BLK от Май 02, 2012, 20:43 Нет, никаких признаков MyWidget My;
Название: Re: Как подружить два виджета. Отправлено: Serr500 от Май 02, 2012, 20:48 Тогда ищите ошибки в коде виджета. Кстати, а ваш виджет вообще хоть что-то отрисовываемое имеет?
Название: Re: Как подружить два виджета. Отправлено: LIKAN_BLK от Май 02, 2012, 21:37 Вы боитесь что я его не разглядел?
Увы, второй виджет отдан на растерзание QPainter, там много чего заметного Название: Re: Как подружить два виджета. Отправлено: Serr500 от Май 02, 2012, 22:00 QWidget сам по себе не разглядишь, поэтому я и усомнился. Выложите компилируемый кусок проекта, посмотрим что там не так.
Название: Re: Как подружить два виджета. Отправлено: LIKAN_BLK от Май 02, 2012, 22:21 http://pastebin.com/hS2kaEkQ ( родительский виджет) http://pastebin.com/0gFhg3wC(cpp-шник для него) http://pastebin.com/dzPRRUKN (Второй виджет, который я должен отрисовать на первом) http://pastebin.com/AU2J7SLs (Ну и собственно main)
Название: Re: Как подружить два виджета. Отправлено: Serr500 от Май 03, 2012, 08:04 Ага! Всё понятно. Ваш собственный виджет унаследован не от QWidget, а от QDialog. Диалог - это всегда отдельное окно и потому оно не может быть внутри другого диалога. Нужно унаследоваться от QWidget и всё будет работать. Во вложении - работающий вариант.
|