Qt父窗口与子窗口摩擦的一些小毛病

一、通过继承QWidget用来作为子类使用,发现setStyleSheet不管事了~~~写以下几行解决

void FirstChild::paintEvent(QPaintEvent *e)
{
    QPainter painter(this);

    QStyleOption o;
    o.initFrom(this);
    style()->drawPrimitive(QStyle::PE_Widget,&o,&painter,this);
}

二、鼠标点击到子窗口上,希望无视子窗口,直接由父窗口来处理鼠标事件~~~加一句属性即可

setAttribute(Qt::WA_TransparentForMouseEvents);

三、父窗口中存在多个子窗口,希望某个子窗口显示在最前面或最后面~~~这些函数会帮到你

void QWidget::stackUnder(QWidget *w) 
//放在w后面,注意两个子窗口要是同级的 
//例如:a.stackUnder(b),b在前显示

[slot] void QWidget::raise() 
//提到最前显示

[slot] void QWidget::lower() 
//提到最后显示

 

上一篇:9.QWidget 大小位置


下一篇:pyqt5 创建一个窗口