QT学习记录(1)-控件 QPushButton, QLineEdit, QLabel, QHBoxLayout, QGridLayout
1.一个简单的QT程序(QPushButton)
/* 应用程序抽象类 */
#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(, , , ); /* QT对C++的拓展 */
// std::bind std::function
QObject::connect(&button, SIGNAL(clicked()), &w, SLOT(close())); w.setWindowTitle("Hello World"); /*在exec中有一个消息循环*/
return app.exec();
}
PS:需要在.pro文件中声明
SOURCES += \
qgridlayoutdemo.cpp QT += gui widgets
才能正常运行。
运行结果:
2.QLineEdit, QLabel, QGridLayout, QHBoxLayout的用法
#include <QApplication>
#include <QWidget>
#include <QGridLayout>
#include <QLabel>
#include <QLineEdit>
#include <QTextEdit>
#include <QHBoxLayout>
#include <QPushButton> int main(int argc, char *argv[])
{ QApplication app(argc, argv);
QWidget w; QGridLayout *layout = new QGridLayout;
layout->setColumnStretch(, );
layout->setColumnStretch(, );
layout->setColumnStretch(, );
layout->setColumnStretch(, );
layout->setColumnStretch(, ); QLabel *lb_first_name = new QLabel("First Name:");
QLineEdit *ed_first_name = new QLineEdit;
QLabel *lb_last_name = new QLabel("Last Name:");
QLineEdit *et_last_name = new QLineEdit;
QLabel *lb_sex = new QLabel("Sex:");
QLineEdit *et_sex = new QLineEdit;
QLabel *lb_birthday = new QLabel("Birthday:");
QLineEdit *et_birthday = new QLineEdit;
QLabel *lb_address = new QLabel("Address:");
QTextEdit *te_edit = new QTextEdit; layout->addWidget(lb_first_name, , );
layout->addWidget(ed_first_name, , );
layout->addWidget(lb_last_name, , );
layout->addWidget(et_last_name, , );
layout->addWidget(lb_sex, , );
layout->addWidget(et_sex, , );
layout->addWidget(lb_birthday, , );
layout->addWidget(et_birthday, , );
layout->addWidget(lb_address, , );
layout->addWidget(te_edit, , , , ); // QGridLayout layout;
// QLineEdit *pwd; // layout.setColumnStretch(0, 1);
// layout.setColumnStretch(3, 1);
// layout.setRowStretch(0, 1);
// layout.setRowStretch(4, 1); // layout.addWidget(new QLabel("UserName:"), 1, 1);
// layout.addWidget(new QLineEdit(), 1, 2);
// layout.addWidget(new QLabel("Password"), 2, 1);
// layout.addWidget(pwd = new QLineEdit(), 2, 2); // QHBoxLayout *hBoxLayout;
// layout.addLayout(hBoxLayout = new QHBoxLayout(), 3, 2);
// hBoxLayout->addStretch(1);
// hBoxLayout->addWidget(new QPushButton("Login")); // pwd->setEchoMode(QLineEdit::Password); w.setLayout(layout);
w.setWindowTitle("QGridLayoutDemo");
w.show(); return app.exec();
}
运行结果:
QT学习记录(1)-控件 QPushButton, QLineEdit, QLabel, QHBoxLayout, QGridLayout的更多相关文章
- QT学习记录之控件布局
作者:朱金灿 来源:http://blog.csdn.net/clever101 想到控件布局就会想到Windows编程中要实现对话框上的控件的合理布局是一件多么艰难的事情.对此QT提出了一个很方便的 ...
- asp.net学习之Repeater控件
asp.net学习之Repeater控件 文章摘自:http://www.cnblogs.com/shipfi/archive/2009/10/19/1585703.html Repeater控件和D ...
- asp.net学习之数据绑定控件、数据源控件概述
原文:asp.net学习之数据绑定控件.数据源控件概述 1.asp.net数据绑定控件分为三大类,每个类分别进行详细: ● 列表式数据绑定控件: 列表式数据绑定控件常用来在一个表格内的一个字 ...
- asp.net学习之 数据绑定控件--表格绑定控件
原文:asp.net学习之 数据绑定控件--表格绑定控件 数据绑定 Web 服务器控件是指可绑定到数据源控件,以实现在 Web 应用程序中轻松显示和修改数据的控件.数据绑定 Web 服务器控件 ...
- Swift学习之熟悉控件
最近是比较清闲一些的,对于一个开发者来说,这也是一个很好的充电机会.以前做项目都是使用Objective-C去开发,但我们都知道,Swift语言从2014年的出现到现在,一步一步变的完善,渐渐变的受欢 ...
- asp.net学习之DataList控件
asp.net学习之DataList控件 DataList控件与Repeater控件一样由模板驱动,与Repeater控件不同的是: DataList控件默认输出是一个HTML表格.DataLis ...
- 在Qt中使用ActiveX控件
Qt的windows商业版本提供了ActiveQt这个framework,使用这个组件我们可以在Qt中使用ActiveX控件,并且也开发基于Qt的ActiveX控件.ActiveQt包含了两个组件QA ...
- asp.net学习之 数据绑定控件--List数据绑定控件
原文:asp.net学习之 数据绑定控件--List数据绑定控件 List控件(如 CheckBoxList.DropDownList.ListBox 和 RadioButtonList 类)继承自L ...
- Qt 开发 MS VC 控件终极篇
Qt 开发 MS VC 控件终极篇 1. 使用 MSVC2015 通过项目向导创建 Qt ActiveQt Server 解决方案 项目配置:以下文件需要修改 1. 项目属性页->项目属性-&g ...
随机推荐
- 自定义UITableViewCell 的delete按钮
自定义UITableViewCell上的delete按钮 滑动列表行(UITableViewCell)出现删除按钮时,默认是英文“delete”,这份代码片段能够将“delete”变成中文”删除“,甚 ...
- 从零开始学JavaScript二(基本概念)
基本概念 一.区分大小写 在ECMAScript中的一切(变量.函数名.操作符)都是区分大小写的. 如变量名test和Test分别表示两个不同的变量, 二.标识符 所谓标识符,就是指变量.函数.属性的 ...
- Linux库的创建和使用
Linux库的概念 库是一种软件组建技术,里面封装了数据和函数,提供给用户程序调用.使用库能够使程序模块化,提高编译速度,实现代码重用,易于升级. Windows系统提供了大量静态链接库(.lib)和 ...
- 通过Shell命令与JavaAPI读取ElasticSearch数据 (能力工场小马哥)
主要内容: 通过JavaAPI和Shell命令两种方式操作ES集群 集群环境: 两个 1,未配置集群名称的单节点(模拟学习测试环境); 2,两个节点的集群(模拟正常生产环境). JDK8+Elasti ...
- ActiveMq C#客户端 消息队列的使用(存和取)
1.准备工具 VS2013Apache.NMS.ActiveMQ-1.7.2-bin.zipapache-activemq-5.14.0-bin.zip 2.开始项目 VS2013新建一个C#控制台应 ...
- 23、List集合
1.List List接口是Collection的子接口,用于定义线性表数据结构.List是可重复集 2.List自身定义的方法 List处理继承Collection方法外,自己还定义了其它方法,例如 ...
- (转)Content-Disposition的使用和注意事项
最近不少Web技术圈内的朋友在讨论协议方面的事情,有的说web开发者应该熟悉web相关的协议,有的则说不用很了解.个人认为这要分层次来看待这个问 题,对于一个新手或者刚入门的web开发人员而言,研究协 ...
- java Map Set遍历
Map是java中的接口,Map.Entry是Map的一个内部接口. Map提供了一些常用方法,如keySet().entrySet()等方法,keySet()方法返回值是Map中key值的集合:en ...
- Linux下通用线程池的创建与使用
线程池:简单地说,线程池 就是预先创建好一批线程,方便.快速地处理收到的业务.比起传统的到来一个任务,即时创建一个线程来处理,节省了线程的创建和回收的开销,响应更快,效率更高. 在linux中,使用的 ...
- (二)Linux Shell编程——运算符、注释
2.7 Shell运算符 Bash 支持很多运算符,包括算数运算符.关系运算符.布尔运算符.字符串运算符和文件测试运算符.原生bash不支持简单的数学运算,但是可以通过其他命令来实现,例如 awk 和 ...