Add a utility to style a QGridLayout with actual lines between elements

This commit is contained in:
baldurk
2016-11-24 19:47:04 +01:00
parent 0b9e11d1ec
commit 9ab11786b2
2 changed files with 39 additions and 0 deletions
+35
View File
@@ -24,6 +24,7 @@
#include "QRDUtils.h"
#include <QFileSystemModel>
#include <QGridLayout>
#include <QGuiApplication>
#include <QJsonDocument>
#include <QMenu>
@@ -443,3 +444,37 @@ bool QFileFilterModel::filterAcceptsRow(int source_row, const QModelIndex &sourc
return true;
}
void addGridLines(QGridLayout *grid)
{
for(int y = 0; y < grid->rowCount(); y++)
{
for(int x = 0; x < grid->columnCount(); x++)
{
QLayoutItem *item = grid->itemAtPosition(y, x);
QLayoutItem *east = grid->itemAtPosition(y, x + 1);
QLayoutItem *south = grid->itemAtPosition(y + 1, x);
if(item == NULL)
continue;
QWidget *w = item->widget();
if(w == NULL)
continue;
QString name = w->objectName();
QString style;
style += "border: solid black; border-top-width: 1px; border-left-width: 1px;";
if(!east || !east->widget())
style += "border-right-width: 1px;";
if(!south || !south->widget())
style += "border-bottom-width: 1px;";
w->setStyleSheet(style);
}
}
}
+4
View File
@@ -502,3 +502,7 @@ public:
return m_Size;
}
};
class QGridLayout;
void addGridLines(QGridLayout *grid);