1.numTicks = int(std::ceil(max / step) - std::floor(min / step));
ceil() floor() round() 都在math.h中。ceil()为向上取整,floor() 为向下取整,round()为四舍五入。
Math.ceil(0.60) -- 1 Math.ceil(0.48) -- 1
Math.floor(0.60) -- 0 Math.floor(0.48) -- 0
Math.round(0.60) -- 1 Math.round(0.48) -- 0
2. setFocusPolicy(Qt::StrongFocus);
此属性保存窗口小部件接受键盘焦点的方式。接受鼠标和键盘设置焦点。
3.
if (hasFocus())
{
QStyleOptionFocusRect option;
option.initFrom(this);//设置焦点
option.backgroundColor = palette().dark().color();//设置背景颜色
painter.drawPrimitive(QStyle::PE_FrameFocusRect, option);
}
QStyleOptionFocusRect类用于描述使用QStyle绘制焦点矩形的参数
4.本章使用的双缓冲绘图,
void Plotter::refreshPixmap()
{
pixmap = QPixmap(size());
pixmap.fill(Qt::black); // fill(const QPaintDevice*, const QPoint&) is deprecated, ignored on Qt 5.0.2
QPainter painter(&pixmap);
painter.initFrom(this);
drawGrid(&painter);
drawCurves(&painter);
update();
}
5.下面的连接是本人的代码和在网上下载的可以运行的qt5上的代码。
https://download.csdn.net/download/z307840528/10620083
6.使用命令行编译
.使用VS2013自带的cmd框使用命令行在windows下编译运行通过(本人环境Windows10(64位) + vs2013 + qt5.7.0)
1>进入vs安装目录找到C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\Tools\Shortcuts。
2>.先进入代码所在目录,然后使用命令编译。
qmake -project QT+=widgets
qmake ./Plotter.pro
nmake
3>看qmake 后是否有错误。有就修改,没有就可以发现在Plotter下面release文件夹下有个Plotter.exe
双击即可。
没有发现error