Название: Рисование в определенном табе. QTabWidget Отправлено: jodam от Декабрь 16, 2010, 16:29 Я добавил в MainWindow tabwidget, при помощи QtCreator... Все работает, добавляю в первый таб Label.. через тот же Creator, но возникла такая ситуация, рисовать во втором табе, а проблема состоит в том что, рисуется оно всех табах.... Как отрисовать непосредственно во втором табе?
вот полный код MainWindow.cpp Код
Название: Re: Рисование в определенном табе. QTabWidget Отправлено: kirill от Декабрь 16, 2010, 17:07 Ты рисуешь прямо по главному окну.
Отнаследуйся от QWidget и переопредели ему paintEvent() и его пихай в таб. Название: Re: Рисование в определенном табе. QTabWidget Отправлено: ANtlord от Январь 25, 2011, 16:47 Ты рисуешь прямо по главному окну. Отнаследуйся от QWidget и переопредели ему paintEvent() и его пихай в таб. Последние три слова подскажите как реализовать. Я так понимаю надо создать простую процедуру void QTabWidget::paintEvent(QPaintEvent *e) { QPainter img(this); img.drawLine(0,30,100,100); } Но где её запустить? Название: Re: Рисование в определенном табе. QTabWidget Отправлено: alexman от Январь 25, 2011, 18:24 Пипец! Справку смотри!
Название: Re: Рисование в определенном табе. QTabWidget Отправлено: ANtlord от Январь 25, 2011, 19:25 >_< если бы я не пролистал справку, не погуглил, не потанцевал с бубном, не почитал книжек, я бы не стал писать на форум. Где сидят такие уважаемые гуру.
P.S. а как рисовать на widget (главном окне) я и так знаю Название: Re: Рисование в определенном табе. QTabWidget Отправлено: serg_hd от Январь 26, 2011, 15:30 ANtlord, народ наверное имел ввиду, что надо унаследоваться от QLabel (а лучше действительно просто от QWidget, надо смотреть по обстоятельствам), перегрузить его paintEvent(), и уже потом добавлять этот QLabel в нужный тебе таб, и так для каждого таба свой label :)
п.с. на будущее - когда выкладываешь код, то не выкладывай кучу лишнего, не относящегося к вопросу, этим только отбиваешь желание разбираться в нём Название: Re: Рисование в определенном табе. QTabWidget Отправлено: ANtlord от Январь 26, 2011, 15:52 Так я знаю как унаследовать новый элемент от QWidget. Поправьте если не так.
Код: class canvas : public QWidget { Но как его "прикрутить" (сделать дочерним окном я так понимаю). Я может и нубские вопросы задаю. Но тем не менее, пользуюсь Шлее и Google. Название: Re: Рисование в определенном табе. QTabWidget Отправлено: serg_hd от Январь 26, 2011, 16:03 так у QTabWidget же есть метод
Код им и добавь Но тем не менее, пользуюсь Шлее и Google. это хорошо, но без assistant'а затраченное время не слишком производительно Название: Re: Рисование в определенном табе. QTabWidget Отправлено: ANtlord от Январь 26, 2011, 16:34 Этот метод, судя из документации, добавляет вкладку, а не область на вкладку.
Но я всё равно решил попробовать сначала продекларировал объект в своем классе canvas, мне он выдал ошибку, я дошел до банальности и продекларировал в QWidget. Все равно дает ошибки error: no matching function for call to ‘QTabWidget::addTab(QWidget&, const char [6])’ qt4/QtGui/qtabwidget.h:79: candidates are: int QTabWidget::addTab(QWidget*, const QString&) qt4/QtGui/qtabwidget.h:80: int QTabWidget::addTab(QWidget*, const QIcon&, const QString&) Код: QWidget q; Название: Re: Рисование в определенном табе. QTabWidget Отправлено: serg_hd от Январь 26, 2011, 16:37 Код
Название: Re: Рисование в определенном табе. QTabWidget Отправлено: ANtlord от Январь 26, 2011, 16:41 Спасибо, serg_hd, всё скомпилиоровалось, но ничего не изменилось))) но думаю тут я разберусь. Google и Docs помогут
P.S. Сори, добавилась вкладка, как я и думал. Но я надеялся что на существующую вкладку добавится виджет на котором можно будет рисовать =\ Название: Re: Рисование в определенном табе. QTabWidget Отправлено: ANtlord от Январь 26, 2011, 17:29 В общем у меня всё получилось как я задумывал! надо было продеклалрировать точно также объект в параметрах canvas надо было указать родительское окно (ui->tab_5), затем отобразить его, а дальше вручную выставить размеры и местоположение. Всем спасибо, включая парня, который меня послал читать доки ;)
|