1QPushButton的使用,QLineEdit的使用,设置组件位置,布局(QHBoxLayout,QGridLayout)
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)相关推荐
- 【Flutter】Flutter 布局组件 ( FractionallySizedBox 组件 | Stack 布局组件 | Positioned 组件 )
文章目录 一.FractionallySizedBox 组件 二.Stack 布局组件 三.Positioned 组件 四. 完整代码示例 五. 相关资源 一.FractionallySizedBox ...
- java容器内setBounds()确定组件位置
setBounds(int x,int y,int width,int height)可以设置组件位置,但是要注意把容器的布局管理设置为null 即 容器对象.setLayout(null); 否则容 ...
- 如何在 CSS 中设置组件在浏览器屏幕水平垂直居中
如何在 CSS 中设置组件在浏览器屏幕水平垂直居中 在 CSS 中设置组件在浏览器屏幕水平垂直居中可分解为两个问题,一是设置组件在其父组件的水平垂直居中,二是让其父组件铺满整个屏幕. 对于让最 ...
- java实用教程——组件及事件处理——设置组件的位置(相对于窗口具体位置和布局)
1: 相对于窗口的具体位置 关键点: JButton组件添加到JPanel时,如果想自己位置,需要对JPanel进行如下设置,才能自定义按钮位置 需要将组件添加到画板上去,才可以设置组件的相对具体位置 ...
- 033-使用UIManager设置组件外观界面,适应不同操作系统
上一讲:032-JAVA窗体图形图像处理(Graphics绘图,五子棋游戏实战)_CSDN专家-赖老师(软件之家)的博客-CSDN博客 下一讲:034-用Swing组件综合应用(实现QQ登录与注册界面 ...
- vue 动态设置组件高度_高度动态的Vue明星评分组件
vue 动态设置组件高度 虚拟动态星级 (vue-dynamic-star-rating) A Highly Customizable, easy-to-use elegant stars ratin ...
- SketchUp教程:如何正确设置组件对象坐标轴
作者:TutorialsUp 今天为大家带来的是 SketchUp如何正确设置组件对象坐标轴 我们经常会忽略对象坐标轴的含义 特别是在放样过程中, 导致无法将其放置在正确的位置 作者将通过简短的5分钟 ...
- 【Spring注解驱动开发】使用@Scope注解设置组件的作用域
写在前面 Spring容器中的组件默认是单例的,在Spring启动时就会实例化并初始化这些对象,将其放到Spring容器中,之后,每次获取对象时,直接从Spring容器中获取,而不再创建对象.如果每次 ...
- 【Flutter】Animation 动画 ( Flutter 动画基本流程 | 创建动画控制器 | 创建动画 | 设置值监听器 | 设置状态监听器 | 布局中使用动画值 | 动画运行 )
文章目录 一.创建动画控制器 二.创建动画 三.设置值监听器 四.设置状态监听器 五.布局中使用动画值 六.动画运行 七.完整代码示例 八.相关资源 Flutter 动画基本流程 : ① 创建动画控制 ...
最新文章
- Centos7 Docker Compose部署mysql5.7
- 消费机器人今年爆发!四大品类瓜分百亿蛋糕
- 舵机弹跳机器人_这个小小的机器人外形呆萌 弹跳能力绝对比你好
- python的set结构
- 浙江省职业技能考试大纲计算机,浙江省高校计算机等级考试大纲
- Android ContentProvider支持跨进程数据共享与互斥、同步 杂谈
- day8 Java学习(面向对象.多态接口)
- 水经注叠加cad_如何下载等高线并在CAD中与卫星影像叠加
- UNIX 环境高级编程(八)—— fork 函数
- MySQL------存储过程的使用
- Mybatis if标签
- JAVA学生宿舍管理系统
- 信息系统项目管理师---第八章 项目质量管理
- java 读音_java怎么读?
- 如何写工作说明书(sow)
- java2048移动算法_2048游戏通关算法
- uniapp 图片上传
- 阿里天池大数据竞赛——口碑商家客流量预测 A2
- PwC普华永道——招聘
- 关于互联网用户的隐私保护
热门文章
- 2.Python算法之分治算法思想
- 机器学习(3.文本数据的特征抽取(第一种))
- Python可视化中Matplotlib绘图(2.设置范围、标签、标题、图例(详细参数))
- Java8 Lambda 表达式
- boost::statechart模块实现终止测试
- boost::safe_numerics模块实现混合类型产生令人惊讶的结果的测试程序
- boost::mp11::tuple_for_each相关用法的测试程序
- boost::geometry::dsv用法的测试程序
- boost::geometry::partition用法的测试程序
- boost::format模块异常处理的测试程序