Qt5学习笔记(基础)
按钮
#include <QApplication> /*应用程序抽象类*/ #include <QWidget> //窗口类
#include <QPushButton> //按钮 int main(int argc, char* argv[])
{
QApplication app(argc, argv); //应用程序 QWidget w; //构造窗口对象 没有父窗口的窗口为主窗口
w.setWindowTitle("Hello World");
w.show(); //显示窗口 QPushButton button; //子窗口
button.setText("button"); //按钮也是窗口
button.setParent(&w); //将button放入w 窗口对象的父子关系 影响显示位置
button.show(); //先显示w再显示button,顺序不同显示效果不同 //Qt对C++的拓展 参数1为QObject子类对象, 前两个为信号,后两个为槽
QObject::connect(&button, SIGNAL(clicked()), &w, SLOT(close())); return app.exec(); //exec 有信息循环,死循环,窗口不会不见
} //控件是个窗口
声明一个窗口,声明一个按钮(按钮本身是一个窗口),设置窗口对象的父子关系(影响显示位置),信号槽设置(button)

出现名为“Hello World”的窗口,单击”button“按钮,窗口消失。
输入框
#include <QApplication> /*应用程序抽象类*/ #include <QWidget> //窗口类
#include <QCompleter>
#include <QLineEdit> //输入框 int main(int argc, char* argv[])
{
QApplication app(argc, argv); //应用程序 QWidget w; //构造窗口对象 没有父窗口的窗口为主窗口 QLineEdit edit; edit.setParent(&w); /*输入密码模式*/
edit.setEchoMode(QLineEdit::PasswordEchoOnEdit);
edit.setPlaceholderText("Please input text:");//输入提示
/*
QCompleter completer(QStringList () << "112358");//提示内容
completer.setFilterMode(Qt::MatchContains); //包含提示中的元素则显示提示
edit.setCompleter(&completer);
*/
w.show(); //显示窗口 edit.show(); w.setWindowTitle("Hello World"); return app.exec(); //exec 有信息循环,死循环,窗口不会不见
} //控件是个窗口
声明输入框,设置输入密码模式,并提供 输入提示。

输入密码前有提示,输入密码后隐藏密码。
注释18~19行代码,显示21~23行代码

输入时包含提示中的元素则显示提示
通过坐标设置按钮位置
#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放入w 窗口对象的父子关系 影响显示位置
button.show(); //先显示w再显示button,顺序不同显示效果不同 button.setGeometry(, , , );//在父窗口中的位置 //Qt对C++的拓展 参数1为QObject子类对象, 前两个为信号,后两个为槽
QObject::connect(&button, SIGNAL(clicked()), &w, SLOT(close())); w.setWindowTitle("Hello World"); return app.exec(); //exec 有信息循环,死循环,窗口不会不见
} //控件是个窗口
button.setGeometry(30, 30, 100, 30); 前两个参数为在父窗口的位置,后两个参数为按钮的长和宽。

通过网格设置位置
#include <QApplication> /*应用程序抽象类*/
#include <QWidget> //窗口类
#include <QPushButton> //按钮
#include <QLineEdit>
#include <QVBoxLayout> // V 竖直
#include <QHBoxLayout> // H 水平
#include <QGridLayout> //格子
#include <QLabel> int main(int argc, char* argv[])
{
QApplication app(argc, argv); //应用程序 QWidget w; //构造窗口对象 没有父窗口的窗口为主窗口 QGridLayout layout;
QLineEdit* password;
layout.setColumnStretch(,); //右 ,第三列,比重为1
layout.setRowStretch( ,); //有坐标,不需要考虑先后顺序 ,下 第4行,比重为1
layout.setColumnStretch(,); //左
layout.setRowStretch(,); //上 layout.addWidget(new QLabel("Username:"),,); //(1,1)位置
layout.addWidget(new QLineEdit(), , );
layout.addWidget(new QLabel("PassWord:"), , ); layout.addWidget(password = new QLineEdit(), , );
password->setEchoMode(QLineEdit::Password); /*将水平的 hBox 加到网格的 layout 中 */
QHBoxLayout* hBox; //水平
layout.addLayout(hBox = new QHBoxLayout, , ); /*将水平的 hBox 加到网格的 layout 中 */
hBox->addStretch();// 水平 左边先加弹簧
hBox->addWidget(new QPushButton("登录"));//再加button w.show(); //显示窗口
w.setLayout(&layout); //放在w.show()之前
w.setWindowTitle("Hello World"); return app.exec(); //exec 有信息循环,死循环,窗口不会不见
} //控件是个窗口
layout.setColumnStretch(3,1);表示在第3列放入一个比重为1的弹簧。
layout.setRowStretch(4 ,1); 第4行


