From Gossip@caterpillar

Qt3 Gossip: QGroupBox 類別

QGroupBox 提供一個框架、框架名稱與快捷鍵,屬於版面配置的元件,您可以將不同的QWidget集合在不同的QGroupBox中成為一個群組,框架的名稱可以置 左、置中或置右,您也可以將QGroupBox當作一個容器,當中還可以使用其它的版面配置方式,像是QVBox等等。

下面這個程式簡單的示範QGroupBox的使用,請編輯main.cpp:
  • main.cpp
#include <qapplication.h>
#include <qgroupbox.h>
#include <qlabel.h>
#include <qpushbutton.h>
#include <qlayout.h>

class GroupBox : public QWidget {
public:
GroupBox() {
hbox = new QHBoxLayout(this, 10, 10);
showGroupBox1(QGroupBox::Vertical, AlignLeft,
QFrame::WinPanel || QFrame::Raised, "GroupBox1");
showGroupBox2(QGroupBox::Horizontal, AlignCenter,
QFrame::Panel || QFrame::Sunken, "GroupBox2");
}

void showGroupBox1(Qt::Orientation o, int align, int style, char *text) {
QGroupBox *grpbox;

grpbox = new QGroupBox(3, o, text, this);
grpbox->setAlignment(align);
grpbox->setFrameStyle(style);
hbox->addWidget(grpbox);

new QLabel("Test Label", grpbox);
new QLabel("Test Label", grpbox);
new QPushButton("Test Button", grpbox);
}

void showGroupBox2(Qt::Orientation o, int align, int style, char *text) {
QGroupBox *grpbox;

grpbox = new QGroupBox(2, o, text, this);
grpbox->setAlignment(align);
grpbox->setFrameStyle(style);
hbox->addWidget(grpbox);

QLabel *label;

label = new QLabel("Test1", grpbox);
label->setFrameStyle(QFrame::Panel | QFrame::Plain);
label = new QLabel("Test2", grpbox);
label->setFrameStyle(QFrame::Panel | QFrame::Plain);
}

protected:
QHBoxLayout *hbox;
};

int main(int argc, char **argv) {
QApplication app(argc, argv);

GroupBox *gbox = new GroupBox();
app.setMainWidget(gbox);
gbox->show();

return app.exec();
}

由於只是一些版面配置的程式碼,我們就不多作說明了,直接來看看執行結果: