1. 程式人生 > >Qt學習之如何用程式碼實現UI佈局及顯示

Qt學習之如何用程式碼實現UI佈局及顯示

本文以Qtableview為例進行說明。

Qtableview是一個表格類,可以使用這個類來設定表格,進行內容的顯示、增刪、查詢等等。

首先:正常建立一個Qt Widget Application專案。

mainwindow.h

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();
    void Qstandarditem();  //初始化函式

private slots:

private:
    Ui::MainWindow *ui;
    QStandardItemModel *itemModel;  //標準專案顯示模板
    QTableView *scoreview;  //表格類

mainwindow.cpp

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    this->resize(780,540);  //定義視窗大小
    scoreview=new QTableView(this);  //指標一定要例項化
    Qstandarditem();
}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::Qstandarditem()
{
    itemModel=new QStandardItemModel(3,2);  //建立一個3行2列的模板
    scoreview->setModel(itemModel);  //表格連線
    scoreview->resize(300,200);
    scoreview->move(100,100);  //設定表格左上角在主視窗中的位置
    //下面是設定表格格子的寬度和高度
    scoreview->setColumnWidth(0,100);
    scoreview->setColumnWidth(1,100);
    scoreview->setRowHeight(0,50);
    scoreview->setRowHeight(1,50);
    scoreview->setRowHeight(2,50);
}

重點:

    scoreview=new QTableView(this);

this指繼承自哪個類,有這個this則表格會顯示在主視窗上

若沒有這個this會出現以下兩個問題

①表格會和主視窗分開,move函式是指表格相對於桌面的位置

②表格不會直接顯示,需要加上show()函式(tableview是這個函式)。