layout.h

#ifndef LAYOUT_H
#define LAYOUT_H #include <QtWidgets/QDialog>
#include <QLabel>
#include <QTextEdit>
#include <QLineEdit>
#include <QComboBox>
#include <QHBoxLayout>
#include <QVBoxLayout>
#include <QGridLayout>
#include <QPushButton>
#include "ui_layout.h" class layout : public QDialog
{
Q_OBJECT public:
layout(QWidget *parent = 0);
~layout(); private:
Ui::layoutClass ui;
QLabel *labelUser;
QLabel *labelName;
QLabel *labelSex;
QLabel *labelDepartment;
QLabel *labelAge;
QLabel *labelOther; QLineEdit *lineUser;
QLineEdit *lineName;
QLineEdit *lineAge; QComboBox *boxSex;
QTextEdit *textDescription;
QTextEdit *textIntroduction; QLabel *labelHead;
QLabel *labelIcon;
QLabel *labelDescription;
QPushButton *buttonOk;
QPushButton *buttonUpdateicon;
QPushButton *buttonCancel; QGridLayout *leftLayout;
QHBoxLayout *toprightLayout;
QVBoxLayout *rightLayout;
QHBoxLayout *buttonLayout;
private slots:
void on_buttonUpdateicon_clicked();
}; #endif // LAYOUT_H

layout.cpp

#include "layout.h"
#include <QPixmap>
#include <QMessageBox> layout::layout(QWidget *parent)
: QDialog(parent)
{
ui.setupUi(this);
labelUser = new QLabel(QStringLiteral("用户名:"));
lineUser = new QLineEdit; labelName = new QLabel(QStringLiteral("姓名:"));
lineName = new QLineEdit; labelSex = new QLabel(QStringLiteral("性别:"));
boxSex = new QComboBox;
boxSex->addItem(QStringLiteral("男"));
boxSex->addItem(QStringLiteral("女")); labelDepartment = new QLabel(QStringLiteral("部门:"));
textDescription = new QTextEdit; labelAge = new QLabel(QStringLiteral("年龄:"));
lineAge = new QLineEdit; labelOther = new QLabel(QStringLiteral("备注:"));
labelOther->setFrameStyle(QFrame::Panel | QFrame::Sunken); leftLayout = new QGridLayout; leftLayout->addWidget(labelUser,0, 0);
leftLayout->addWidget(lineUser, 0, 1); leftLayout->addWidget(labelName, 1, 0);
leftLayout->addWidget(lineName, 1, 1); leftLayout->addWidget(labelSex, 2, 0);
leftLayout->addWidget(boxSex, 2, 1); leftLayout->addWidget(labelDepartment, 3, 0);
leftLayout->addWidget(textDescription, 3, 1); leftLayout->addWidget(labelAge, 4, 0);
leftLayout->addWidget(lineAge, 4, 1); leftLayout->addWidget(labelOther, 5, 0, 1, 2); leftLayout->setColumnStretch(0, 1);
leftLayout->setColumnStretch(1, 3); labelHead = new QLabel(QStringLiteral("头像:"));
labelIcon = new QLabel;
QPixmap icon("hi.jpg");
labelIcon->setPixmap(icon);
labelIcon->resize(icon.width(), icon.height());
buttonUpdateicon = new QPushButton(QStringLiteral("更新")); toprightLayout = new QHBoxLayout;
toprightLayout->addWidget(labelHead);
toprightLayout->addWidget(labelIcon);
toprightLayout->addWidget(buttonUpdateicon); labelDescription = new QLabel(QStringLiteral("个人说明:"));
textIntroduction = new QTextEdit; rightLayout = new QVBoxLayout;
rightLayout->addLayout(toprightLayout);
rightLayout->addWidget(labelDescription);
rightLayout->addWidget(textIntroduction); buttonOk = new QPushButton(QStringLiteral("确定"));
buttonCancel = new QPushButton(QStringLiteral("取消")); buttonLayout = new QHBoxLayout;
buttonLayout->addStretch();
buttonLayout->addWidget(buttonOk);
buttonLayout->addWidget(buttonCancel); QGridLayout *mainLayout = new QGridLayout(this);
mainLayout->setMargin(15);
mainLayout->setSpacing(10);
mainLayout->addLayout(leftLayout, 0, 0);
mainLayout->addLayout(rightLayout, 0, 1);
mainLayout->addLayout(buttonLayout, 1, 0, 1, 2);
mainLayout->setSizeConstraint(QLayout::SetFixedSize); connect(buttonOk, SIGNAL(clicked()), qApp, SLOT(quit()));
connect(buttonCancel, SIGNAL(clicked()), qApp, SLOT(quit()));
connect(buttonUpdateicon, SIGNAL(clicked()), this, SLOT(on_buttonUpdateicon_clicked()));
} layout::~layout()
{ } void layout::on_buttonUpdateicon_clicked()
{
QMessageBox::information(this, QStringLiteral("嗨"), QStringLiteral("测试"));
}

