qt控件被遮住的問題


我在QDialog上定義了兩個控件,一個QPushButton,一個QLabel,用setGeometry給它們設置好位置,然后我定義一個槽與QPushButton對象的click()信號連接,按一下QPushButton,將高度放大,然后發現它會被下面的QLabel遮住,除非將new QLabel 放在new QPushButton之前,請問下怎么解決這個問題啊???

class CMyDialog : public QDialog
{
    Q_OBJECT
public:
    CMyDialog(QWidget *parent);
private slots:
    void ResizeFun();
private:
    QPushButton *btn;
    QLabel *lab;
}

CMyDialog:CMyDialog(QWidget *parent)
    :QDialog(parent)
{
    btn = new QPushButton(this);
    lab = new QLabel(this);
    btn->setGeometry(0, 0, 100, 50);
    lab->setGeometry(0, 70, 100, 50);
    connect(btn, SIGNAL(clicked()), this, SLOT(ResizeFun()));
}

void CMyDialog::ResizeFun()
{
    btn->resize(btn->geometry().width(), btn->geometry(),height()*2);
}

3 个解决方案

#1


打開QWidget的手冊,看  stackUnder() , raise() ,lower()

#2


Raises this widget to the top of the parent widget's stack.

After this call the widget will be visually in front of any overlapping sibling widgets.

Note: When using activateWindow(), you can call this function to ensure that the window is stacked on top.

See also lower() and stackUnder().

想顯示誰就調用誰的raise

#3


引用 1 樓 dbzhang800 的回復:
打開QWidget的手冊,看  stackUnder() , raise() ,lower()

謝謝啦~用了raise就可以了~看來還是得仔細看手冊呀~

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2020 ITdaan.com