读书人

QT 怎样在控件下画图

发布时间: 2013-02-25 10:23:36 作者: rapoo

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

读书人网 >QT开发

热点推荐