QPushButton的背景色是怎么设置的呢?

ziamhitler 2010-07-26 10:31:25
学习QT中,在windows上做点简单的测试,放了一个QPushButton,用如下代码设置button的颜色:

QPalette* p;

p = new QPalette(color);
ui->toolButton->setPalette(*p);
ui->toolButton->setAutoFillBackground(true);

结果是button的背景色确实改变了,但button的颜色没有变,我想改变的是button的颜色,应该怎么做呢?
...全文
5283 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
soul_ 2010-10-21
  • 打赏
  • 举报
回复
我就是想要Button透明 让widget的颜色显示应该怎么设置
button->setStyleSheet("background-color:#FF0000");好像只能固定一个颜色
我要用QColor color = QColorDialog::getColor();去取得button当前显示的颜色,然后让button显示这种颜色应该怎么做?
tingsking18 2010-07-26
  • 打赏
  • 举报
回复
styleSheet
tzcherish 2010-07-26
  • 打赏
  • 举报
回复

ui.colorButton->setPalette(QPalette(Qt::green));
ui.colorButton->setAutoFillBackground(true);


这样设置是可以将整个Button的颜色设置成绿色的啊~
lefttime 2010-07-26
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 ziamhitler 的回复:]

屏幕截图发布上来。。。。
就是可以看到,button周边有很小一圈的颜色已经改变了,但button本身的颜色没有变。
我是想问怎么设置button的颜色?
[/Quote]

button->setStyleSheet("background-color:#FF0000"); // 例子中把背景色调成红色
ziamhitler 2010-07-26
  • 打赏
  • 举报
回复
屏幕截图发布上来。。。。
就是可以看到,button周边有很小一圈的颜色已经改变了,但button本身的颜色没有变。
我是想问怎么设置button的颜色?
ziamhitler 2010-07-26
  • 打赏
  • 举报
回复
tzcherish 2010-07-26
  • 打赏
  • 举报
回复
[Quote=引用楼主 ziamhitler 的回复:]
学习QT中,在windows上做点简单的测试,放了一个QPushButton,用如下代码设置button的颜色:

C/C++ code

QPalette* p;

p = new QPalette(color);
ui->toolButton->setPalette(*p);
ui->toolButton->setAutoFillBackground(true);


结……
[/Quote]

什么叫“button的背景色确实改变了,但button的颜色没有变”?不是很明白你的目的。。。
tzcherish 2010-07-26
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 lefttime 的回复:]

引用 7 楼 ziamhitler 的回复:

引用 4 楼 lefttime 的回复:
button->setStyleSheet("background-color:#FF0000"); // 例子中把背景色调成红色

谢谢!!!
用这个方法设置成功了。
为什么我的button用这个方法设置不行呢?
ui.colorButton->setPalette(QPalette(Qt……
[/Quote]

解释得我不是很清楚~为什么我这边用#5楼的方法测试,是可以显示的呢?我用的是VS05+QT。。。
zqlee1216 2010-07-26
  • 打赏
  • 举报
回复 1
可以在qcreator的.ui中的属性栏的colorButton对象QWidget的StyleSheet属性来修改,或者在构造函数中设置ui->colorButton->setStyleSheet("background-color:#FF0000");
lefttime 2010-07-26
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 ziamhitler 的回复:]

引用 4 楼 lefttime 的回复:
button->setStyleSheet("background-color:#FF0000"); // 例子中把背景色调成红色

谢谢!!!
用这个方法设置成功了。
为什么我的button用这个方法设置不行呢?
ui.colorButton->setPalette(QPalette(Qt::green));
ui.colorButton……
[/Quote]
每个控件默认状态下都有一个矩形区域(widget), 控件的绘制是在这widget内部进行~``
autoFillBackground是针对于这个区域进行填充, 填充过程在控件处理paintEvent之前, 所以它对控件实际可见部分不起作用~~`
pywepe 2010-07-26
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 ziamhitler 的回复:]

引用 4 楼 lefttime 的回复:
button->setStyleSheet("background-color:#FF0000"); // 例子中把背景色调成红色

谢谢!!!
用这个方法设置成功了。
为什么我的button用这个方法设置不行呢?
ui.colorButton->setPalette(QPalette(Qt::green));
ui.colorButton……
[/Quote]

这个方法 学习了
ziamhitler 2010-07-26
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 lefttime 的回复:]
button->setStyleSheet("background-color:#FF0000"); // 例子中把背景色调成红色
[/Quote]
谢谢!!!
用这个方法设置成功了。
为什么我的button用这个方法设置不行呢?
ui.colorButton->setPalette(QPalette(Qt::green));
ui.colorButton->setAutoFillBackground(true);

19,656

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