我正在做一个小程序,里面有一堆面板。我希望这样,当我聚焦到一个面板,它画了一个薄的内联,以显示它是集中的。我让它和我所有的面板一起工作,除了我的树视图。
下面是一个使用QWidget的示例
void Test::paintEvent(QPaintEvent *event)
{
if(hasFocus())
{
QPainter painter(this);
QPen pen(Qt::blue);
pen.setWidth(1);
painter.setPen(pen);
painter.drawRect(geometry());
}
QWidget::paintEvent(event);
}当我在QPainter上使用QTreeWidget时,我会在控制台中得到以下调试消息:
QWidget::paintEngine:不应该再调用QPainter::begin:油漆设备返回引擎== 0,类型:1QPainter::setPen:画家不活动QPainter::drawRects:画家不活动所以我的问题是我不能在QPainter中使用QTreeWidget,所以我无法画出我的大纲。我能用别的方法吗?
发布于 2014-11-16 11:44:59
你根本不需要paintEvent。只使用样式表(setStyleSheet()方法):
QTreeWidget:focus{ border: 1px solid red}
QTreeWidget:!focus{}结果:

https://stackoverflow.com/questions/26956316
复制相似问题