QT的sprintf重写
QString MainWindow::sprintf(const char *cformat, ...)
{
va_list ap;
va_start(ap, cformat);
return QString::vasprintf(cformat, ap);
}
打印:
qDebug() << sprintf("%d", 12);
qt下内容按界面的缩放而缩放(不改变字体大小)
GraphicsView::GraphicsView(QWidget *parent)
: QGraphicsView(parent)
{
QGraphicsScene *scene = new QGraphicsScene(this);
//
QGraphicsProxyWidget *backItem = new QGraphicsProxyWidget;
MainWindow *widget = new MainWindow;
backItem->setWidget(widget);
backItem->setFocus();
//backItem->setCacheMode(QGraphicsItem::ItemCoordinateCache);//注释后不会有锯齿
const QRectF r = backItem->rect();
backItem->setTransform(QTransform()
.translate(-r.width()/2, -r.height()/2));
//
scene->addItem(backItem);
//
setScene(scene);
setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
setMinimumSize(50, 50);
setViewportUpdateMode(FullViewportUpdate);
setCacheMode(CacheBackground);
setRenderHints(QPainter::Antialiasing
| QPainter::SmoothPixmapTransform
| QPainter::TextAntialiasing
);
}
void GraphicsView::resizeEvent(QResizeEvent *event)
{
QGraphicsView::resizeEvent(event);
fitInView(scene()->sceneRect(), Qt::KeepAspectRatio);
}
关于如何在fitInView中对graphicsview的边框做不显示处理