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 ...
随机推荐
- locate 命令(转)
原文:http://www.cnblogs.com/peida/archive/2012/11/12/2765750.html locate 让使用者可以很快速的搜寻档案系统内是否有指定的档案.其方法 ...
- Java从零开始学三十(String和StringBuffer类)
一.StringBuffer连接字符操作 当一个字符串的内容需要被经常改变时就要使用StringBuffer 在StringBuffer中使用append()方法,完成字符串的连接操作 二.Str ...
- 监听器(web基础学习笔记二十二)
一.监听器 监听器是一个专门用于对其他对象身上发生的事件或状态改变进行监听和相应处理的对象,当被监视的对象发生情况时,立即采取相应的行动.监听器其实就是一个实现特定接口的普通java程序,这个程序专门 ...
- 虚拟机下linux迁移造成MAC地址异常处理办法
虚拟机下linux迁移造成MAC地址异常处理办法 Linux无法启用网卡:Device eth0 has different MAC address than expected,ignoring解决 ...
- MySQL中int(5) 中的5代表什么意思?
对于INT型,MySQL支持指定显示宽度例如:int(5):表示如果数值宽度小于5位,则填满宽度,保证总宽度为5位.默认为int(11),配合zerofill可以看到效果. DROP TABLE IF ...
- vue 子组件引用
使用 ref 为子组件指定一个引用 ID.例如: <div id="parent"> <user-profile ref="profile"& ...
- Redis学习(6)-常用命令
List命令 value值为LinkedList类型. 使用环境: 1,做大数据集合的增删. 2,任务队列.用户任务队列 链表查看 lrange key start end:获取链表从start到en ...
- 关于多线程中使用ArrayList的问题
多线程全局变量:1.定义只读的全局变量时,必须加final修饰,即使是private的,防止被反射修改.2.对于需要多次读写的全局变量,一定要用ThreadLocal封装,避免多线程并发时变量被多次赋 ...
- (二)Activiti之——activiti数据库表介绍
1. 数据库表的命名 Activiti的表都以ACT_开头. 第二部分是表示表的用途的两个字母标识. 用途也和服务的API对应. ACT_RE_*: 'RE'表示repository. 这个前缀的表包 ...
- springmvc注解和参数传递
一.SpringMVC注解入门 1. 创建web项目2. 在springmvc的配置文件中指定注解驱动,配置扫描器 <!-- mvc的注解驱动 --> <mvc:annotation ...