• 9511阅读
  • 9回复

[提问]求教怎么改变 QLineEdit 、QSpinBox控件的背景色 [复制链接]

上一主题 下一主题
离线fourdegree
 
只看楼主 倒序阅读 楼主  发表于: 2011-04-21
求教怎么改变 QLineEdit 、QSpinBox控件的背景色,不使用样式表。谢谢中!!
离线云中海盗
只看该作者 1楼 发表于: 2011-04-21
重写控件咯。。。
离线roywillow

只看该作者 2楼 发表于: 2011-04-21
改调色板
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线fourdegree
只看该作者 3楼 发表于: 2011-04-21
回 2楼(roywillow) 的帖子
我改了,但没有效果。QLabel就行。。不知道为什么。
    QPalette pal(QColor(255,0,0));
    QPalette pp=lineEdit->palette();
    //pp.setBrush(QPalette::Active,QPalette::Window,QBrush(Qt::red));
    pp.setColor(QPalette::Background,QColor(255,255,0));
    label->setPalette(pp);
    lineEdit->setPalette(pp);
    spinbox->setPalette(pp);
    findButton->setPalette(pp);
离线fourdegree
只看该作者 4楼 发表于: 2011-04-21
回 1楼(云中海盗) 的帖子
那么麻烦啊。。。。。。
离线dbzhang800

只看该作者 5楼 发表于: 2011-04-21
你提供的信息太少,但这个可能对你有帮助:

Warning: Some styles do not use the palette for all drawing, for instance, if they make use of native theme engines. This is the case for both the Windows XP, Windows Vista, and the Mac OS X styles.
离线fourdegree
只看该作者 6楼 发表于: 2011-04-21
回 5楼(dbzhang800) 的帖子
我用的是windows 7,但是为什么我使用setStyleSheet来设置就可以呢?
离线dbzhang800

只看该作者 7楼 发表于: 2011-04-21
Re:回 5楼(dbzhang800) 的帖子
引用第6楼fourdegree于2011-04-21 14:34发表的 回 5楼(dbzhang800) 的帖子 :
我用的是windows 7,但是为什么我使用setStyleSheet来设置就可以呢?

汗,因为当时使用setStyleSheet以后,会生成一个 QStyleSheetStyle !!

你为什么不想用stylesheet呢?我想就是因为和默认style不太一样
离线fourdegree
只看该作者 8楼 发表于: 2011-04-21
回 7楼(dbzhang800) 的帖子
开始我没有使用stylesheet的。我不想用stylesheet是因为颜色随时会改变,所以我想用setPalette,以为这样程序运行效率会快一点。我是接触QT,还不了解stylesheet、QStyle和QPalette对外观有什么改变有什么区别。。请多多指教!!!谢谢
离线lanmanck

只看该作者 9楼 发表于: 2021-02-02
回 fourdegree 的帖子
fourdegree:开始我没有使用stylesheet的。我不想用stylesheet是因为颜色随时会改变,所以我想用setPalette,以为这样程序运行效率会快一点。我是接触QT,还不了解stylesheet、QStyle和QPalette对外观有什么改变有什么区别。。请多多指教!!!谢谢 (2011-04-21 15:12) 

QPalette pa = ui->lineEdit->palette();

    qDebug() <<"设为绿色";
    pa.setColor(QPalette::Base,Qt::green);
    pa.setColor(QPalette::Text,Qt::red);
    ui->lineEdit->setPalette(pa);
精彩博客:labisart.com
快速回复
限100 字节
 
上一个 下一个