这是一个简单的Qt C++程序,用于创建GUI。我是一名学生,对C++不如对Java熟悉。在下面的代码中,有一个名为
*window
的QWidget
类的窗口对象引用,该类在代码开头没有包含。据我所知,所有包含的小部件都在QWidget(QSlider & QSpinBox)下面。QWidget的基类是什么(如果在QObject和QWidget之间有一个基类)?为什么可以创建QWidget对象而不包括它?为什么那个QWidget基类的整个对象显示为窗口,而其他小部件类则位于其下方(请参见下面的图像)?#include <QApplication>
#include <QHBoxLayout>
#include <QSlider>
#include <QSpinBox>
int main(int argc, char *argv[]){
QApplication app(argc, argv);
QWidget *window = new QWidget;
window->setWindowTitle("select your age");
QSlider *slider = new QSlider(Qt::Horizontal);
QSpinBox *spin = new QSpinBox;
slider->setRange(0, 130);
spin->setRange(0, 130);
QObject::connect( spin, SIGNAL(valueChanged(int)), slider, SLOT(setValue(int)) );
QObject::connect( slider, SIGNAL(valueChanged(int)), spin, SLOT(setValue(int)) );
spin->setValue(30);
QHBoxLayout *layout = new QHBoxLayout;
layout->addWidget(spin);
layout->addWidget(slider);
window->setLayout(layout);
window->show();
return app.exec();
}