小编Eli*_*545的帖子

在Qt中有效地绘制物理上准确的标尺

我有一个标尺类(称为Graduation),它使用方向来计算应绘制线的位置.像这样:

在此输入图像描述

当方向设置为Qt::Horizontal我做line_xpos = precendent_line_xpos + number.然后,如果方向是Qt::Vertical我添加到y位置.

我在下面有一些代码,这是我如何使用if...else和?:语句的一个例子:

/* std::vector<QLineF> m_lines; */

void Graduation::resizeEvent(QResizeEvent *event)
{   
    qreal newLength = (m_orientation == Qt::Horizontal)
        ? event->size().width()
        : event->size().height();
    qreal oldLength = (m_orientation == Qt::Horizontal)
        ? event->oldSize().width()
        : event->oldSize().height();

    if(newLength != oldLength) {
        if(newLength < oldLength) { /* Delete lines */
            int count = m_lines.size();
            if(count == 0)
                return;

            if(m_orientation == Qt::Horizontal) {
                while(m_lines[count-1].x1() > newLength) {
                    --count;
                }
            } else { …
Run Code Online (Sandbox Code Playgroud)

c++ qt

5
推荐指数
1
解决办法
2420
查看次数

标签 统计

c++ ×1

qt ×1