• 5184阅读
  • 7回复

qss 样式问题 [复制链接]

上一主题 下一主题
离线csfeng13
 

只看楼主 倒序阅读 楼主  发表于: 2010-04-26
我想在界面上对多个按钮进行样式设定,比如说更改背景颜色, 我重载了QPushButton的两个类, MyRedPushButton 和 MyBlackPushButton, 我想用setStyleSheet()函数分别设置它们的颜色:

qApp->setStyleSheet("MyRedPushButton { background-color:red; }      MyBlackPushButton { background-color:black; }");

但是并没有得到希望的结果,样式没有改变。

int main(int argv, char* argc[ ])
{
QApplication app(argv, argc);

MyRedPushButton red;
MyBlackPushButton black;

red.show();
black.show();

return app.exec();
}


附带assistant解释

The Type Selector can be used to style widgets of a particular type. For example,
class MyPushButton : public QPushButton {
     // ...
}

// ...
qApp->setStyleSheet("MyPushButton { background: yellow; }");
[ 此帖被csfeng13在2010-04-26 18:02重新编辑 ]
Qt 好东东,大家一起努力……
离线yangfanxing
只看该作者 1楼 发表于: 2010-04-26
美化的代碼綁定在new控件的那個代碼文件裏面;
動態生成button,則用button->setstylesheet(...);
PHPWind好恶心。。。不想看这种界面。。。
离线csfeng13

只看该作者 2楼 发表于: 2010-04-26
我是用qss文件来改变,以后更改样式的时候就不用更改程序,直接改qss文件就可以了
Qt 好东东,大家一起努力……
离线抠涕
只看该作者 3楼 发表于: 2010-04-26
background-color: red;

or


background-color:  #ff0000;
离线csfeng13

只看该作者 4楼 发表于: 2010-04-26
晕,我写错了,不是

background-color: red;

or


background-color:  #ff0000;

它的原因,是我往网页上写的时候写错了。
Qt 好东东,大家一起努力……
离线抠涕
只看该作者 5楼 发表于: 2010-04-26
在 MyRedPushButton 里加 Q_OBJECT 宏,
让他在QObject 名字空间里就可以了。


或者, 一般直接在 MyRedPushButton  构造函数里用  this->setStyleSheet(); 指定自己的背景就好了,
不用外部用 qApp  再来指定。

如果要多样化 就像 yangfanxing 说的, 再各个指定
离线csfeng13

只看该作者 6楼 发表于: 2010-04-26
可以
Qt 好东东,大家一起努力……
离线午小夜

只看该作者 7楼 发表于: 2010-04-26
background is a type of Background { Brush| Url | Repeat | Alignment }*     A sequence of Brush, Url, Repeat, and Alignment.
background-color is a type of Brush {Color | Gradient | PaletteRole}  *          Specifies a Color or a Gradient or an entry in the Palette.
[操作系统版本]  Windows XP;Linux Ubuntu;Linux Fedora;
[Qt SDK版本]    4.7.0
[SDK 发布日期]  2010.05
[IDE(集成开发环境)] QtCreator
个人网页:http://hi.baidu.com/午小夜
學歷:Royal Jalidon
快速回复
限100 字节
 
上一个 下一个