Рисование во вкладках, В каждой вкладке - свой рисунок. Как сделать? |
Здравствуйте, гость ( Вход | Регистрация )
Рисование во вкладках, В каждой вкладке - свой рисунок. Как сделать? |
QMainWindow |
1.8.2010, 15:42
Сообщение
#1
|
Участник Группа: Участник Сообщений: 198 Регистрация: 1.8.2010 Пользователь №: 1922 Спасибо сказали: 0 раз(а) Репутация: 0 |
Доброго дня!
Ситуация: делаю прогу для построения графиков. Графики хочу, чтобы рисовались во вкладках (одна вкладка - один график). Не знаю, как заставить рисовальщик рисовать в нужной мне вкладке. Создаю, соответственно, в главном окне QTabWidget, в котором создаю вкладку. Сразу же после ее создания должен в ней отобразиться график. Как это сделать? |
|
|
Алексей1153 |
1.8.2010, 17:15
Сообщение
#2
|
фрилансер Группа: Участник Сообщений: 2939 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
Если нет никакого подвоха, то, казалось бы, всё элементарно:
в paintEvent вкладки посмотреть, что должна отображать вкладка, и нарисовать это. |
|
|
Litkevich Yuriy |
1.8.2010, 17:20
Сообщение
#3
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
QMainWindow, сделай виджет, на котором будет рисоваться график и помести его в QTabWidget в качестве страницы
|
|
|
QMainWindow |
1.8.2010, 20:21
Сообщение
#4
|
Участник Группа: Участник Сообщений: 198 Регистрация: 1.8.2010 Пользователь №: 1922 Спасибо сказали: 0 раз(а) Репутация: 0 |
Аха, простой QWidget и поместить его туда. Такс, а как его соединить с вкладкой? Т.е. чтобы виджет tab отвечал своей странице?
|
|
|
Алексей1153 |
1.8.2010, 20:26
Сообщение
#5
|
фрилансер Группа: Участник Сообщений: 2939 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
QMainWindow, читай описание конструктора QWidget.
А как понять "чтобы виджет tab отвечал своей странице" ? |
|
|
QMainWindow |
1.8.2010, 21:00
Сообщение
#6
|
Участник Группа: Участник Сообщений: 198 Регистрация: 1.8.2010 Пользователь №: 1922 Спасибо сказали: 0 раз(а) Репутация: 0 |
Имел ввиду, что когда нажимаем на вкладку (на прямоугольник с названием вверху), то на экране выводится именно тот график (или что-то другое), который соответствует данной вкладке))
|
|
|
Litkevich Yuriy |
1.8.2010, 21:49
Сообщение
#7
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
Прочитай документацию по QTabWidget и всё поймёшь
|
|
|
QMainWindow |
2.8.2010, 10:33
Сообщение
#8
|
Участник Группа: Участник Сообщений: 198 Регистрация: 1.8.2010 Пользователь №: 1922 Спасибо сказали: 0 раз(а) Репутация: 0 |
Прочитал еще в первый раз, не разобрался тогда. Теперь понятно как размещать страницы во вкладках. Но пейнтер все равно не рисует. Говорит, что не активирован. Вот код:
Этот код записан в конструкторе Главного окна. Далее:
Этот код записан в отдельной функции. В нее посылается сигнал из диалогового окна, приказывающий создать собственно вкладку. Далее:
Это некоторое лирическое отступление, как программа доходит до update(). Далее: Сам пейнтэвент. В нем указываю, где рисовать, но он не рисует))Короче перепробовал все варианты переписи кода, которые приходили в голову, но ни один не помог. Подскажите, где ошибка? Или я чего ее не дописал... |
|
|
Алексей1153 |
2.8.2010, 11:00
Сообщение
#9
|
фрилансер Группа: Участник Сообщений: 2939 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
Может, оно и не оно, но одна ошибка (даже 3) точно есть: в твоём лирическом о. нет break после каждого case.
вот это тоже сильно смущает QPainter painter(PageForGraphic); обычно тут QPainter painter(this); Зачем окну рисовать в другом окне ? |
|
|
QMainWindow |
2.8.2010, 11:04
Сообщение
#10
|
Участник Группа: Участник Сообщений: 198 Регистрация: 1.8.2010 Пользователь №: 1922 Спасибо сказали: 0 раз(а) Репутация: 0 |
Эт по невнимательности. Исправил, но painter как не был активированным, так и не активирован... Странно, вот если написать QPainter painter(this);, то он все прекрасно рисует... Но только непосредственно в главном окне((
|
|
|
Текстовая версия | Сейчас: 29.3.2024, 3:17 |