QFrame 类族: QFrame类族是带有边框部件的基类,它的子类有Qlabel,还有QLCDNumber,QSplitter,还有QStackedWidget,QToolBox和QAbstractScrollrea。QAbstraccrallrea是所有带有滚动区域的部件类的抽象基类,对于所有的带有abstract的抽象类是不能直接使用的,但是可以通过继承实现自己的类,或者使用它提供的子类。 QFeame类有个边界框架,QFrame的主要功能是用来实现不同的边框效果,效果是由形状和阴影组成的。 QFrame 的属性:frameShape,frameShadow,lineWidth,midLineWidth. QFrame 类的子类都有这些个边框设置的功能,分别介绍它的子类独有的属性: 1.Qlabel Qlabel 用来显示文本或者图片,可以设置其对其方式的属性:alignment,水平的改为AlignHCenter,垂直的改为AlignVCenter。 wordWrap属性可以实现自动换行。 设置图片:label->setPixmap(QPixmap("../xx.jpg")); 设置gif图片: #include <QMovie> movie = new QMovie("guaniu.gif"); label->setMovie(movie); movie->start(); setMovie:Sets the label contents to movie. Any previous content is cleared. The label does NOT take ownership of the movie. 2.QLCDNumber number = new QLCDNumber(this); number->setDigitCount(8); number->smallDecimalPoint(); number->setMode(QLCDNumber::Dec); number->setSegmentStyle(QLCDNumber::Filled); number->display(123.456); 3.QStackedWidget QStackedWidget 提供了一个部件栈,可以有多个界面,每个界面拥有自己的部件,每次只能显示一个界面。但是QStackedWidget没有固有的让用户切换页面的意思, 对页面的切换是由QComboBox和QListWidget来切换的。 stackWiget = new QStackedWidget; stackWiget->addWidget(label1); stackWiget->addWidget(label2); stackWiget->addWidget(label3); 1>.用QComboBox切换: combobox = new QComboBox; combobox->addItem(tr("page1")); combobox->addItem(tr("page2")); combobox->addItem(tr("page3")); connect(combobox,SIGNAL(activated(int)),stackWiget,SLOT(setCurrentIndex(int))); 2>.用QlistWidget切换: listWidget = new QListWidget; listWidget->addItem(tr("page1")); listWidget->addItem(tr("page2")); listWidget->addItem(tr("page3")); connect(listWidget,SIGNAL(currentRowChanged(int)),stackWiget,SLOT(setCurrentIndex(int))); 4.QToolBox 层叠窗口部件 The QToolBox class provides a column of tabbed widget items. QToolBox 类可以提供一列被贴标签的组件元素。 //QToolBox toolbox = new QToolBox; toolbox->setFrameShape(QFrame::Box); QLabel *label4 = new QLabel(tr("默默"),this); QLabel *label5 = new QLabel(tr("花儿"),this); QLabel *label6 = new QLabel(tr("冒跑"),this); toolbox->insertItem(0,label4,tr("同学")); toolbox->insertItem(1,label5,tr("朋友")); toolbox->insertItem(2,label6,tr("陌生人"));
frame类族代码