PDA

View Full Version : Confused QWidget and QDialog behavior



munna
24th November 2006, 13:45
Hi,

I'll try my best to explain things in details

Here is the code I tried




EvlDialog::EvlDialog(QWidget *parent) : QDialog(parent)
{
setModal(true);
setAttribute(Qt::WA_DeleteOnClose);

setFixedSize(400,120);
setAutoFillBackground(true);

//Let us make the edges curved
QRegion maskRegion(10,10,380,100);
maskRegion = maskRegion.unite(QRegion(0,10,10,100));//Left
maskRegion = maskRegion.unite(QRegion(390,10,10,100));//Right
maskRegion = maskRegion.unite(QRegion(10,0,380,10));//Top
maskRegion = maskRegion.unite(QRegion(10,110,380,10));//Bottom

maskRegion = maskRegion.unite(QRegion(0,0,20,20,QRegion::Ellips e));//Top-Left
maskRegion = maskRegion.unite(QRegion(380,0,20,20,QRegion::Elli pse));//Top-Right
maskRegion = maskRegion.unite(QRegion(0,100,20,20,QRegion::Elli pse));//Bottom-Left
maskRegion = maskRegion.unite(QRegion(380,100,20,20,QRegion::El lipse));//Bottom-Right
setMask(maskRegion);

registerButton = new QPushButton(tr("Enter registraion key"),this);
}



Result
1. No Title Bar (Widget is Frameless)
2. registerButton is clickable.




EvlDialog::EvlDialog(QWidget *parent) : QWidget(parent)
{
setWindowModality(Qt::WindowModal);
setAttribute(Qt::WA_DeleteOnClose);

setFixedSize(400,120);
setAutoFillBackground(true);

//Let us make the edges curved
QRegion maskRegion(10,10,380,100);
maskRegion = maskRegion.unite(QRegion(0,10,10,100));//Left
maskRegion = maskRegion.unite(QRegion(390,10,10,100));//Right
maskRegion = maskRegion.unite(QRegion(10,0,380,10));//Top
maskRegion = maskRegion.unite(QRegion(10,110,380,10));//Bottom

maskRegion = maskRegion.unite(QRegion(0,0,20,20,QRegion::Ellips e));//Top-Left
maskRegion = maskRegion.unite(QRegion(380,0,20,20,QRegion::Elli pse));//Top-Right
maskRegion = maskRegion.unite(QRegion(0,100,20,20,QRegion::Elli pse));//Bottom-Left
maskRegion = maskRegion.unite(QRegion(380,100,20,20,QRegion::El lipse));//Bottom-Right
setMask(maskRegion);

registerButton = new QPushButton(tr("Enter registraion key"),this);
}



Result

1. Widget is frameless
2. Button is not clickable. EvlDialog is behaving as if there is another widget on top which is modal.


Can someone please explain the reason for this kind of behavior.
Thanks a lot.

wysota
9th December 2006, 12:14
Did you try asking the Trolls about it? Or looking in the task-tracker? Maybe it is a bug?