素材下载:https://download.csdn.net/download/shuishou1000/23690954

首先绘制一下草稿图,这一步很关键。

一,创建头部布局

1,创建工程,将mainwindow窗口尺寸设置为800x600.

2, 在DisplayWidget类别下,拖放入label标签。

3,修改标签的名字为currentTime,并修改text属性为2021-9-17   2:30 AM 星期一.此处仅做显示目的。

4,在Buttons分类下,找到pushbutton按钮,拖放两个按钮,将文字修改为restartBtn和closeBtn.

5.选择主窗口,然后点击窗口上面的命令layout vertically.实现所有的部件居中排列。

6,添加layout horizontal 水平布局组件。并将pushbutton和label组件放入布局组件中。

7,删除多余的部件,比如状态条等,目前,水平方向布局基本正确,但是竖直方向却居中,需要进一步修改。添加spacer也就是常说的“弹簧”。

8,设置按钮的水平和垂直属性策略设置为固定,并设置最小尺寸为55x55,将按钮的文字去掉,为后面添加图片做准备。

二,创建logo

1,在头部区域和竖直弹簧之间添加水平部件

2,现在放上去是这样的,太细,不容易放入组件。所以需要临时调整一下,边框margin属性。

3,添加用于放置logo的label部件,将minisize大小设置为150x150.删除lebel默认内容,将上步调整的margin归零。

4,现在logo组件尺寸看不出来,所以我们临时写入一个样式表: border: 1px solid gray;

三,布局登陆表单

1,和创建logo一样,在弹簧和logo区域之间添加水平容器组件,然后将margin top调整为100,方便放入其他组件。

2,在水平容器组件中添加垂直容器组件,设置其margin top为20,这是登陆窗口存放组件。

3,右键点击刚刚创建的垂直容器组件,选择morph into->QWidget,这时候,垂直容器组件会转换为空组件。因为我们要调整组件的宽度和高度,所以这一步是必须的。一个布局组件尽管有margin但是没有宽度和高度的,

4,修改刚刚转换的组件名字为 loginForm,将水平和垂直属性策略都转换为fixed 固定模式,并将最小尺寸设置为350x200.

5,因为已经将loginForm放入到了水平容器中,所以将水平容器的margin top设为0.临时添加样式表来显示区域,这次放入到mainwindow中,使用#指定具体组件。

QWidget#loginForm{
border:1px solid blue;
}

6,放入具体内容。为用户名和密码放入两个水平布局。添加标签和line edit到水平布局里面,每个容器放一组。分别为修改为用户名,密码。 在密码区域下面一个按钮,并修改为“提交”。

7,添加一个小弹簧,设置高度为5

8,设置loginForm的边框margin为35,也就是四周留空白,从设计上来说,看起来更好。

9,通过弹簧和组件尺寸继续调整之最佳的美观效果。然后将顶部的水平组件容器转换为QWidget,因为容器无法添加样式表。

10,如果我们不想要mainwindow的边框填充时,在列表窗口找到centralwidget,将边框设置设为0.目前的框架如下

11,下一步我们将要添加令人着迷的样式表了!

我们添加样式表通过继承的方法,选择mainwindow点击change style ,后面添加图片,临时样式。

#centralwidget{background:rgba(32, 80, 96,100);}

如果将样式应用到mainwindow,那么只能是用#centralwidget,因为mainwindow只是容器,无法放样式。

继续添加样式

#centralwidget{background:rgba(32, 80, 96,100);}
#topWidget{
background-color:qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 rgba(91,204,33 , 255), stop:1 rgba(32, 80,,96, 200))
}
#loginForm{
background:rgba(0,0,0,80);
border-radius:8px;
}
QLabel{
color:white;
}
QLineEdit{
border-radius:3px;
}
QPushButton{
color:white;
background-color:#27a9e3;
border-width:0px;
border-radius:3px;
}
QPushButton:hover{
background-color:#66c011;
}

总结:布局中主要是使用容器和弹簧,样式主要是从大到小的去应用。

添加外部资源

创建QT resource files,文件-新建文件-qt-qt resource files

在qt create中打开resource file文件,添加前缀是为了更好的管理素材。

添加前缀“/icons”"/images",并添加相应的素材如图

选择相应的按钮,从属性中找到 icon,打开 icon旁边的向下箭头,然后选择resource,如果是空白的,需要save all一下,就会显示。选择相应的资源。

如果图标很小,就需要调整尺寸,默认图标是16x16的。选择icon size属性框,进行调整。

往logo同添加素材使用属性 pixmap属性,选择与icon一样。

也可以使用另一个方法实现加载图片。

border-img:url(:/images/logo.png);

pixmap与样式表加载图片的最大区别: pixmap不能缩放,样式表可以跟随窗口缩放。

