我有一些绘制网格的代码。我希望添加代码,根据用户输入更新网格的行间距。
理想情况下,我希望有一个输入框来输入网格间距,绘制按钮和隐藏按钮。
这是我到目前为止所拥有的 -
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 );
}
}
如何为用户创建一个输入框来修改网格间距?
答案 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。