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