
QT画线问题
这是网上找到的程序,线是画在mainwindow上的,现在我有一个qgraphics,怎么改能够画在scene上?voidMainWindow::paintEvent(Q...
这是网上找到的程序,线是画在mainwindow上的,现在我有一个qgraphics,怎么改能够画在scene上?
void MainWindow::paintEvent(QPaintEvent *w)
{
QPainter p(this);
p.setPen(QPen(Qt::red,10));
QPointF pt(19,19);
QPointF pts[10];
int t=QTime::currentTime().second();
qsrand(t);
for(int i=0;i<10;i++)
{
pt.setX(qrand()%200);
pt.setY(qrand()%300);
pts[i]=pt;
}
p.drawPolyline(pts,10);
} 展开
void MainWindow::paintEvent(QPaintEvent *w)
{
QPainter p(this);
p.setPen(QPen(Qt::red,10));
QPointF pt(19,19);
QPointF pts[10];
int t=QTime::currentTime().second();
qsrand(t);
for(int i=0;i<10;i++)
{
pt.setX(qrand()%200);
pt.setY(qrand()%300);
pts[i]=pt;
}
p.drawPolyline(pts,10);
} 展开
1个回答
展开全部
QPixmap *m_pbgImage;
m_pbgImage = new QPixmap(strImage);
void MainWindow::paintEvent(QPaintEvent *e)
{
QMainWindow::paintEvent(e);
QPainter painter(this);
if (m_pbgImage)
{
painter.drawPixmap(0, 0, this->width (), this->height (), *m_pbgImage);
}
}
////类似这样?
m_pbgImage = new QPixmap(strImage);
void MainWindow::paintEvent(QPaintEvent *e)
{
QMainWindow::paintEvent(e);
QPainter painter(this);
if (m_pbgImage)
{
painter.drawPixmap(0, 0, this->width (), this->height (), *m_pbgImage);
}
}
////类似这样?
追问
刚接触QT……看不懂……能稍微详细一点吗?
追答
你只是想画一张图片么?
你在头文件:.h
QPixmap *m_pbgImage;
然后在MainWindow构造函数里,
QString strImage = "C:\aaa.png"; //图片路径
m_pbgImage = new QPixmap(strImage);//new
然后在刷新函数
void MainWindow::paintEvent(QPaintEvent *e)
{
QMainWindow::paintEvent(e);
QPainter painter(this);
if (m_pbgImage)
{
painter.drawPixmap(0, 0, this->width (), this->height (), *m_pbgImage);
//参数1,从X坐标0像素开始
//参数2,从Y坐标0像素开始
//3,表示你要填充区域的宽度
//4,表示填充高度
//5,m_pbgImage,表示填充的图片对象
//就是把一张图片刷到一块矩形区域
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询