Qt样式表是一个可以自定义部件外观的十分强大的机制,可以用来美化部件。Qt样式表的概念、术语和语法都受到了HTML的层叠样式表(Cascading Style Sheets, CSS 教程)的启发,不过与CSS不同的是,Qt样式表应用于部件的世界。
| 类型选择器 | QPushButton | 匹配QPushButton及其子类的实例 |
| ID选择器 | QPushButton#okButton | 匹配所有objectName为okButton的QPushButton实例。 |
注:px:相对长度单位,像素(Pixel)。pt:绝对长度单位,点(Point)。
| CSS文字属性及示例 | 说明 |
|---|---|
| color:#999999; | 文字颜色 |
| font-family:Microsoft Yahei,sans-serif; | 字体家族 |
| font-size:16pt; | 字体大小 |
| font-style:itelic;(normal、oblique) | 字体样式 |
| letter-spacing:1pt; | 字间距离 |
| line-height:200%; | 设置行高 |
| font-weight:bold;(lighter、normal、数值900) | 字体粗细 |
| text-decoration:underline;(line-through、overline、none) | 字体修饰 |
| text-align:left;(right、center、justify) | 文字左对齐 |
| vertical-align:top;(bottom、middle、text-top、text-bottom) | 垂直对齐方式 |
| text-transform:uppercase;(lowercase、capitalize) | 英文大写 |
| font-variant: small-caps;(normal) | 小型大写字母 |
| CSS背景样式及示例 | 说明 |
|---|---|
| background:black; | 背景颜色为黑色 |
| background-color:#F5E2EC; | 背景颜色 |
| background-image:url(/image/bg.gif); | 背景图片 |
| border-image:url(:/icons/pulldown.png) | 部件背景图片 |
| background:transparent; | 透视背景 |
| background-repeat : repeat; | 重复排列-网页默认 |
| background-position : center; | 指定背景位置-居中对齐 |
| CSS边框空白及示例 | 说明 |
|---|---|
| padding:5px 10px 5px 10px; | 所有边框留空白 |
| padding-top:10px; | 上边框留空白 |
| padding-right:10px; | 右边框留空白 |
| padding-bottom:10px; | 下边框留空白 |
| padding-left:10px; | 左边框留空白 |
| CSS框线建议书写方式 | 说明 |
|---|---|
| border:1px solid red; | 所有边框线 |
| border-top:1px solid #6699cc; | 上框线 |
| border-bottom:1px solid #6699cc; | 下框线 |
| border-left:1px solid #6699cc; | 左框线 |
| border-right:1px solid #6699cc; | 右框线 |
| border-radius:8px; | 边框圆角半径 |
| border:none; | 无边框 |
以上是建议书写方式,但也可以使用常规书写方式,如下表所示:
| CSS框线常规书写方式 | 说明 |
|---|---|
| border-top-color:#369; | 设置上框线颜色 |
| border-top-width:1px; | 设置上框线宽度 |
| border-top-style:solid | 设置上框线样式 |
其他框线样式如下:
solid - 实线
dotted - 虚线
double - 双线
inset - 凹框
outset - 凸框
groove - 立体内凸框
ridge - 立体浮雕框
| CSS边界样式及示例 | 说明 |
|---|---|
| margin-top:10px; | 上边界值 |
| margin-right:10px; | 右边界值 |
| margin-bottom:10px; | 下边界值 |
| margin-left:10px; | 左边界值 |
/*按钮普通态*/QPushButton
{ /*字体为微软雅黑*/
font-family:Microsoft Yahei; /*字体大小为20点*/
font-size:20pt; /*字体颜色为白色*/
color:white; /*背景颜色*/
background-color:rgb(14 , 150 , 254); /*边框圆角半径为8像素*/
border-radius:8px;
}/*按钮停留态*/QPushButton:hover
{ /*背景颜色*/
background-color:rgb(44 , 137 , 255);
}/*按钮按下态*/QPushButton:pressed
{ /*背景颜色*/
background-color:rgb(14 , 135 , 228); /*左内边距为3像素,让按下时字向右移动3像素*/
padding-left:3px; /*上内边距为3像素,让按下时字向下移动3像素*/
padding-top:3px;
}
注:注释只能使用/* */,#和//均无效。

