一、手动编写界面代码
Qt编程中所使用的语言是面向对象的C++,在初学GUI编程时,如果仅仅依靠Qt Designer编辑器来通过拖拽一些widget来设计界面,则会很容易迷惑我们,并且很难弄懂其中所涉及的面向对象思想,也不容易弄懂Qt GUI的一个整体结构。所以在初学Qt GUI时可以通过手动编写界面代码来理解Qt 的GUI结构。
1、组合widget方法
顾名思义,组合widget方法是通过将一些控件进行组合,形成一个主窗口。在这种方法中,首先是从Qt的GUI类库中选择一个类作为主窗口的基类,如QDialog、QWidget、QMainWindow等类中选择。以QDialog类为例,以对话框类为主窗口,然后再添加需要的其它控件类成员,可以通过布局的方式将其它控件进行布局,再将最终的布局作为主窗口对话框的布局。下面以一个简单的对话框为例,相关代码如下:
#include <QtGui/QApplication>
#include <QHBoxLayout> //布局管理器
#include <QSlider>
#include <QSpinBox>
#include <QDialog>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QDialog *window = new QDialog;
window->setWindowTitle("Enter your Age");
QSpinBox *spinBox = new QSpinBox;
QSlider *slider = new QSlider(Qt::Horizontal); //水平
spinBox->setRange(0,130);
slider->setRange(0,130);
QObject::connect(spinBox,SIGNAL(valueChanged(int)),slider,SLOT(setValue(int)));
QObject::connect(slider,SIGNAL(valueChanged(int)),spinBox,SLOT(setValue(int)));
QHBoxLayout *layout = new QHBoxLayout;
layout->addWidget(spinBox);
layout->addWidget(slider);
window->setLayout(layout);
window->show();
return a.exec();
}
运行结果如下,一个对话框为主窗口,在其中添加一个slider和spinBox类,并将其进行横向布局,再将布局添加到主窗口中。