qt--setAttribute設置窗口屬性


 

    this->resize(500,400);
    this->setWindowTitle("主窗口");

    QLabel* label=new QLabel("標簽",this);

    label->setAttribute(Qt::WA_DeleteOnClose,true); //使控件在接受close關閉事件時,就刪除控件--釋放控件資源;指針還是存在的 //這種方法有個弊端:因為這個指針是沒有辦法自動設為NULL,會變為野指針

    label->close();

    label=new QLabel("AAA",this);

    label->show();

Qt::WA_QuitOnClose   表示當擁有該屬性的最后一個部件接受到QCloseEvent事件時,讓Qt終止應用程序。默認情況下,所有Qt::Window類型的部件都具有該屬性

    this->resize(500,400);
    this->setWindowTitle("主窗口");

    QLabel* label=new QLabel("標簽",this);

    label->setAttribute(Qt::WA_NoSystemBackground,true); //小部件沒有背景,即當小部件接收到繪制事件時,不會自動重新繪制背景--部件的背景透明
    label->setStyleSheet("background-color: rgb(255, 251, 100)");

 

 label->setAttribute(Qt::WA_TranslucentBackground,true); //小部件具有透明背景

 

 

    QPushButton* button=new QPushButton("按鈕",this);
    connect(button,SIGNAL(clicked()),this,SLOT(f()));
    button->setAttribute(Qt::WA_TransparentForMouseEvents,true); //禁用向小部件及其子部件傳遞鼠標事件 //設置后按鈕雖然沒有變灰,但是不會接受鼠標事件了

 

以下為其他幾種屬性
Qt::WA_PaintOutsidePaintEvent
一般QPainter只能在PaintEvent事件中使用,使用此flag可以使在paintEvent 之外的函數中使用。
Qt::WA_AcceptDrops    允許將拖放操作中的數據拖放到窗口小部件上(請參閱QWidget :: setAcceptDrops())。
Qt::WA_AlwaysShowToolTips    為非活動窗口啟用工具提示。
Qt::WA_Disabled    表示窗口小部件已禁用,即它不接收任何鼠標或鍵盤事件。還有一個getter函數QWidget :: isEnabled()。這由Qt內核設置/清除。
Qt::WA_DontShowOnScreen    表示窗口小部件已隱藏或不是可查看桌面的一部分。
Qt::WA_MouseTracking    表示窗口小部件已啟用鼠標跟蹤。請參閱QWidget :: mouseTracking。
Qt::WA_NoMouseReplay    用於彈出窗口小部件(popup)。指示彈出窗口小部件關閉時不應重播最近的鼠標按下事件。該標志由小部件的作者設置,並在每次小部件接收到新的鼠標事件時由Qt內核清除 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM