Прочитал еще в первый раз, не разобрался тогда. Теперь понятно как размещать страницы во вкладках. Но пейнтер все равно не рисует. Говорит, что не активирован. Вот код:
tabWidget = new QTabWidget(centralwidget);
tabWidget->setObjectName(QString::fromUtf8("TabWidget"));
tabWidget->setGeometry(QRect(5, 30, width()-10, height()-85));
PageForGraphic = new QWidget;
PageForGraphic->setGeometry(QRect(5, 30, width()-10, height()-85));
Этот код записан в конструкторе Главного окна. Далее:
void MainWindow::InTabs()
{
tab = new QWidget(); //Создаем вкладку.
PageForGraphic->setParent(tab); //Называем ее родителем.
tabWidget->addTab(tab, QString::fromLocal8Bit("Ãðàôèê %1").arg(tabWidget->count()+1)); //Добавляем ее на TabWidget.
tabWidget->setCurrentWidget(tab); //Подсвечивем.
}
Этот код записан в отдельной функции. В нее посылается сигнал из диалогового окна, приказывающий создать собственно вкладку. Далее:
void MainWindow::RunMNK(double *PointArrayX, double *PointArrayY, int N, int choise)
{
//Здесь написан некоторый код. Для его выполнения посылается сигнал из того диалогового окна.
ChooseGraphic(choise);
}
void MainWindow::ChooseGraphic(int choise)
{
C=choise;
update();
}
Это некоторое лирическое отступление, как программа доходит до update(). Далее:
void MainWindow::paintEvent(QPaintEvent *event)
{
QPainter painter(PageForGraphic);
switch(C)
{
case 1:
{
painter.setWindow(/*-LW*maxX-30, -LH*maxY-65,*/0,0, width(), height());
painter.setRenderHint(QPainter::Antialiasing, true);
painter.setPen(QPen(QColor(255, 0, 0), 7, Qt::SolidLine, Qt::RoundCap));
painter.drawPoints(PointArrayXY, M);
}
case 2:
{
//
}
case 3:
{
//
}
}
}
Сам пейнтэвент. В нем указываю, где рисовать, но он не рисует))
Короче перепробовал все варианты переписи кода, которые приходили в голову, но ни один не помог. Подскажите, где ошибка? Или я чего ее не дописал...