从QGraphicsGridLayout中的QWidgets中删除边框

时间:2012-05-25 21:46:18

标签: c++ qt qwidget qgraphicsscene

我目前有一个QGraphicsScene,我正在使用QGraphicsGridLayout。我试图在此网格布局上对齐QWidgets(QLabels和自定义图形QWidget),然后将其导出到QPrinter以进行pdf导出。

我遇到的问题是我在QLabel之间有这些灰色的分隔线,我似乎无法摆脱它。我已经尝试将布局中的设置间距设置为0,边距设置为0,QLabel调色板的所有不同属性等都无济于事。这是相关的代码:

主要课程:

QLabel lbl("some text");
lbl.setAutoFillBackground(true);
QPalette pal = lbl.palette();
pal.setColor(QPalette::Window, Qt::white);
lbl.setPalette(pal);
lbl.setFrameStyle(QFrame::NoFrame);
reportlayout->addWidget(&lbl);
reportlayout->generatePDF(reportfilename);

reportlayout class:

gridlayout->setContentsMargins(0,0,0,0);
gridlayout->setSpacing(0);

QGraphicsWidget* page = new QGraphicsWidget();
page->setLayout(gridlayout);
scene->addItem(page);
printer->setOutputFileName(filename);
painter->begin(printer);
scene->render(painter);
painter->end();

我感觉这是布局这样做,因为线条位于网格中的单元格之间 - 但布局没有任何颜色属性,我找不到任何与分隔线相关的东西。

非常感谢!

1 个答案:

答案 0 :(得分:0)

你试过样式表吗?

例如,

setStylesheet("QLabel { border:0px solid black; }");

您必须调查所有可能的选择器,直到找到哪一个引入边界。