没有合适的资源?快使用搜索试试~ 我知道了~
qt 的样式表
4星 · 超过85%的资源 需积分: 35 41 下载量 191 浏览量
2013-07-10
15:38:48
上传
评论
收藏 92KB DOC 举报
温馨提示
试读
26页
qt 的样式表
资源推荐
资源详情
资源评论
Qt StyleSheet 样式表实例
在涉及到 Qt 美工的时候首先需要掌握 CSS 级联样式表。
下面将通过几个例子来介绍一下怎样使用 Qt 中的部件类型设计。自定义的前台背景与后台
背景的颜色:
如果需要一个文本编辑器的背景变为黄色, 下面是代码行:
qApp->setStyleSheet("QLineEdit { background-color: yellow }");
针对一个对话框的内容中使用 QLineEdit 以及 QLineEdit 的子类的背景都变成黄色, 下面是
代码:
myDialog ->setStyleSheet("QLineEdit { background-color: yellow }");
如果只需要制定一个 QLineEdit 的内容, 将使用 QObject::setObjectName() 下面是一个实例:
myDialog->setStyleSheet("QLineEdit#nameEdit { background-color: yellow }");
同时也可以针对每一个指定的部件做直接的类型设置, 下面是一个实例:
ui.nameEdit->setStyleSheet("background-color: yellow");
为了做一个鲜明的对比, 将要为文本设置合适的颜色。
nameEdit->setStyleSheet("color: blue; background-color: yellow");
当然最好的办法还有针对选择的文本来进行设置, 下面设置了一个选择文本的类型属性:
nameEdit->setStyleSheet("color: blue;"
"background-color: yellow;"
"selection-color: yellow;"
"selection-background-color: blue;");
在有一些情况下, 不需要用户参与, 而有软件设计人员来自己制定样式, 即使这些是有
违审美角度。 下面就从应用程序开发角度来设计样式。
*[mandatoryField="true"] { background-color: yellow }
上面的意思是一些强制的区域是需要用 Qt 的属性管理来强制设置成为黄色的背景。
这样一些强制的部件,将需要通过函数来设置当前的属性已经被强制设置, 下面是实现的
代码:
QLineEdit *nameEdit = new QLineEdit(this);
nameEdit->setProperty("mandatoryField", true);
QLineEdit *emailEdit = new QLineEdit(this);
emailEdit->setProperty("mandatoryField", true);
QSpinBox *ageSpinBox = new QSpinBox(this);
ageSpinBox->setProperty("mandatoryField", true);
QPushButton * evilButton = new QPushButton (this);
evilButton ->setText("Button");
下面我们将通过一个按钮的部件来设置属性样式:
首先来设置一下样式:
QPushButton#evilButton { background-color: red }
说明设置的当前的按钮为红色。作为一个 flat 平滑的按钮时没有边界的。 下面是来改
进一下对边界的设置。
QPushButton#evilButton {
background-color: red;
border-style: outset;
border-width: 2px;
border-color: beige;
}
在这里设置了一个边界的类型与边界的宽度。 这样看上去就好多了,文档中无法展现
图片, 有兴趣可以去 Qt 的变成环境当中去尝试。即使这样设计, 按钮看上去也是显得混
乱,与主部件没有办法分开。 首先是在边界设置出一个空间出来, 并且强制的制定最小宽
度,与环绕的弧度, 并且提供一个按钮的字体设置, 似的按钮看上去比较好看。
QPushButton#evilButton {
background-color: red;
border-style: outset;
border-width: 2px;
border-radius: 6px;
border-color: beige;
font: bold 14px;
min-width: 10em;
padding: 6px;
}
如此这样当我们点击按钮的时候按钮也不会发生什么样的深刻变化。 所以就需要指定
一个合适的背景颜色与不一样的边界类型。
QPushButton#evilButton {
background-color: red;
border-style: outset;
border-width: 2px;
border-radius: 10px;
border-color: beige;
font: bold 14px;
min-width: 10em;
padding: 6px;
}
QPushButton#evilButton:pressed {
background-color: rgb(224, 0, 0);
border-style: inset;
}
指定 QPushButton 菜单指示器的子控制子控提供了访问子子元素的功能, 例如通常的时候
一个按钮将会管理一个菜单,
QPushButton#evilButton::menu-indicator {
image: url(myindicator.png);
}
同时如果美化一个按钮的话, 那么将可以通过定位符来确定美化按钮的路径, 通常可以是
一个图片。
QPushButton::menu-indicator {
image: url(myindicator.png);
subcontrol-position: right center;
subcontrol-origin: padding;
left: -2px;
}
经过以上的设置那么 QPushButton 将会在方格的中心显示一个 myindicator.png 的图片。
复杂区域的例子:
当应对于一个用户可编辑可输入的部件的时候, 将需要设计到用户选择区域的颜色设
置, 与类型设置, 下面将通过使用 QLineEdit 部件来进行演示:
QLineEdit { color: red }
QLineEdit[readOnly="true"]{color:gray}
在团队开发的时候, 需要设计到不同颜色的设置, 或者说不同类型的设置,那么就需
要在样式编辑当中有多种选择,将不需要的那部分,注释掉:
QLineEdit { color: red }
QLineEdit[readOnly="true"] { color: gray }
#registrationDialog QLineEdit { color: brown }
自定义制定的部件
这个部分提供了一些自定义特殊部件的某种样式
定制 QAbstractScrollArea
比如说一些 QAbstractScrollArea 类, 例如 QTextEdit 与 QTextBrowser . 同时可以使用后台
的属性来进行设置。 例如来设置一个 背景图片。
QTextEdit, QListView {
background-color: white;
background-image: url(draft.png);
background-attachment: scroll;
}
下面的代码是让背景图片与可浏览的区域大小相同:
QTextEdit, QListView {
background-color: white;
background-image: url(draft.png);
background-attachment: fixed;
}
QCheckBox 与 QRadioButton 具有想色的属性, 他们之间的不同时 QCheckBox 是返回当前
的状态:
QCheckBox {
spacing: 5px;
}
剩余25页未读,继续阅读
资源评论
- dijie2016-05-31如果再全一点就好了。
- 王毅扬2014-03-16没太大帮助,不过还可以吧
- panyifei19922015-11-05文档感觉有缺失
- GEMVC2013-09-05呵呵,如果再全一点就好了。
xiaopohaibebo
- 粉丝: 40
- 资源: 17
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功