首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > QT开发 >

QT 怎样在控件下画图

2013-02-25 
QT 怎样在控件上画图我想在一个Widget中的tabwidget中画图,该怎么办 QPainter painter(this)这里面的this

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就能画图。

热点排行