#include <QtGui> /* 只有控件可以包含其他的控件,布局控件可以为控件们提供 不同层次的分组。 我们在这个程序里使用了两个布局控件 queryLayout是一个横向布局控件,包含了一个标签和一个行编辑控件 mainLayout是一个纵向布局控件,包含了queryLayout和一个QTableView */ int main(int argc , char *argv[]) { QApplication app(argc, argv); QWidget window; QLabel *queryLabel = new QLabel(QApplication::translate("nestedlayouts","Query:")); QLineEdit *queryEdit = new QLineEdit(); QTableView *resultView = new QTableView(); QHBoxLayout *queryLayout = new QHBoxLayout(); queryLayout->addWidget(queryLabel); queryLayout->addWidget(queryEdit); QVBoxLayout *mainLayout = new QVBoxLayout(); /* 调用mainLayout的addLayout来放置queryLayout */ mainLayout->addLayout(queryLayout); mainLayout->addWidget(resultView); window.setLayout(mainLayout); // Set up the model and configure the view... /*QStandardItemModel类提供一个通用的模型,为存储数据*/ QStandardItemModel model; /*设置横向的表头,用标签*/ model.setHorizontalHeaderLabels( QStringList() <<QApplication::translate("nestedlayouts", "Name") <<QApplication::translate("nestedlayouts","Office")); QList<QStringList> rows = QList<QStringList>() << (QStringList() << "Verne Nilsen" << "123") << (QStringList() << "Carlos Tang" << "77") << (QStringList() << "Bronwyn Hawcroft" << "119") << (QStringList() << "Alessandro Hanssen" << "32") << (QStringList() << "Andrew John Bakken" << "54") << (QStringList() << "Vanessa Weatherley" << "85") << (QStringList() << "Rebecca Dickens" << "17") << (QStringList() << "David Bradley" << "42") << (QStringList() << "Knut Walters" << "25") << (QStringList() << "Andrea Jones" << "34"); foreach(QStringList row, rows) { QList<QStandardItem*> items; foreach(QString text, row) items.append(new QStandardItem(text)); model.appendRow(items); } /*以上我们遇到了2个很强大的东西:一个是Qlist<>,另一个是QStringList(),这里略过,解释另开一章*/ resultView->setModel(&model); resultView->verticalHeader()->hide(); resultView->horizontalHeader()->setStretchLastSection(true); window.setWindowTitle( QApplication::translate("nestedlayouts", "Nested layouts") ); window.show(); return app.exec(); }
QT菜鸟入门第一弹:简单的窗口
内容版权声明:除非注明,否则皆为本站原创文章。