博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Qt学习(002-1)
阅读量:6675 次
发布时间:2019-06-25

本文共 2334 字,大约阅读时间需要 7 分钟。

hot3.png

从这一节开始做一个通讯录。基本还是分析已有的代码。
Qt5.1.1下creator建立addressbook项目。

建立头文件addressbook.h:

#ifndef ADDRESSBOOK_H#define ADDRESSBOOK_H#include 
#include
#include
class AddressBook : public QWidget{ Q_OBJECTpublic: AddressBook(QWidget *parent = 0);private: QLineEdit *nameLine; QTextEdit *addressText;};#endif // ADDRESSBOOK_H

建立源文件addressbook.cpp:

#include "addressbook.h"#include 
#include
AddressBook::AddressBook(QWidget *parent) : QWidget(parent){ QLabel *nameLabel = new QLabel(tr("Name:")); nameLine = new QLineEdit; QLabel *addressLabel = new QLabel(tr("Address:")); addressText = new QTextEdit; QGridLayout *mainLayout = new QGridLayout; mainLayout->addWidget(nameLabel, 0, 0); mainLayout->addWidget(nameLine, 0, 1); mainLayout->addWidget(addressLabel, 1, 0, Qt::AlignTop); mainLayout->addWidget(addressText, 1, 1); setLayout(mainLayout); setWindowTitle(tr("Simple Address Book"));}

AddressBook类继承自QWidget,“:QWidget(parent)”用来初始化父类。

这里使用了网格布局。其addWidget函数有两个原型:
void QGridLayout::addWidget(QWidget * widget, int row, int column, Qt::Alignment alignment = 0)

void QGridLayout::addWidget(QWidget * widget, int fromRow, int fromColumn, int rowSpan, int columnSpan, Qt::Alignment alignment = 0)

参数含义显而易见。alignment需要多解释一下:

其默认值为0,说明添加的部件会填充满指定的网格。 Qt::AlignTop指明会将部件放在网格的上部。这些指定位置的常量还有:
The horizontal flags are:Qt::AlignLeft : Aligns with the left edge.Qt::AlignRight  :  Aligns with the right edge.Qt::AlignHCenter  :  Centers horizontally in the available space.Qt::AlignJustify  :  Justifies the text in the available space.--------The vertical flags are:Constant  Value DescriptionQt::AlignTop  :  Aligns with the top.Qt::AlignBottom :  Aligns with the bottom.Qt::AlignVCenter  :  Centers vertically in the available space.--------You can use only one of the horizontal flags at a time. There is one two-dimensional flag:Qt::AlignCenter  : Centers in both dimensions(AlignVCenter | AlignHCenter).

修改main.cpp:

#include "addressbook.h"#include 
int main(int argc, char *argv[]){ QApplication a(argc, argv); AddressBook addressBook; addressBook.show(); return a.exec();}

运行结果:

参考:

http://qt-project.org/doc/qt-4.8/tutorials-addressbook-part1.html

转载于:https://my.oschina.net/letiantian/blog/177959

你可能感兴趣的文章
ConcurrentHashMap vs Collections.synchronizedMap()不同
查看>>
file_name[:-4]
查看>>
微生物组学数据分析工具综述 | 16S+宏基因组+宏病毒组+宏转录组--转载
查看>>
mvc 做伪静态另外一个方法
查看>>
apache中文乱码;mod_rewrite: could not create rewrite_log_lock Configuration Failed
查看>>
android面试题及答案
查看>>
Linux下全局符号覆盖问题
查看>>
【iScroll源码学习02】分解iScroll三个核心事件点
查看>>
【流量劫持】SSLStrip 的未来 —— HTTPS 前端劫持
查看>>
UML图学习之三 状态图
查看>>
JAVA Oauth 认证服务器的搭建
查看>>
python的模式匹配 - 正则表达式
查看>>
新浪微博客户端(24)-计算原创微博配图frame
查看>>
macOS SIP 权限设置
查看>>
使用Cubic Spline通过一组2D点绘制平滑曲线
查看>>
读Ext之八(原生事件对象的修复及扩充)
查看>>
权限设计的三层境界续
查看>>
蓝点中文_Linux2.0 实验九 目录与文件管理 (一)
查看>>
构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(16)-权限管理系统-漂亮的验证码...
查看>>
【总目录】本博客博文总目录-实时更新
查看>>