1、建立一個Qt空項目
1.Qt Creator運行起來
2.點擊左上角文件菜單項,新建文件或項目(N)...Ctrl+N
3.選擇項目中的其它項目,空的Qt項目
4.輸入項目名稱和選擇建立路徑
5.完成app
2、新建項目中的.pro文件和.pro.usr文件介紹
1.後綴是pro文件是Qt的工程文件,這個文件須要咱們在後續給個加上兩個庫分別是widgets和gui,QT += widgets gui
2.後綴是usr文件是特定用戶文件ui
3、添加新的C++文件
1.右擊項目工程的文件夾,選擇添加新文件
2.選擇C++(C++ class、C++ Source File、C++ Header File)
3.輸入文件的名稱和選擇文件的路徑
4.完成對象
4、QApplication 類和 QWidget 類 、QPushButton 類
QApplication app(argc, argv); //QApplication是應用程序的抽象類,app是應用程序抽象類的對象
QWidget w; //QWidget是窗口類,構造出一個主窗口w
w.show(); //顯示窗口
QPushButton button; //QPushButton是按鈕類,按鈕也是一個窗口
button.setText("Button"); //設置按鈕上面的文本
button.setParent(&w); //創建窗口對象的父子關係,沒有父窗口的窗口,稱之爲主窗口
button.show();
//座標、大小設置
button.setGeometery(30, 30, 100, 30);
//信號和槽是QT的一種機制,是對C++的一種拓展,其目的是解耦
// 相似於 std::bind 和 std::function
QObject::connect(&button, SIGNAL(clicked()), &w, SLOT(close));
w.setWindowTitle("Hello World");
return app.exec(); //exec中有一個消息循環ci
5、QCompleter 類和 QLineEdit 類
QWidget w;
QLineEdit edit;
edit.show();
edit.setParent(&w);
//輸入密碼
edit.setEchoMode(QLineEdit::PasswordEchoOnEdit);
edit.text(); //獲取密碼
edit.setPlaceholderText("Please input text:"); //輸入提示
//輸入過濾匹配
QCompleter completer(QStringList() << "aab" << "123" << "985");
completer.setFilterMode(Qt::MatchContains);
edit.setCompleter(&completer);
//
w.show();
w.setWindowTitle("Hello World");
return app.exec();get
6、QHBoxLayout 類(QVBoxLayout相似)
QHBoxLayout layout;
layout.addStretch(1); //設置彈簧,係數爲1
layout.addWidget(new QPushButton(), 1); //水平上放置一個按鈕,係數也爲1
layout.addSpacing(50); //增長50px的間距
layout.addWidget(new QLineEdit(), 1);
layout.addStretch(1);input
7、QGridLayout 類
QGridLayout layout;
layout.setRowStretch(0, 1); //第0行加一個彈簧
layout.setColumnStretch(0, 1); //第0列加一個彈簧
layout.addWidget(new QPushButton(), 1, 1); //第1行,第1列加一個按鈕
layout.addWidget(new QLineEdit(), 1, 2); //第1行,第2列加一個單行編輯框
layout.addWidget(new QPushButton("2, 1"), 2, 1);
layout.addWidget(new QPushButton("2, 2"), 2, 2);
layout.addWidget(new QPushButton("第3行,第1列,佔1行,跨2列"), 3, 1, 1, 2);
layout.setRowStretch(4, 1); //第4行加一個彈簧
layout.setColumnStretch(3, 1); 第3列加一個彈簧it
8、Layout之間的嵌套
QGridLayout layout;
QLineEdit* passwd;
layout.setRowStretch(0, 1); //第0行加一個彈簧
layout.setColumnStretch(0, 1); //第0列加一個彈簧
layout.addWidget(new QLabel("UserName"), 1, 1);
layout.addWidget(new QLineEdit(), 1, 2);
layout.addWidget(new QLabel("Password"), 2, 1);
layout.addWidget(passwd = new QLineEdit(), 2, 2);
passwd->setEchoMode(QLineEdit::password);
QHBoxLayout* hBox; //將HBox嵌套在GridBox中
layout.addLayout(hBox = new QHBoxLayout, 3, 2);
hBox->addStretch(1);
hBox->addWidget(new QPushButton("Login"));io