标签:style blog http io ar color os 使用 sp
1.新建一个空Qt项目
2 新建一个新的文件(右击项目à添加新文件)
3 配置pro文件属性
SOURCES += \ main.cpp QT += widgets gui |
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 <QApplication>
/*窗口类*/ #include <QWidget> #include <QCompleter> #include <QLineEdit>
int main(int argc,char *argv[]) { QApplication app(argc,argv);
/*构造一个窗口*/ 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" << "998"); completer.setFilterMode(Qt::MatchContains); edit.setCompleter(&completer);
//显示窗口 w.show();
/*QT对C++的拓展 QT对C++的拓展 std::bind std::function QObject::connect(&button, SIGNAL(clicked()), &w, SLOT(close())); */
w.setWindowTitle("Hello World");
/*在exec中有一个消息循环*/ return app.exec(); } |
运行结果:
|
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 <QApplication>
/*窗口类*/ #include <QWidget>
/*按钮*/ #include <QPushButton> #include <QHBoxLayout>
int main(int argc,char *argv[]) { QApplication app(argc,argv);
/*构造一个窗口*/ QWidget *window = new QWidget;
/* 按钮也是个窗口 */ //QPushButton button; //button.setText("Button"); /* 窗口对象的父子关系,影响显示位置 */ /* 没有父窗口的窗口,我们称之为主窗口 */ QHBoxLayout *layout = new QHBoxLayout;
QPushButton *button1 = new QPushButton("One"); QPushButton *button2 = new QPushButton("Two"); QPushButton *button3 = new QPushButton("Three"); QPushButton *button4 = new QPushButton("Four"); QPushButton *button5 = new QPushButton("Five");
//弹簧,可以控制组件的显示位置 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 app.exec(); } |
运行结果:
|
8 QGridLayout 表格布局
/*应用程序抽象类*/ #include <QApplication>
/*窗口类*/ #include <QWidget>
/*按钮*/ #include <QPushButton> #include <QLineEdit> #include <QGridLayout>
int main(int argc,char *argv[]) { QApplication app(argc,argv);
/*构造一个窗口*/ QWidget *window = new QWidget; /*按钮也是一个窗口*/ QPushButton button; button.setText("Button"); button.show();
QLineEdit edit; edit.setParent(window);
//表格布局 QGridLayout *layout = new 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 QPushButton("1,0"),2,1); layout->addWidget(new QPushButton("1,1"),2,2);
//void addWidget(QWidget *, int row, int column, // int rowSpan, int columnSpan, Qt::Alignment = 0); //下面的参数表示第3行,第2列,占1行,合并2列 layout->addWidget(new QPushButton("aaa"),3,1,1,2);
window->setLayout(layout); window->show();
return app.exec(); } |
运行结果:
|
9 模拟并编写一个登录窗口
/*应用程序抽象类*/ #include <QApplication>
/*窗口类*/ #include <QWidget>
/*按钮*/ #include <QPushButton> #include <QLineEdit> #include <QLabel> #include <QGridLayout>
int main(int argc,char *argv[]) { QApplication app(argc,argv);
/*构造一个窗口*/ QWidget *window = new QWidget;
QGridLayout layout; QLineEdit* password; layout.setColumnStretch(3, 1); layout.setRowStretch(4, 1); layout.setColumnStretch(0, 1); layout.setRowStretch(0, 1);
layout.addWidget(new QLabel("Username:"), 1, 1); layout.addWidget(new QLineEdit(), 1, 2); layout.addWidget(new QLabel("Password:"), 2, 1); layout.addWidget(password = new QLineEdit(), 2, 2);
QHBoxLayout* hBox; //表示在第三行,占用2列 layout.addLayout(hBox = new QHBoxLayout, 3, 2); //加一个弹簧,让它向右偏移 hBox->addStretch(1); hBox->addWidget(new QPushButton("Login"));
window->setLayout(&layout); window->show();
return app.exec(); } |
运行结果:
|
1QPushButton的使用,QLineEdit的使用,设置组件位置,布局(QHBoxLayout,QGridLayout)
标签:style blog http io ar color os 使用 sp
原文地址:http://blog.csdn.net/tototuzuoquan/article/details/41897889