QtDesigner這個工具用來設計界面比較方便,如果使用之,則比用純代碼寫要容易入手,但是有的時候用代碼來寫界面可以達到靈活的設計,所以也需要掌握之。
Qt中的布局有垂直布局,水平布局,這2種布局用法一模一樣,在android中這種布局叫做叫做線性布局,我這里也暫這么叫着;另外1種為網格布局,即縱橫交錯;最后1種叫做form布局.下面簡單介紹下用純Qt C++語言進行垂直水平布局和網格布局。
首先來看布局:
效果如下:
cpp代碼和注釋如下:
#include <QApplication> #include <QPushButton> #include <QHBoxLayout>//水平布局的庫 #include <QVBoxLayout>//垂直布局的庫 int main( int argc, char *argv[]) { QApplication app(argc, argv); QWidget *window = new QWidget;//創建主窗口 //創建3個pushbutton按鈕 QPushButton *btn1 = new QPushButton("one"); QPushButton *btn2 = new QPushButton("two"); QPushButton *btn3 = new QPushButton("three"); //創建一個垂直布局,並將三個pushbutton放入其中 QHBoxLayout *hlayout = new QHBoxLayout; hlayout->addWidget(btn1); hlayout->addWidget(btn2); hlayout->addWidget(btn3); //將垂直布局放入主窗口中並顯示 window->setLayout(hlayout); window->show(); return app.exec();//程序一直在這個地方等待,循環。 }
然后看看網格布局,效果如下:
對應的cpp代碼和注釋如下:
//網格布局 #include <QApplication> #include <QtGui> #include <QtCore> int main( int argc, char *argv[]) { QApplication app(argc, argv); QWidget *window = new QWidget;//創建主窗口 window->setWindowTitle("Grid layout");//設置窗口名字 //創建網格布局 QGridLayout *grid_layout = new QGridLayout; //創建各種需要顯示的控件 QLabel *label_name = new QLabel("Name:"); QLabel *label_id = new QLabel("Student ID:"); QLineEdit *edit_name = new QLineEdit; QLineEdit *edit_id = new QLineEdit; QPushButton *button_ok = new QPushButton("ok"); //將需要顯示的控件都加入到網格布局中,注意其參數代表的含義 grid_layout->addWidget(label_name, 0, 0);//表示放在第0行第0列的位置上 grid_layout->addWidget(label_id, 1, 0); grid_layout->addWidget(edit_name, 0, 1); grid_layout->addWidget(edit_id, 1, 1); grid_layout->addWidget(button_ok, 2, 0, 1, 2);//最后2個參數表示其體積所占的行數和列數 //將布局文件加載到窗口中並顯示出來 window->setLayout(grid_layout); window->show(); return app.exec();//程序一直在這個地方等待,循環。 }
總結:Qt中的布局和android的布局類似,但是感覺用代碼寫起來Qt沒有android方便,而用圖像化操作的話Qt又要方便些,各有所長吧。