lcdrange.h文件: #ifndef __LCDRANGE_H__ #define __LCDRANGE_H__ #include <QWidget> // place your code here class LCDRange : public QWidget { public: LCDRange(QWidget *parent = 0); }; #endif // __LCDRANGE_H__ lcdrange.cpp文件: #include <QLCDNumber> #include <QSlider> #include <QVBoxLayout> #include "lcdrange.h" LCDRange::LCDRange(QWidget *parent) : QWidget(parent) { //LCD数字 QLCDNumber *lcd = new QLCDNumber(2); lcd->setSegmentStyle(QLCDNumber::Flat); //Slider QSlider *slider = new QSlider(Qt::Horizontal); slider->setRange(0, 99); slider->setValue(0); connect(slider, SIGNAL(valueChanged(int)),lcd, SLOT(display(int))); //布局 QVBoxLayout *layout = new QVBoxLayout; layout->addWidget(lcd); layout->addWidget(slider); setLayout(layout); } mywidget.h头文件: #ifndef __MYWIDGET_H__ #define __MYWIDGET_H__ #include <QWidget> class MyWidget : public QWidget { public: MyWidget(QWidget *parent = 0); }; #endif // __MYWIDGET_H__ mywidget.cpp类实现文件: #include <QApplication> #include <QPushButton> #include <QFont> #include <QGridLayout> #include "lcdrange.h" #include "mywidget.h" //MyWidget类实现部分 MyWidget::MyWidget(QWidget *parent) : QWidget(parent) { //创建quit按钮 QPushButton *quit = new QPushButton(tr("Quit")); quit->setFont(QFont("Times", 18, QFont::Bold)); connect(quit, SIGNAL(clicked()), qApp, SLOT(quit())); //网格布局 QGridLayout *grid = new QGridLayout; for (int row = 0; row < 3; ++row) { for (int column = 0; column < 3; ++column) { LCDRange *lcdRange = new LCDRange;//创建LCD+Slider grid->addWidget(lcdRange, row, column); } } QVBoxLayout *layout = new QVBoxLayout; layout->addWidget(quit); layout->addLayout(grid);//子布局 setLayout(layout);//设置布局 } 主程序文件main.cpp: //主程序文件 #include <QApplication> #include "mywidget.h" int main(int argc, char *argv[]) { QApplication app(argc, argv); //创建MyWidget的一个实例 MyWidget widget; widget.show(); return app.exec(); } 结果同上次的: 本文转自 xcf007 51CTO博客,原文链接:http://blog.51cto.com/xcf007/104035,如需转载请自行联系原作者