样式:

文件格式类型:

candy.qss

/* R1 */
QDialog {
/*设置背景图片*/
background-image: url(:/images/background.png);
/*background-image: url(:/images/button.png);*/
} /* 设置QLabel的color和font属性 */
QLabel {
font: 9pt;
color: rgb(, , );
} /* 设置对话框QLineEdit和QListView的外观 */
QComboBox:editable,
QLineEdit,
QListView {
/*设置前景色(字体颜色)*/
color:black;
/*color:palette(Base);*/
/*设置背景色*/
background-color:rgba(%,%,%,%);
/*设置背景色渐变*/
/*background-color:qlineargradient(x1:0,y1:0,x2:1,y2:1,
stop:0 white,stop:0.4 red,
stop:1 green);*/
/*设置背景图片*/
/*background-image:url(:/imags/button.png);*/ /*被选中后的颜色*/
selection-color: write;
/*选择后的背景颜色*/
selection-background-color: rgb(, , );
/*灰色,2像素宽的凹槽边框*/
border: 2px groove red;
/*设置编辑框为圆角,半径为10*/
border-radius: 10px;
padding: 2px 4px;
} /* ListView的填充 */
QListView {
padding: 5px 4px;
} /* R5 */
QComboBox:!editable,
QPushButton {
/*按钮字体颜色*/
color: black;
/*字体大小*/
font: bold 10pt;
/*按钮图片(一个圆形) 大小为34*34 16表示
切线在距离边界16像素的位置(有4条)*/
border-image: url(:/images/button.png) ;
/*边界的宽度(最好和切线距离保持一致)*/
border-width: 16px 16px;
/*按钮文字预留填充空间 竖直像素减16 水平像素*/
padding: -16px 0px;
/*定义最小高度和最小宽度,保证有足够的空间留给角上的边界图*/
min-height: 34px;
min-width: 60px;
} /* 鼠标停留在按钮上 */
QComboBox:!editable:hover,
QComboBox::drop-down:editable:hover,
QPushButton:hover {
border-image: url(:/images/button-hover.png) ;
} /* 按钮按下 */
QComboBox:!editable:on,
QPushButton:pressed {
/*前景色改为浅灰色*/
color: lightgray;
border-image: url(:/images/button-pressed.png) ;
/*把文字下移一个像素*/
padding-top: -15px;
padding-bottom: -17px;
} /* 定义下拉按钮的规则 */
QComboBox::down-arrow {
image: url(:/images/down-arrow.png);
} /* 如果组合框是打开的,向下箭头将下移一个像素 */
QComboBox::down-arrow:on {
top: 2px;
} /* 单击组合框会显示一个项的列表 ,可以弹出任何一个*/
QComboBox * {
font: 9pt;
} /* 下拉箭头竖直居中,在只读组合框矩形的右侧 */
QComboBox::drop-down:!editable {
subcontrol-origin: padding;
subcontrol-position: center right;
width: 11px;
height: 6px;
background: none;
} /* 指定右侧15像素的填充区域,保证与显示不重合 */
QComboBox:!editable {
padding-right: 15px;
} /* 可编辑组合框下拉按钮*/
QComboBox::drop-down:editable {
border-image: url(:/images/button.png) ;
border-width: 10px;
subcontrol-origin: margin;
subcontrol-position: center right;
width: 7px;
height: 6px;
} /* R14 */
QComboBox::drop-down:editable:open {
border-image: url(:/images/button-pressed.png) ;
} /* R15 */
QComboBox:editable {
margin-right: 29px;
} /*指定特别的按钮样式*/
/*QPushButton[text="OK"]
{
color:green;
}*/ /*鼠标停留时颜色的变化*/
QPushButton:hover
{
color:red;
} /*设置复选框和单选框的大小
indicator:复选框,单选框,可选菜单项或可选群组框的指示器*/
QCheckBox::indicator,QRadioButton::indicator
{
width:20px;
height:20px;
} /*设置选框和说明之间的距离*/
QCheckBox,QRadioButton
{
spacing:8px;
} /*鼠标停留在选框时的状态,以及选择后的状态*/
QCheckBox:hover,QCheckBox:checked
{
color:red;
} /*上右下左分别对应的填充空间*/
QLineEdit
{
padding:0px 15px 0px 0px;
}

main.cpp

#include <QtGui>

#include "candydialog.h"

int main(int argc, char *argv[])
{
QApplication app(argc, argv);
//设置风格
QApplication::setStyle(new QPlastiqueStyle); //打开qss文件
QFile file(":/qss/candy.qss");
//只读方式打开
file.open(QFile::ReadOnly);
//读取并设置风格
app.setStyleSheet(file.readAll()); //创建
CandyDialog dialog;
dialog.show(); return app.exec();
}

