Qt中的首选GUI

时间:2011-10-29 21:01:13

标签: c++ qt

我有一些绘制网格的代码。我希望添加代码,根据用户输入更新网格的行间距。

理想情况下,我希望有一个输入框来输入网格间距,绘制按钮和隐藏按钮。

这是我到目前为止所拥有的 -

void Lines::paintEvent(QPaintEvent *event)
{
    int lineSpacing(30),// line spacing in pixels
            numberOfLines;
    int HEIGHT(500),
            WIDTH(600);

    QPen pen(Qt::black, 2, Qt::SolidLine);

    QPainter painter(this);

    painter.setPen(pen);

    //Grid takes up at most a 400x400 area starting at (right 150, down 50) from upper left
    numberOfLines = 400/lineSpacing; //Round down grid size to fit in 400x400
    for(int i = 0; i<numberOfLines; i++){
        painter.drawLine(150, 50+i*lineSpacing, 150+(numberOfLines-1)*lineSpacing, 50+i*lineSpacing);
        painter.drawLine(150+i*lineSpacing, 50, 150+i*lineSpacing, 50+(numberOfLines-1)*lineSpacing );
    }
}

如何为用户创建一个输入框来修改网格间距?

1 个答案:

答案 0 :(得分:0)

您可以在GUI中添加组合框或lineedit,并在相应小部件的on_click事件上更改网格间距变量。

对于ex,如果它的combo_box

void Lines:::on_comboBox_currentIndexChanged(int index)
{
    lineSpacing=//change according to index variable as you wish
} 

并且还在构造函数中初始化linespacing和其他变量,而不是Paintevent。