Программирование на C++ с использованием библиотеки Qt4



         

Листинг 9. Перерасчёт геометрии в методе resizeEvent (файл examples-qt/03/03.cpp)


1 // Перерасчёт геометрии всех элементов при изменении размеров окна 2 3 #include "03.h" 4 5 MyDialog::MyDialog() { 6 7 QTextCodec *codec = QTextCodec::codecForName("CP1251"); 8 QTextCodec::setCodecForTr(codec); 9 10 lb = new QLabel(tr("Метка:"), this); 11 12 le = new QLineEdit(tr("Строка"), this); 13 14 cb = new QComboBox(this); 15 cb->addItem(tr("Первый")); 16 cb->addItem(tr("Второй")); 17 cb->addItem(tr("Третий")); 18 cb->setCurrentIndex(2); 19 cb->setEditable(true); 20 cb->setInsertPolicy(QComboBox::InsertAtBottom); 21 22 sb = new QSpinBox(this); 23 sb->setValue(5); 24 25 chb = new QCheckBox(tr("Пометка"), this); 26 chb->setCheckState(Qt::Checked); 27 28 dsb = new QDoubleSpinBox(this); 29 dsb->setMaximum(200.0); 30 dsb->setDecimals(2); 31 dsb->setSingleStep(0.25); 32 dsb->setValue(100.25); 33 34 dte = new QDateTimeEdit( 35 QDateTime(QDate(2007, 2, 5), QTime(13, 35, 55, 10)), 36 this); 37 38 gb = new QGroupBox(tr("Выбрать одно из трёх:"), this); 39 40 rb1 = new QRadioButton(tr("Один"), gb); 41 42 rb2 = new QRadioButton(tr("Два"), gb); 43 44 rb3 = new QRadioButton(tr("Три"), gb); 45 46 rb2->setChecked(true); 47 48 btn1 = new QPushButton(tr("Сохранить"), this); 49 50 btn2 = new QPushButton(tr("Отменить"), this); 51 52 setMinimumSize(160, 205); 53 } 54 55 void MyDialog::resizeEvent(QResizeEvent* /* event */ ) { 56 int dw = width() - minimumWidth(); 57 int dh = height() - minimumHeight(); 58 59 lb->setGeometry(5, 6, 45, 24); 60 le->setGeometry(55, 6, 100+dw, 24); 61 62 cb->setGeometry(5, 36, 80+dw*2/3, 24); 63 sb->setGeometry(95+dw*2/3, 36, 60+dw/3, 24); 64 65 chb->setGeometry(5, 65, 70, 24); 66 dsb->setGeometry(95, 65, 60+dw, 24); 67 68 dte->setGeometry(5, 95, 150+dw, 24); 69 70 gb->setGeometry(5, 120, 150+dw, 40); 71 rb1->setGeometry(5, 15, 45+dw/3, 24); 72 rb2->setGeometry(55+dw/3, 15, 45+dw/3, 24); 73 rb3->setGeometry(105+dw*2/3, 15, 45+dw/3, 24); 74 75 btn1->setGeometry(5+dw/4, 170+dh, 70+dw/4, 29); 76 btn2->setGeometry(85+dw/2, 170+dh, 70+dw/4, 29); 77 } 78 79 int main(int argc, char *argv[]) { 80 81 QApplication app(argc, argv); 82 83 MyDialog *dlg = new MyDialog(); 84 dlg->show(); 85 86 return app.exec(); 87 }




Содержание  Назад  Вперед