candydialog.h

#ifndef CANDYDIALOG_H
#define CANDYDIALOG_H #include <QDialog> class QCheckBox;
class QComboBox;
class QDialogButtonBox;
class QLabel;
class QLineEdit;
class QListWidget; class CandyDialog : public QDialog
{
Q_OBJECT public:
CandyDialog(QWidget *parent = ); private:
//姓名标签
QLabel *nameLabel;
//密码标签
QLabel *passwordLabel;
//country标签
QLabel *countryLabel;
//profession标签
QLabel *professionLabel;
//姓名下拉框
QComboBox *nameComboBox;
//密码框
QLineEdit *passwordLineEdit;
//国家下拉框
QComboBox *countryComboBox;
//列表框
QListWidget *professionListWidget;
//复选框
QCheckBox *acceptCheckBox;
//按钮集合
QDialogButtonBox *buttonBox;
}; #endif

candydialog.cpp

#include <QtGui>

#include "candydialog.h"

CandyDialog::CandyDialog(QWidget *parent)
: QDialog(parent)
{
//姓名下拉框
nameComboBox = new QComboBox;
//可以编辑
nameComboBox->setEditable(true);
//下拉框添加元素
nameComboBox->addItem("Albert Camus");
nameComboBox->addItem("Dag Solstad");
nameComboBox->addItem("Haruki Murakami");
nameComboBox->addItem("Mark Haddon"); //姓名标签
nameLabel = new QLabel(tr("&Name:"));
//设置标签和下拉框的绑定
nameLabel->setBuddy(nameComboBox); //密码编辑框
passwordLineEdit = new QLineEdit;
//设置为密码输入方式
passwordLineEdit->setEchoMode(QLineEdit::Password);
//设置初始密码
passwordLineEdit->setText("password1"); //设置密码标签
passwordLabel = new QLabel(tr("&Password:"));
//密码标签和下拉框绑定
passwordLabel->setBuddy(passwordLineEdit); //国家选择框
countryComboBox = new QComboBox;
//插入记录
countryComboBox->addItem(tr("France"));
countryComboBox->addItem(tr("Germany"));
countryComboBox->addItem(tr("United States of America"));
countryComboBox->addItem(tr("United Kingdom"));
countryComboBox->addItem(tr("Other")); //创建标签
countryLabel = new QLabel(tr("&Country:"));
//绑定
countryLabel->setBuddy(countryComboBox); //创建list
professionListWidget = new QListWidget;
//插入记录
professionListWidget->addItem(tr("Ambassador"));
professionListWidget->addItem(tr("Cab driver"));
professionListWidget->addItem(tr("Psychologist"));
professionListWidget->addItem(tr("Scientist"));
professionListWidget->addItem(tr("Tax collector")); //创建label
professionLabel = new QLabel(tr("P&rofession:"));
//绑定
professionLabel->setBuddy(professionListWidget); //创建选择框
acceptCheckBox = new QCheckBox(tr("I accept the terms and "
"conditions")); //创建按钮框
buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok
| QDialogButtonBox::Cancel); //创建槽函数
connect(buttonBox, SIGNAL(accepted()), this, SLOT(accept()));
connect(buttonBox, SIGNAL(rejected()), this, SLOT(reject())); //创建网格布局
QGridLayout *mainLayout = new QGridLayout;
mainLayout->addWidget(nameLabel, , );
mainLayout->addWidget(nameComboBox, , );
mainLayout->addWidget(passwordLabel, , );
mainLayout->addWidget(passwordLineEdit, , );
mainLayout->addWidget(countryLabel, , );
mainLayout->addWidget(countryComboBox, , );
mainLayout->addWidget(professionLabel, , );
//第三行,第一列,占用三行,1列
mainLayout->addWidget(professionListWidget, , , , );
//占一行两列
mainLayout->addWidget(acceptCheckBox, , , , );
//占一行两列
mainLayout->addWidget(buttonBox, , , , );
//设置第三行最小高度
mainLayout->setRowMinimumHeight(, );
//设置高的比例
mainLayout->setRowStretch(, );
setLayout(mainLayout); setWindowTitle(tr("Candy"));
}