"QQ号码/手机/邮箱"的设置通过placeHoldText设置;可以实现输入灰字消失的效果;
我脑子里浮现出一些关于一种新编程语言的想法,所以我想我会尝试实现它。一位friend建议我尝试使用Treetop(Rubygem)来创建一个解析器。Treetop的文档很少,我以前从未做过这种事情。我的解析器表现得好像有一个无限循环,但没有堆栈跟踪;事实证明很难追踪到。有人可以指出入门级解析/AST指南的方向吗?我真的需要一些列出规则、常见用法等的东西来使用像Treetop这样的工具。我的语法分析器在GitHub上,以防有人希望帮助我改进它。class{initialize=lambda(name){receiver.name=name}greet=lambda{IO.puts("He
我有一大串格式化数据(例如JSON),我想使用Psychinruby同时保留格式转储到YAML。基本上,我希望JSON使用literalstyle出现在YAML中:---json:|{"page":1,"results":["item","another"],"total_pages":0}但是,当我使用YAML.dump时,它不使用文字样式。我得到这样的东西:---json:!"{\n\"page\":1,\n\"results\":[\n\"item\",\"another\"\n],\n\"total_pages\":0\n}\n"我如何告诉Psych以想要的样式转储标量?解
我正在为一个项目制作一个简单的shell,我希望像在Bash中一样解析参数字符串。foobar"helloworld"fooz应该变成:["foo","bar","helloworld","fooz"]等等。到目前为止,我一直在使用CSV::parse_line,将列分隔符设置为""和.compact输出。问题是我现在必须选择是要支持单引号还是双引号。CSV不支持超过一个分隔符。Python有一个名为shlex的模块:>>>shlex.split("Test'helloworld'foo")['Test','helloworld','foo']>>>shlex.split('Test"
所以我在关注Railscast,我注意到在html.erb文件中,ruby代码有一个微弱的背景高亮效果,以区别于其他代码HTML文档。我知道Ryan使用TextMate。我正在使用SublimeText3。我怎样才能达到同样的效果?谢谢! 最佳答案 为SublimeText安装ERB包。假设您安装了SublimeText包管理器*,只需点击cmd+shift+P即可获得命令菜单,然后键入installpackage并选择PackageControl:InstallPackage获取包管理器菜单。在该菜单中,键入ERB并在看到包时选择
在Ruby类中,我重写了三个方法,并且在每个方法中,我基本上做同样的事情:classExampleClassdefconfirmation_required?is_allowed&&superenddefpostpone_email_change?is_allowed&&superenddefreconfirmation_required?is_allowed&&superendend有更简洁的语法吗?如何缩短代码? 最佳答案 如何使用别名?classExampleClassdefconfirmation_required?is_a
可能已经问过了,但我找不到它。这里有2个常见的情况(对我来说,在编程Rails时......)用ruby编写是令人沮丧的:"astring".match(/abc(.+)abc/)[1]在这种情况下,我得到一个错误,因为字符串不匹配,因此在nil上调用[]运算符。我想找到的是比以下内容更好的替代方法:temp="astring".match(/abc(.+)abc/);temp.nil??nil:temp[1]简而言之,如果不匹配,则简单地返回nil而不会出错第二种情况是这样的:var=something.very.long.and.tedious.to.writevar=some
我有带有Logo图像的公司模型has_attached_file:logo我用他们的Logo创建了许多公司。现在,我需要添加新样式has_attached_file:logo,:styles=>{:small=>"30x15>",:medium=>"155x85>"}我是否应该重新上传所有旧数据以重新生成新样式?我不这么认为……或者有什么rake任务可以重新生成样式吗? 最佳答案 参见Thumbnail-Generation.如果rake任务不适合你,你应该能够在控制台中使用一个片段来调用重新处理!关于相关公司
我正在学习Ruby的基础知识(刚刚开始),我遇到了Hash.[]method.它被引入a=["foo",1,"bar",2]=>["foo",1,"bar",2]Hash[*a]=>{"foo"=>1,"bar"=>2}稍加思索,我发现Hash[*a]等同于Hash.[](*a)或Hash.[]*一个。我的问题是为什么会这样。是什么让您将*a放在方括号内,是否有某种规则可以在何时何地使用“it”?编辑:我的措辞似乎造成了一些困惑。我不是在问数组扩展。我明白了。我的问题基本上是:如果[]是方法名称,为什么可以将参数放在括号内?这看起来几乎——但不完全是——就像说如果你有一个方法Foo.d
?博客主页:https://xiaoy.blog.csdn.net?本文由呆呆敲代码的小Y原创,首发于CSDN??学习专栏推荐:Unity系统学习专栏?游戏制作专栏推荐:游戏制作?Unity实战100例专栏推荐:Unity实战100例教程?欢迎点赞?收藏⭐留言?如有错误敬请指正!?未来很长,值得我们全力奔赴更美好的生活✨------------------❤️分割线❤️-------------------------
在前面两节的例子中,主界面窗口的尺寸和标签控件显示的矩形区域等,都是用C++代码编写的。窗口和控件的尺寸都是预估的,控件如果多起来,那就不好估计每个控件合适的位置和大小了。用C++代码编写图形界面的问题就是不直观,因此Qt项目开发了专门的可视化图形界面编辑器——QtDesigner(Qt设计师)。通过QtDesigner就可以很方便地创建图形界面文件*.ui,然后将ui文件应用到源代码里面,做到“所见即所得”,大大方便了图形界面的设计。本节就演示一下QtDesigner的简单使用,学习拖拽控件和设置控件属性,并将ui文件应用到Qt程序代码里。使用QtDesigner设计界面在开始菜单中找到「Q