当前位置: 代码迷 >> QT开发 >> QT 怎样在控件下画图
  详细解决方案

QT 怎样在控件下画图

热度:62   发布时间:2016-04-25 04:06:26.0
QT 怎样在控件上画图
我想在一个Widget中的tabwidget中画图,该怎么办
 QPainter painter(this);这里面的this应该怎么改?

又或者如果不能在控件上画的话,怎样使画出来的图形处于其他控件的上层而不至于被覆盖掉

------解决方案--------------------
前两个问题:先把图绘在一个Widget里,然后把它加在tabWidget里就行。
后一个问题我也坐等答案。
参考代码(WIN7、VS2008运行通过):
#include <QApplication>
#include <QWidget>
#include <QPainter>
#include <QTabWidget>

class paint : public QWidget
{
public:
paint(QColor c);

protected:
void paintEvent(QPaintEvent *event);

private:
QColor color;

};

paint::paint(QColor c)
{
color = c;
}

void paint::paintEvent(QPaintEvent *event)
{

QPainter painter(this);
painter.setRenderHint(QPainter::Antialiasing);
painter.setPen(QPen(Qt::black, 12, Qt::DashDotLine, Qt::RoundCap));
painter.setBrush(QBrush(color, Qt::SolidPattern));
painter.drawEllipse(50, 40, 400, 300);
}

int main(int argc, char *argv[])
{
QApplication a(argc, argv);

QTabWidget *tabWidget = new QTabWidget;
tabWidget->addTab(new paint(Qt::green), "TabGreen");
tabWidget->addTab(new paint(Qt::red), "TabRed");
tabWidget->addTab(new paint(Qt::blue), "TabBlue");
tabWidget->resize(500, 400);
tabWidget->show();

return a.exec();
}
------解决方案--------------------
我的资源里有个例子,不用继承QTabWidget就能画图。
  相关解决方案