1.新建一个空Qt项目
2
新建一个新的文件(右击项目à添加新文件)
3
配置pro文件属性
SOURCES main.cpp QT |
4
编写main.cpp
/*应用程序抽象类*/ #include <QApplication> /*窗口类*/ #include <QWidget> /*按钮*/ #include <QPushButton> int main(int argc,char *argv[]) { QApplication app(argc,argv); /*构造一个窗口*/ QWidget w; /*显示窗口*/ w.show(); /*按钮也是一个窗口*/ QPushButton button; button.setText("Button"); /*窗口对象的父子关系,影响显示位置*/ /*没有父窗口的窗口,我们称之为主窗口*/ button.setParent(&w); button.show(); /*QT对C++的拓展*/ //std::bind std::function QObject::connect(&button, SIGNAL(clicked()), &w, SLOT(close())); w.setWindowTitle("Hello World"); /*在exec中有一个消息循环*/ return app.exec(); } |
运行结果: |
5
新建一个空的QT项目:02LineEdit项目
如上,修改.pro文件
/*应用程序抽象类*/ #include /*窗口类*/ #include #include #include int { QApplication /*构造一个窗口*/ QWidget QLineEdit edit.show(); edit.setParent(&w); /*输入密码*/ /* edit.setEchoMode(QLineEdit::PasswordEchoOnEdit); edit.text(); edit.setPlaceholderText("Please */ QCompleter completer.setFilterMode(Qt::MatchContains); edit.setCompleter(&completer); //显示窗口 w.show(); /*QT对C++的拓展 QT对C++的拓展 std::bind QObject::connect(&button, */ w.setWindowTitle("Hello /*在exec中有一个消息循环*/ return } |
运行结果: |
6
设置组件的位置:
/*应用程序抽象类*/ #include <QApplication> /*窗口类*/ #include <QWidget> /*按钮*/ #include <QPushButton> int main(int argc,char *argv[]) { QApplication app(argc,argv); /*构造一个窗口*/ QWidget w; /*显示窗口*/ w.show(); /*按钮也是个窗口*/ QPushButton button; button.setText("Button"); /*窗口对象的父子关系,影响显示位置*/ /*没有父窗口的窗口,我们称之为主窗口*/ button.setParent(&w); button.show(); button.setGeometry(30,30,100,30); /* QT对C++的拓展 */ //std::bind std::function QObject::connect(&button,SIGNAL(clicked()),&w,SLOT(close())); w.setWindowTitle("Hello World"); /*在exec中有一个消息循环*/ return app.exec(); } |
运行结果: |
7
关于QT的布局
/*应用程序抽象类*/ #include /*窗口类*/ #include /*按钮*/ #include #include int { QApplication /*构造一个窗口*/ QWidget /* //QPushButton //button.setText("Button"); /* /* QHBoxLayout QPushButton QPushButton QPushButton QPushButton QPushButton //弹簧,可以控制组件的显示位置 layout->addStretch(1); layout->addWidget(button1,1); layout->addWidget(button2,1); layout->addWidget(button3,1); layout->addWidget(button4,1); layout->addWidget(button5,1); layout->addStretch(1); //通过下面的方法可以设置每个button的间隔距离 layout->setSpacing(50); window->setLayout(layout); window->show(); return } |
运行结果: |
8 QGridLayout
表格布局
/*应用程序抽象类*/ #include /*窗口类*/ #include /*按钮*/ #include #include #include int { QApplication /*构造一个窗口*/ QWidget /*按钮也是一个窗口*/ QPushButton button.setText("Button"); button.show(); QLineEdit edit.setParent(window); //表格布局 QGridLayout layout->setColumnStretch(3,1); layout->setRowStretch(4,1); layout->setColumnStretch(0,1); layout->setRowStretch(0,1); layout->addWidget(&button,1,1); layout->addWidget(&edit,1,2); layout->addWidget(new layout->addWidget(new //void // //行,第2列,占1行,合并2列 layout->addWidget(new window->setLayout(layout); window->show(); return } |
运行结果: |
9
模拟并编写一个登录窗口
/*应用程序抽象类*/ #include /*窗口类*/ #include /*按钮*/ #include #include #include #include int { QApplication /*构造一个窗口*/ QWidget QGridLayout QLineEdit* layout.setColumnStretch(3, layout.setRowStretch(4, layout.setColumnStretch(0, layout.setRowStretch(0, layout.addWidget(new layout.addWidget(new layout.addWidget(new layout.addWidget(password QHBoxLayout* //列 layout.addLayout(hBox //加一个弹簧,让它向右偏移 hBox->addStretch(1); hBox->addWidget(new window->setLayout(&layout); window->show(); return } |
运行结果: |