我有一个标尺类(称为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)