Qt 类型编辑实例

在涉及到Qt 部件美工编程的时候首先要掌握CSS 级联样式表
   级联样式表 (CSS) 包含应用于网页中的元素的样式规则。CSS 样式定义元素的显示方式以及元素在页中的放置位置。可以创建一个通用规则,只要 Web 浏览器遇到一个元素实例,或遇到一个分配给某个特定样式类的元素,该规则就立刻应用属性,而不是将属性逐个分配给页中的每个元素。
 
CSS 样式可以通过内联方式放置在单个 HTML 元素内,也可以在网页 head 部分的 style 块内加以分组,或从单独的样式表中导入。如果样式是在单独的样式表中创建的,则可以将多个网页链接到该样式表,从而为整个网站提供一个通用的外观。如果使用 CSS 设置 Web 控件的样式,则应使用 CssClass 属性来定义要与控件或控件元素关联的 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 }");
 
同时也可以针对每一个指定的部件做直接的类型设置, 下面是一个实例:
 
 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);

作者: siriurs28   发布时间: 2010-12-15