qt5实现简单布局的更多相关文章

  1. WPF简单布局 浅尝辄止

            WPF的窗口只能包含一个元素,为了在WPF窗口中放置多个元素并创建更实用的用户界面,需要在窗口上放置一个容器,然后在容器中放置其它元素. 注意:造成这一限制的原因是window类继承自 ...

  2. table 和 div 简单布局

    table 简单布局 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http:// ...

  3. 【JQuery Easy UI】后台管理系统的简单布局分享

    重要说明:本博已迁移到 石佳劼的博客.有疑问请到 文章新地址 留言..! 近期做的一个简单的后台管理系统,当中用到了JQuery Easy UI框架,对于撸主这样的把控件能摆整齐就谢天谢地的码农来说, ...

  4. Masonry 布局 cell 高度适应的一种方案(实现类似朋友圈简单布局)

    来源:伯乐在线 - 夏天然后 链接:http://ios.jobbole.com/89298/ 点击 → 申请加入伯乐在线专栏作者 前言: 我模仿的是微博的布局所以也就没有 评论动态刷新cell. 1 ...

  5. 利用CSS简单布局的不同组合类型

    关于CSS布局页面的简单组合方式: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " ...

  6. CSS学习之首页简单布局

    作为一个PHPer,在前端方面javascript.jquery这些的日常工作还搞的定.可对于div+css这些东西可就头疼了,所以现在开始学习CSS 跟着燕十八的教程开始从最基础学起,首先练习一个简 ...

  7. 网页简单布局之结构与表现原则(HTML/CSS)

    结构 样式 行为真正的分离 前端初级人员会在页面上单纯的用各个div把相关内容独立开: 前端中级人员明白相关属性的设置会给元素带来什么改变,从而减少div的书写: 前端高级人员会以及其简单的和稳定的方 ...

  8. 【ExtJS】简单布局应用

    前几天学习了ExtJS的各种布局后,以下就是各种实践,从简单做起. 实现目的: 一个提交表单页,一个显示信息页,表单为个人基本资料输入,显示页为基本信息展示. 内容: 总体布局为border布局,展示 ...

  9. DIV+CSS 样式简单布局Tab 切换

    <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> &l ...

随机推荐

  1. 使用ASP.NET Core 3.x 构建 RESTful API - 4.3 HTTP 方法的安全性和幂等性

    什么样的HTTP方法是安全的? 如果一个方法不会该表资源的表述,那么这个方法就被认为是安全的. 例如 HTTP GET 和 HTTP HEAD 就被认为是安全的,但需要注意的是,这并不意味着执行GET ...

  2. 侠说java8-行为参数化(开山篇)

    啥是行为参数化 行为参数化的本质是不执行复杂的代码块,让逻辑清晰可用. 相信使用过js的你肯定知道,js是可以传递函数的,而在 java中也有类似的特性,那就是匿名函数. 理解:行为参数化是一种方法, ...

  3. 01_elementUI tree 插件 去图标

    1:elementUI饿了吗前端ui框架,结合vue开发过程中,是不是对tree组件很头疼呢?是不是想自定义图标或者去掉所有图标只留末级checkbox呢? 实现很简单添加几行css代码完美搞定!!! ...

  4. 深入理解linux i节点(inode)

    转载自:https://blog.csdn.net/vsooda/article/details/9216245 linux中,文件查找不是通过文件名称来查找的.实际上是通过i节点来实现文件的查找定位 ...

  5. [ASP.NET Core 3框架揭秘] Options[1]: 配置选项的正确使用方式[上篇]

    依赖注入不仅是支撑整个ASP.NET Core框架的基石,也是开发ASP.NET Core应用采用的基本编程模式,所以依赖注入十分重要.依赖注入使我们可以将依赖的功能定义成服务,最终以一种松耦合的形式 ...

  6. PHP 对接 饿了么开放平台 接单

    <?php # 一开始使用的是API方式对接,所以我这里是API的方式+SDK的结合 (除了获取token之外都是使用SDK方式,所以看到的朋友还是直接使用纯SDK方式对接最好),因为我这里使用 ...

  7. 深入理解协程(四):async/await异步爬虫实战

    本文目录: 同步方式爬取博客标题 async/await异步爬取博客标题 本片为深入理解协程系列文章的补充. 你将会在从本文中了解到:async/await如何运用的实际的爬虫中. 案例 从CSDN上 ...

  8. 第二篇:python中的字符串资源详述

    字符串资源使用方法详解 工具:Pycharm python环境:anaconda 接下来开始逐一解释: 如图: test后敲个点,就可以调用框框内的所有函数(功能),典型的面向对象思想. 上面只是简单 ...

  9. 定时器之Quart.net(2)

    第一步:Install-Package Quartz namespace ProjectEdb { class Program { static void Main(string[] args) { ...

  10. windows环境下使用python3.x自带的CGI服务器测试cgi脚本(转)

    1.在桌面上新建一个文件夹作为服务器目录文件夹(文件夹名称自定义,文件夹位置自定义),在www文件下再建一个文件夹,文件夹名为“cgi-bin”,须是这个文件名,其他试过不行(原因暂时未知)