不积跬步,无以致千里;不积小流,无以成江河。
每天一记,不在乎多少;每天一结,重在勤思考。
写写代码,轻松又愉快;写写文章,总结每一天。
1、图片保持横纵比例进行缩放
2、去除窗口部件的系统焦点边框
1、图片保持横纵比例进行缩放
虽然Qt提供了三种参数进行缩放,但是仍然会有各种问题。
pixmap.scaled(this->size(imageSize), Qt::AspectRatioMode);
根据控件自身大小进行缩放,比例会失调。下面是默认Qt::IgnoreAspectRatio,使用Qt::KeepAspectRatio参数可以保证长度大于宽度的图片放缩正常;反之,显示效果也会比例失调。更别说Qt::KeepAspectRatioByExpanding参数会尽量放大图片,会导致图片显示不全,所以使用上述代码可以解决此问题。
2、去除窗口部件的系统焦点边框
使用下面代码去除窗口部件的系统焦点边框;
class MyProxyStyle : public QProxyStyle
{
public:
virtual void drawPrimitive(PrimitiveElement element, const QStyleOption * option,
QPainter * painter, const QWidget * widget = 0) const
{
if (PE_FrameFocusRect == element)
{
//这里不做任何操作,Qt默认是绘制矩形虚线框
}
else
{
QProxyStyle::drawPrimitive(element, option, painter, widget);
}
}
};
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
qApp->setStyle(new MyProxyStyle);
MainWindow w;
w.show();
return a.exec();
}
领取专属 10元无门槛券
私享最新 技术干货