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 ...
随机推荐
- Servlet一(web基础学习笔记二十)
一.Servlet简介 Servlet是sun公司提供的一门用于开发动态web资源的技术. Sun公司在其API中提供了一个servlet接口,用户若想用发一个动态web资源(即开发一个Java程序向 ...
- Electron 调用系统Office软件
通过打开本地空白文件的方式从而打开Office办公软件 const shell = require('electron').shell; const path = require('path'); s ...
- 运行php程序时,浏览器跳出打开和保存提示框
解决办法:将php.ini文件复制到 C:\Windows
- webapp 里主要的 mate 用途
一.meta 标签分两大部分:HTTP 标题信息(http-equiv)和页面描述信息(name). 1.http-equiv 属性的 Content-Type 值(显示字符集的设定) 说明:设定页面 ...
- 改动Apach默认port
一.改动Apache的默认port号 在WEB SERVER界,无论是微软的IIS还是世界排名第一的Apache,它们安装好后默认的网页服务port号都是80.有必要指出的是,假设你的电脑中已经安装有 ...
- java发送email(含代理方式,ssl方式,传统方式)
package spring.vhostall.com; import java.security.Security; import java.util.Date; import java.util. ...
- SQL Server 2012 “阻止保存要求又一次创建表”的更改问题的设置方法
我们在用SQL Server 2012 建完表后,插入或改动随意列时,提示:当用户在在SQL Server 2012企业管理器中更改表结构时.必需要先删除原来的表.然后又一次创建新表,才干完毕表的更改 ...
- java线程具体解释
线程与进程的差别 (1)程序是一段静态的代码,进程是程序的一次动态执行过程.它是操作系统资源调度的基本单位.线程是比进程更小的执行单位.一个进程在其执行过程中,能够产生多个线程.所以又称线程为&quo ...
- DB2保存图片并读取动态显示图片
博文背景: 客户要求结构化图片信息,而不是文件文档话的管理,故要求将图片信息存储于DB2里,出于技术的角度,真不喜欢将文件存储于数据库, 但客户是上帝,木有办法,故有了如下的测试. 测试环境:DB2 ...
- 对TCP性能的考虑
#xiaodeng #对TCP性能的考虑 #HTTP权威指南 86 #对TCP性能的考虑 #HTTP紧挨着TCP,位于其上层.所以HTTP事务的性能很大程度上取决于底层tcp通道的性能. #4.2.1 ...