【目的】
- 練習QGrid用法。 基本使用方式
void addWidget ( QWidget * widget, int row, int column, Qt::Alignment alignment = 0 ) void addWidget ( QWidget * widget, int fromRow, int fromColumn, int rowSpan, int columnSpan, Qt::Alignment alignment = 0 )
- 練習如何以 sprintf 來指定 Qstring 內容。例如
str.sprintf("Row Col<B>(%d,%d)</B>", i, j);
- 由於我常常會忘記那個方向是Row/Column,順便用這個範例來練習。
【程式】
#include <QApplication> #include <QWidget> #include <QGridLayout> #include <QLabel> int main(int argc, char *argv[]) { QApplication app(argc, argv); QWidget *window = new QWidget; window->setWindowTitle("QGridLayout Example"); window->resize(250, 100); QGridLayout *layout = new QGridLayout; layout->setSpacing(2); layout->setMargin(2); for(int i = 0; i < 3; i++) { for(int j = 0; j < 3; j++) { QString str; str.sprintf("Row Col<B>(%d,%d)</B>", i, j); QLabel *label = new QLabel(str); label->setFrameStyle(QFrame::Panel + QFrame::Sunken); label->setMinimumSize(100, 0); label->setAlignment(Qt::AlignCenter); layout->addWidget(label, i, j); } } window->setLayout(layout); window->show(); return app.exec(); }
【結果】
【備註】
另外的Layout元件
- QHBoxLayout
- QVBoxLayout(垂直 Vertical)
【參考】
- Qt4 Gossip: QGridLayout 版面配置
http://caterpillar.onlyfun.net/Gossip/Qt4Gossip/QGridLayout.html - 網頁中的表格觀念(其實和html td 的 row/col 是一樣的)
http://dob.tnc.edu.tw/themes/old/showPage.php?s=14&t=3