Qt5学习笔记(基础)的更多相关文章
- jQuery学习笔记 - 基础知识扫盲入门篇
jQuery学习笔记 - 基础知识扫盲入门篇 2013-06-16 18:42 by 全新时代, 11 阅读, 0 评论, 收藏, 编辑 1.为什么要使用jQuery? 提供了强大的功能函数解决浏览器 ...
- Python学习笔记基础篇——总览
Python初识与简介[开篇] Python学习笔记——基础篇[第一周]——变量与赋值.用户交互.条件判断.循环控制.数据类型.文本操作 Python学习笔记——基础篇[第二周]——解释器.字符串.列 ...
- 数论算法 剩余系相关 学习笔记 (基础回顾,(ex)CRT,(ex)lucas,(ex)BSGS,原根与指标入门,高次剩余,Miller_Rabin+Pollard_Rho)
注:转载本文须标明出处. 原文链接https://www.cnblogs.com/zhouzhendong/p/Number-theory.html 数论算法 剩余系相关 学习笔记 (基础回顾,(ex ...
- 《python基础教程(第二版)》学习笔记 基础部分(第1章)
<python基础教程(第二版)>学习笔记 基础部分(第1章)python常用的IDE:Windows: IDLE(gui), Eclipse+PyDev; Python(command ...
- Qt5学习笔记(1)-环境配置(win+64bit+VS2013)
Qt5学习笔记(1)-环境配置 工欲善其事必先-不装-所以装软件 久不露面,赶紧打下酱油. 下载 地址:http://download.qt.io/ 这个小网页就可以下载到跟Qt有关的几乎所有大部分东 ...
- Java学习笔记——基础篇
Tips1:eclipse中会经常用到System.out.println方法,可以先输入syso,然后eclipse就会自动联想出这个语句了!! 学习笔记: *包.权限控制 1.包(package) ...
- Qt5学习笔记(消息基础)
#include "MyWidget.h" #include <QApplication> #include <QEvent> #include <Q ...
- iOS学习笔记——基础控件(上)
本篇简单罗列一下一些常用的UI控件以及它们特有的属性,事件等等.由于是笔记,相比起来不会太详细 UIView 所有UI控件都继承于这个UIView,它所拥有的属性必是所有控件都拥有,这些属性都是控件最 ...
- iOS开发学习笔记:基础篇
iOS开发需要一台Mac电脑.Xcode以及iOS SDK.因为苹果设备都具有自己封闭的环境,所以iOS程序的开发必须在Mac设备上完成(当然,黑苹果应该也是可以的,但就需要花很多的精力去折腾基础环境 ...
随机推荐
- 开发中常遇到的Python陷阱和注意点-乾颐堂
最近使用Python的过程中遇到了一些坑,例如用datetime.datetime.now()这个可变对象作为函数的默认参数,模块循环依赖等等. 在此记录一下,方便以后查询和补充. 避免可变对象作为默 ...
- composer install 时,提示:Package yiisoft/yii2-codeception is abandoned, you should avoid using it. Use codeception/codeception instead.的解决
由 SHUIJINGWAN · 2017/11/24 1.composer install 时,提示:Package yiisoft/yii2-codeception is abandoned, yo ...
- Socket-IO 系列(三)基于 NIO 的同步非阻塞式编程
Socket-IO 系列(三)基于 NIO 的同步非阻塞式编程 缓冲区(Buffer) 用于存储数据 通道(Channel) 用于传输数据 多路复用器(Selector) 用于轮询 Channel 状 ...
- 使用nmon来按频率采集数据
# nmon -s1 -c60 -f -m /home/nmon # ll /home/nmon/ total 15220 -rw-r--r-- 1 root root 23923 Oct 14 ...
- 2018.10.14 loj#6012. 「网络流 24 题」分配问题(费用流)
传送门 费用流水题. 依然是照着题意模拟建边就行了. 为了练板子又重新写了一遍费用流. 代码: #include<bits/stdc++.h> #define N 305 #define ...
- spring+hibernate 整合异常 Class 'org.apache.commons.dbcp.BasicDataSource' not found
解决方法 添加 commons-dbcp.jar和commons-pool.jar包
- 超全table功能Datatables使用的填坑之旅--1: 无法渲染表格数据: ajax调用了参数 : success
问题:Datatables: 无法渲染表格数据 原因:datatables的ajax 传了"success":function(){},导致无法渲染数据. ajax 删掉" ...
- 如何设置vim中tab键缩进---配置初始化设置
转载自:http://blog.51cto.com/xuding/1725376:加了一些补充说明 问题: Linux系统下,Tab键默认为8个字符,需呀将其修改为4个字符的方式使用 步骤: 1.在用 ...
- Java static说明
class Person{ String name;//成员变量,实例变量 static String country = "CN";//静态变量.类变量 public void ...
- 浅谈webuploader上传文件
官网:http://c7.gg/fw4sn 案例: 文件上传进度 // 文件上传过程中创建进度条实时显示. uploader.on( 'uploadProgress', function( file, ...