1QPushButton的使用,QLineEdit的使用,设置组件位置,布局(QHBoxLayout,QGridLayout)
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 } |
|
运行结果: |
1QPushButton的使用,QLineEdit的使用,设置组件位置,布局(QHBoxLayout,QGridLayout)的更多相关文章
- android动态设置组件LayoutParams
开发中经常用到动态设置组件的LayoutParams,之前开发遇到的问题如下: LinearLayout.LayoutParams params = new LinearLayout.LayoutPa ...
- 【Spring注解驱动开发】使用@Scope注解设置组件的作用域
写在前面 Spring容器中的组件默认是单例的,在Spring启动时就会实例化并初始化这些对象,将其放到Spring容器中,之后,每次获取对象时,直接从Spring容器中获取,而不再创建对象.如果每次 ...
- 第1组UI组件:布局管理器
1 布局管理的来源 为了让UI在不同的手机屏幕上都能运行良好----不同手机屏幕的分辨率/尺寸并不完全相同,如果让程序手动控制每个组件的大小.位置,会给编程带来巨大的麻烦.为了解决这个问题.andro ...
- 第13章 Swing程序组件----常用布局管理器
在Swing中,每个组件在容器中都有一个具体的位置和大小,而在容器中摆放各种组件时很难判断其具体位置和大小.布局管理器提供了Swing组件安排.展示在容器中的方法及基本的布局功能. Swing提供的常 ...
- Swing编程中为什么对Panel设置了位置后,它的lable位置也跟这变了呢?
总结: package com.da; //这里我不明白,我对每一个Panle里的按钮设置了位置BorderLayout.SOUTH.可是为什么Lable的位置和它一样同步设置了呢? //做一个界面 ...
- Android UI组件:布局管理器
为了更好的管理Android应用的用户界面中的组件,Android提供了布局管理器.通过使用布局管理器,Android应用的图形用户界面具有良好的平台无关性.通常,推荐使用布局管理器来管理组件的分布. ...
- Day12-微信小程序实战-交友小程序-优化“附近的人”页面与serach组件的布局和样式以及搜索历史记录和本地缓存*内附代码)
回顾/:我们已经实现了显示附近的人的功能了,可以多个人看到附近的人页面了 但是还是要进行优化有几个问题:1.我们用户选择了其他的自定义头像之后,在首页可以看到头像的变化,但是在附近的人中头像会变成报错 ...
- 使用C#模拟键盘输入、鼠标移动和点击、设置光标位置及控制应用程序的显示
1.模拟键盘输入(SendKeys) 功能:将一个或多个按键消息发送到活动窗口,就如同在键盘上进行输入一样. 语法:SendKeys.Send(string keys);SendKeys.SendWa ...
- java io流 创建文件、写入数据、设置输出位置
java io流 创建文件 写入数据 改变system.out.print的输出位置 //创建文件 //写入数据 //改变system.out.print的输出位置 import java.io.*; ...
随机推荐
- [SCOI2005]最大子矩阵
题目描述 这里有一个n*m的矩阵,请你选出其中k个子矩阵,使得这个k个子矩阵分值之和最大.注意:选出的k个子矩阵不能相互重叠. 输入输出格式 输入格式: 第一行为n,m,k(1≤n≤100,1≤m≤2 ...
- [ZJOI2006]物流运输 SPFA+DP
题目描述 物流公司要把一批货物从码头A运到码头B.由于货物量比较大,需要n天才能运完.货物运输过程中一般要转停好几个码头.物流公司通常会设计一条固定的运输路线,以便对整个运输过程实施严格的管理和跟踪. ...
- 棋盘 chess
Description 给出一张 n × n 的棋盘,格子有黑有白.现在要在棋盘上放棋子,要求: • 黑格子上不能有棋子 • 每行每列至多只有一枚棋子 你的任务是求出有多少种合法的摆放方案.答案模 1 ...
- python3 条件判断,循环,三元表达式
一. 条件判断 条件判断的关键字if elif else,具体规则如下: if condition_1: statement_block_1 elif condition_2: statement_b ...
- C++变量和基本类型——2.3.1引用
引用:为对象起了另外一个名字,通常将申明符写成&d的形式来定义引用类型,其中d是申明的变量名: int ival =1024; int &refVal=ival 一般在初始化变量时,初 ...
- EF 6.x、EF Core实现dynamic动态查询和EF Core实现多个上下文实例池你了解多少?
前言 很长一段时间没有写博客了,今天补上一篇吧,偶尔发现不太愿意写博客了,太耗费时间,不过还是在坚持当中,毕竟或许写出来的东西能帮到一些童鞋吧,接下来我们直奔主题.无论是在在EF 6.x还是EF Co ...
- centos7 支持中文显示
http://www.linuxidc.com/Linux/2017-07/145572.htm这篇文章比较全.我印证了一下,没有问题 centos7的与centos6有少许不同: 1.安装中文包: ...
- Go 完整实现版本比较 VersionCompare 函数
[转] http://www.syyong.com/Go/Go-implementation-version-comparison-VersionCompare-function.html Versi ...
- js原生获取元素的css属性
习惯了用jQuery的css()的方法获取元素的css属性,突然不用jquery了,当要获得元素的css时候,我瞬间停顿了一下,咦?咋获取元素的css值?比如获取元素的width.是这样么?docum ...
- MySQL my.cnf 配置文件注释
以下是my.cnf配置文件参数解释 [client] port = 3309socket = /home/longxiben ...