1、Qt5入門基礎

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

相關文章
相關標籤/搜索