43.qt通过qss自定义外观的更多相关文章

  1. Qt的Qss样式

    http://www.cnblogs.com/coffeegg/archive/2011/11/15/2249452.html(转) http://blog.csdn.net/cgzhello1/ar ...

  2. 自学QT之qss教程

    这篇文章来自于QT的帮助文档,你要是看了最新版的,会发现讲解得更棒.如果你的英文不是那么好,或者说看着头疼,那还是来看此篇吧. 在此之前说一个帮助文档的特别用法,绝不仅仅是搜单词,QT的文档非常强大的 ...

  3. Qt之QSS(动态属性)

    简述 QSS可以定制应用程序的外观,无需关注Qt样式背后的魔力.从非常轻微到极其复杂的调整,样式表都可以做到.对于一个完全定制和独特的用户体验,QtQuick和QGraphicsView是更好的选择. ...

  4. Qt之QSS(Q_PROPERTY-原始属性)

    http://blog.csdn.net/liang19890820/article/details/51698536 版权声明:进步始于交流,收获源于分享!纯正开源之美,有趣.好玩.靠谱...作者: ...

  5. Qt之QSS(Q_PROPERTY-自定义属性)

    版权声明:进步始于交流,收获源于分享!纯正开源之美,有趣.好玩.靠谱...作者:一去丶二三里 博客地址:http://blog.csdn.net/liang19890820   目录(?)[+]   ...

  6. Qt之QSS(白色靓丽)

    简述 Qt助手中有关于各种部件的QSS详细讲解,资源很丰富,请参考:Qt Style Sheets Examples. 白色靓丽 - 一款漂亮的QSS风格. 你可以直接使用,也可以随意转载,但请务必保 ...

  7. Qt之QSS(黑色炫酷)

    简述 Qt助手中有关于各种部件的QSS详细讲解,资源很丰富,请参考:Qt Style Sheets Examples. 黑色炫酷 - 一款漂亮的QSS风格. 之前博客中分享了很多关于Qt的样式效果,几 ...

  8. Qt之QSS(QDarkStyleSheet)

    简述 关于样式,前面介绍了很多内容,下面分享一个深色样式表,很值得借鉴! 简述 效果 QSS 更多参考 效果 QSS /* * The MIT License (MIT) * * Copyright ...

  9. Qt:使用自定义的字体

    Qt:使用自定义的字体 1. 下载字体文件 2. 加载字体文件 3. 使用字体   QFontDatabase::addApplicationFont("XENOTRON.TTF" ...

随机推荐

  1. 开源作品-PHP写的Redis管理工具(单文件绿色版)-SuRedisAdmin_PHP_1_0

    前言:项目开发用到了Redis,但是在调试Redis数据的时候,没有一款通用的可视化管理工具.在网络找了一些,但是感觉功能上都不尽人意,于是决定抽出一点时间,开发一个用起来顺手的Redis管理工具.秉 ...

  2. IE浏览器发展史

  3. Deutsch lernen (03)

    1. das Gewerbe, - 行业 Was ist Ihr Gewerbe? Welches Gewerbe treibt er? treiben - trieb - getrieben  从事 ...

  4. 三维重建:多点透视cvSolvePNP的替代函数(Code)

           在调试JNI程序时,所有的Shell都已经加载完成,而唯一真正核心的cv::SolvePnP却不能在JNI里面获得通行证,经过反复测试都不能运行,因此只能忍痛舍弃,自行编写一个具有相 ...

  5. alert弹出框 弹出窗口 ----sweetAlert

    推荐一款好用的alert,下面地址是demo,很直观的看到效果,wap可以使用 http://www.dglives.com/demo/sweetalert-master/example/   < ...

  6. hexo搭建博客

    在使用hexo搭建个人博客的时候,修改.yml文件后出现错误:FATAL can not read a block mapping entry; a multiline key may not be ...

  7. Linux 僵尸进程如何处理

    Linux 允许进程查询内核以获得其父进程的 PID,或者其任何子进程的执行状态.例如,进程可以创建一个子进程来执行特定的任务,然后调用诸如 wait() 这样的一些库函数检查子进程是否终止.如果子进 ...

  8. case...when...then if 用法

    select case when if 的一些用法 概述:sql语句中的case语句与高级语言中的switch语句,是标准sql的语法,适用于一个条件判断有多种值的情况下分别执行不同的操作. 首先,让 ...

  9. mysql中的高级查询语句

    此随笔用到的数据全是来自  关于mysql中表关系的一些理解(一对一,一对多,多对多) 提及的    学院表,学生表,学生详情表,选课表,课程表 单标查询:(查看学生表的学生名单) select st ...

  10. 洛谷 P2805 BZOJ 1565 植物大战僵尸

    题目描述 Plants vs. Zombies(PVZ)是最近十分风靡的一款小游戏.Plants(植物)和Zombies(僵尸)是游戏的主角,其中Plants防守,而Zombies进攻.该款游戏包含多 ...