Changeset 937
- Timestamp:
- Aug 4, 2011, 1:14:33 AM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
tests/modal/modal.cpp
r935 r937 2 2 #include <QtGui> 3 3 4 class My Widget : public QWidget4 class MyWidget : public QWidget 5 5 { 6 7 6 8 public: 7 9 8 MyWidget(){} 9 virtual ~MyWidget() {} 10 MyMainWidget() : mTestNo (0), mCurWidget (0) 11 { 12 mTestNo = 4; 13 14 setWindowTitle ("Primary"); 15 16 mPB = new QPushButton ("Next Test", this); 17 connect (mPB, SIGNAL (clicked()), this, SLOT (nextTest())); 18 19 QVBoxLayout *layout = new QVBoxLayout(); 20 layout->addWidget (mPB); 21 setLayout (layout); 22 } 23 24 virtual ~MyMainWidget() 25 { 26 delete mCurWidget; 27 } 28 29 void test (QWidget *w, const QString &text) 30 { 31 w->setWindowTitle ("Secondary"); 32 33 QString newText = QString ( 34 "%1\n\n" 35 "parentWidget() is %2\n" 36 "className() is %3\n" 37 "isWindow() is %4\n" 38 "windowFlags() is 0x%5\n" 39 "windowModality() is %6") 40 .arg (text) 41 .arg (w->parentWidget() ? w->parentWidget()->metaObject() 42 ->className() 43 : "<none>") 44 .arg (w->metaObject()->className()) 45 .arg (w->isWindow()) 46 .arg (w->windowFlags(), 8, 16, QLatin1Char ('0')) 47 .arg (w->windowModality()); 48 49 if (w->inherits ("QMessageBox")) 50 { 51 static_cast <QMessageBox *> (w)->setText (newText); 52 } 53 else 54 { 55 QLabel *label = new QLabel (w); 56 label->setText (newText); 57 58 QVBoxLayout *layout = new QVBoxLayout(); 59 layout->addWidget (label); 60 w->setLayout (layout); 61 } 62 63 w->show(); 64 65 if (mCurWidget) 66 { 67 mCurWidget->close(); 68 delete mCurWidget; 69 } 70 71 mCurWidget = w; 72 } 73 74 public slots: 75 76 void nextTest() 77 { 78 switch (mTestNo) 79 { 80 case 0: 81 { 82 QWidget *w = new QWidget(); 83 test (w, 84 "QWidget().\n" 85 "Should have a taskbar entry.\n" 86 "Should not be always on top of parent.\n" 87 "Should not block parent."); 88 break; 89 } 90 case 1: 91 { 92 QWidget *w = new QWidget (this, Qt::Window); 93 test (w, 94 "QWidget (this, Qt::Window).\n" 95 "Should not have a taskbar entry.\n" 96 "Should be always on top of parent.\n" 97 "Should not block parent."); 98 break; 99 } 100 case 2: 101 { 102 QWidget *w = new QDialog(); 103 test (w, 104 "QDialog().\n" 105 "Should have a taskbar entry.\n" 106 "Should not be always on top of parent.\n" 107 "Should not block parent."); 108 break; 109 } 110 case 3: 111 { 112 QWidget *w = new QDialog (this); 113 test (w, 114 "QDialog(this).\n" 115 "Should not have a taskbar entry.\n" 116 "Should be always on top of parent.\n" 117 "Should not block parent."); 118 break; 119 } 120 case 4: 121 { 122 QWidget *w = new QMessageBox(); 123 test (w, 124 "QMessageBox().\n" 125 "Should have a taskbar entry.\n" 126 "Should be always on top of parent.\n" 127 "Should block parent."); 128 break; 129 } 130 case 5: 131 { 132 QWidget *w = new QMessageBox (this); 133 test (w, 134 "QMessageBox (this).\n" 135 "Should not have a taskbar entry.\n" 136 "Should be always on top of parent.\n" 137 "Should block parent."); 138 break; 139 } 140 case 6: 141 { 142 QWidget *w = new QWidget(); 143 w->setWindowModality (Qt::WindowModal); 144 test (w, 145 "QWidget() - WindowModal.\n" 146 "Should have a taskbar entry.\n" 147 "Should not be always on top of parent.\n" 148 "Should not block parent."); 149 break; 150 } 151 case 7: 152 { 153 QWidget *w = new QWidget (this, Qt::Window); 154 w->setWindowModality (Qt::WindowModal); 155 test (w, 156 "QWidget (this, Qt::Window) - WindowModal.\n" 157 "Should not have a taskbar entry.\n" 158 "Should be always on top of parent.\n" 159 "Should block parent."); 160 break; 161 } 162 case 8: 163 { 164 QWidget *w = new QWidget(0, Qt::Dialog); 165 w->setWindowModality (Qt::ApplicationModal); 166 test (w, 167 "QWidget() - ApplicationModal.\n" 168 "Should have a taskbar entry.\n" 169 "Should be always on top of parent.\n" 170 "Should block parent."); 171 break; 172 } 173 case 9: 174 { 175 QWidget *w = new QWidget (this, Qt::Window); 176 w->setWindowModality (Qt::ApplicationModal); 177 test (w, 178 "QWidget (this, Qt::Window) - ApplicationModal.\n" 179 "Should not have a taskbar entry.\n" 180 "Should be always on top of parent.\n" 181 "Should block parent."); 182 break; 183 } 184 default: 185 mPB->setText ("No More Tests"); 186 mPB->setEnabled (false); 187 return; 188 } 189 190 ++ mTestNo; 191 } 192 193 private: 194 195 int mTestNo; 196 QPushButton *mPB; 197 QWidget *mCurWidget; 10 198 }; 11 199 … … 15 203 app.setQuitOnLastWindowClosed (true); 16 204 17 MyWidget widget; 18 widget.resize (100, 100); 19 widget.show(); 20 21 QMessageBox *mb = 22 new QMessageBox (QMessageBox::Warning, "Title", "text", 23 QMessageBox::NoButton, 24 NULL, //&widget, 25 Qt::Dialog); 26 mb->show(); 205 MyMainWidget mainWidget; 206 mainWidget.resize (100, 100); 207 mainWidget.show(); 27 208 28 209 return app.exec(); 29 210 } 211 212
Note:
See TracChangeset
for help on using the changeset viewer.