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

相关文章
相关标签/搜索