PopupMessage::PopupMessage(QWidget *parent, QWidget *anchor, int timeout) : OverlayWidget(parent, anchor), m_anchor(anchor), m_parent(parent), m_maskEffect(Slide), m_dissolveSize(0), m_dissolveDelta(-1), m_offset(0), m_counter(0), m_stage(1), m_timeout(timeout) { setFrameStyle(QFrame::StyledPanel); setWindowFlags(Qt::WX11BypassWM); setMinimumSize(360, 78); QPalette p = QToolTip::palette(); setPalette(p); setAutoFillBackground(true); QHBoxLayout *hbox; QLabel *label; QLabel *alabel; m_layout = new QVBoxLayout(this); m_layout->setMargin(5); m_layout->setSpacing(5); hbox = new QHBoxLayout(); hbox->setParent(m_layout); hbox->setSpacing(12); m_layout->addLayout(hbox); // Setup the icon widget m_icon = new QLabel(this); hbox->addWidget(m_icon); // Setup the text widget m_text = new QLabel(this); m_text->setTextFormat(Qt::RichText); m_text->setWordWrap(true); m_text->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Preferred); m_text->setPalette(p); hbox->addWidget(m_text); hbox = new QHBoxLayout(); hbox->setParent(m_layout); hbox->addItem(new QSpacerItem(4, 4, QSizePolicy::Expanding, QSizePolicy::Preferred)); m_layout->addLayout(hbox); m_close = new KPushButton(KStandardGuiItem::close(), this); hbox->addWidget(m_close); connect(m_close, SIGNAL(clicked()), SLOT(close())); }
void tst_QLayout::warnIfWrongParent() { QWidget root; QHBoxLayout lay; lay.setParent(&root); QTest::ignoreMessage(QtWarningMsg, "QLayout::parentWidget: A layout can only have another layout as a parent."); QCOMPARE(lay.parentWidget(), static_cast<QWidget*>(0)); }