注意:使用的素材文件,不限于图片,需要和.qrc在同一个文件夹,或者在子文件夹里。

最终效果:

使用Qt6的样式表创建登陆界面相关推荐

  1. MFC 登陆界面 创建地方

    在"工程名APP.CPP"的InitInstance()函数中创建登陆界面可以根据自己需求做界面. 这里只是用对话框简单演示. BOOL CDAFGeneratorApp::Ini ...

  2. 使用HTML表单和表格完成静态QQ登陆界面

    使用HTML表单和表格完成静态QQ登陆界面 一.创建过程 创建表单 创建表格 创建行 创建单元格 创建表单组建 二.原理 使用表单来显示收集用户信息并用表格来帮助排版 三.主要代码 1. <ta ...

  3. 【Python】解决Django Admin管理界面样式表(CSS Style)丢失问题

    [Python]解决Django Admin管理界面样式表(CSS Style)丢失问题 参考文章: (1)[Python]解决Django Admin管理界面样式表(CSS Style)丢失问题 ( ...

  4. web developer tips (1):创建、管理、应用样式表的强大工具

    原文链接:Powerful CSS Tools to Create, Manage and Apply Styles Visual Studio 2008 包含了三个新的CSS样式工具窗口: 1.应用 ...

  5. 引用自己创建的css样式表_如何使用CSS创建联系表

    引用自己创建的css样式表 First we create the HTML elements - input fields for First Name, Last Name, Email and ...

  6. css设置打印样式表,[CSS] 创建打印样式表

    [CSS] 创建打印样式表 Chrome浏览器有一项非常好用的功能, 就是直接将网页保存为PDF(Ctrl+P), 虽然部分人觉得没有用, 但我经常使用这个功能 比如说, 有的博文写得不错, 想保存, ...

  7. 户界面样式-表单轮廓和防止拖拽文本域(HTML、CSS)

    户界面样式-表单轮廓和防止拖拽文本域(HTML.CSS) <!DOCTYPE html> <html lang="en"><head><m ...

  8. css新建样式表文件,CSS教程:创建性感的CSS样式表

    CSS教程:创建性感的CSS样式表 互联网   发布时间:2008-10-17 19:28:31   作者:佚名   我要评论 原文名称:Creating Sexy Stylesheets

  9. 用Qt写一个简单的音乐播放器(七):界面美化(QSS样式表)

    一.前言 在用Qt写一个简单的音乐播放器(一):使用QMediaPlayer播放音乐中,我们已经知道如何去使用QMediaPlayer播放音乐. 在用Qt写一个简单的音乐播放器(二):增加界面(开始和 ...

最新文章

  1. C++打开的文件一定要用close()方法关闭
  2. Xshell更改命令提示符以及背景配色
  3. 闲来无事,做了个简单的在线编辑的mock服务
  4. Geospark加载PostgreSQL数据库
  5. Leecode03. 无重复字符的最长子串——Leecode大厂热题100道系列
  6. 实验 5 性能测试脚本录制和开发实验报告--软件功能测试与性能测试实验
  7. 我是程序员,我有对象,我还可以调用别人对象!
  8. OSPF通过MPLS ×××
  9. 普罗米修斯 软件_监控神器-普罗米修斯Prometheus的安装
  10. 1024程序员节:心疼被段子手黑得最惨的你们
  11. 解决ubuntu下安装mysql使用service无法启动问题
  12. resiprocate之message
  13. html src data:image,Browser/HTML Force download of image from src=“data:image/jpeg;base64…”
  14. c语言linux系统宏,Linux下C语言中的预定义宏
  15. python pip下载安装一半退出_【Python】pip安装numpy安装到一半失败解决办法
  16. intel 9260AC网卡修改成Killer 1550
  17. Linux内核源代码阅读
  18. ElasticSearch的REST APIs 之 索引的状态管理
  19. matlab冒号,括号的用法
  20. pnp mysql_NPN和PNP三极管的区别

热门文章

  1. 为什么不能自定义java.lang.String
  2. 《南京印象》之二《石城疏影》
  3. win7设置计算机临时用户,解决win7提示“您已使用临时配置文件登陆”的方案
  4. HDFS与Hive实战 + 滴滴出行数据分析
  5. 一个700万人口的国家系统遭黑客入侵,超500万人身份信息泄露...
  6. jQuery插件Magnify放大镜实现javascript图片放大功能
  7. linux网卡驱动源码分析
  8. 第十六届全国大学生智能车竞赛浙江赛区选拔赛成绩汇总
  9. 流计算 Oceanus | Flink JVM 内存超限的分析方法总结
  10. STM32 FSMC接口驱动4.3寸TFT LCD屏