Qt中的偏好GUI

Preference GUI in Qt

本文关键字:GUI Qt      更新时间:2023-10-16

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

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

这是我到目前为止写的-

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 );
    }
}

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

你可以在你的GUI中添加一个组合框或lineedit,并在相应小部件的on_click事件上更改Grid spacing变量

for exif its combo_box

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

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