找回密码
 立即注册
收起左侧

求助背景颜色变换问题

17
回复
10581
查看
[复制链接]
累计签到:4 天
连续签到:1 天
来源: 2013-10-1 16:56:29 显示全部楼层 |阅读模式
1Qter豆
我想用QT实现这个功能

主界面有个按钮  点一下这个按钮 主界面变成黑色的背景  再点一下变成红色的  再点一下变成别的颜色  

请问能不能实现这个功能 怎么实现 请高手告知一二 感激不尽

最佳答案

查看完整内容

最简单的,在界面上拖一个按钮,然后进入它的单击信号槽,更改为下面的代码: void MainWindow:n_pushButton_clicked() { setStyleSheet(QString("background-color:rgb(%1,%2,%3)").arg(qrand()%255).arg(qrand()%255).arg(qrand()%255)); } 这样每次按按钮颜色都不一样。 关于随机数:http://www.qter.org/forum.php?mod=viewthread&tid=25
回复

使用道具 举报

累计签到:1569 天
连续签到:1 天
2013-10-1 16:56:30 显示全部楼层
最简单的,在界面上拖一个按钮,然后进入它的单击信号槽,更改为下面的代码:

void MainWindow::on_pushButton_clicked()
{
    setStyleSheet(QString("background-color:rgb(%1,%2,%3)").arg(qrand()%255).arg(qrand()%255).arg(qrand()%255));
}

这样每次按按钮颜色都不一样。

关于随机数:http://www.qter.org/forum.php?mod=viewthread&tid=25
回复

使用道具 举报

累计签到:114 天
连续签到:1 天
2013-10-1 18:00:04 显示全部楼层
先定义几个颜色到枚举里
然后点一下就随机取出一个颜色 并且与现在的颜色做比较 如果不一致就替换当前背景颜色 如果一致就继续随即
应该不难吧
回复

使用道具 举报

累计签到:4 天
连续签到:1 天
2013-10-2 10:28:08 显示全部楼层
Marvelous 发表于 2013-10-1 18:00
先定义几个颜色到枚举里
然后点一下就随机取出一个颜色 并且与现在的颜色做比较 如果不一致就替换当前背景 ...

非常感谢您的回答,能说的详细一点吗?我是一个新手,感激不尽啊!
回复

使用道具 举报

累计签到:4 天
连续签到:1 天
2013-10-9 13:18:03 显示全部楼层
yafeilinux 发表于 2013-10-2 11:14
最简单的,在界面上拖一个按钮,然后进入它的单击信号槽,更改为下面的代码:

void MainWindow:n_pushBu ...

真的谢谢您的回答  学习了 再次感谢您
回复

使用道具 举报

累计签到:4 天
连续签到:1 天
2013-10-9 13:28:07 显示全部楼层
snowingiqing 发表于 2013-10-9 13:18
真的谢谢您的回答  学习了 再次感谢您

再问您一下,比如我设定5种颜色  点一下变成下一个  依此类推  这样怎么实现呢?


还有如果我想让整个背景边颜色的话应该怎么写呢?
回复

使用道具 举报

累计签到:1569 天
连续签到:1 天
2013-10-9 21:02:47 显示全部楼层
snowingiqing 发表于 2013-10-9 13:28
再问您一下,比如我设定5种颜色  点一下变成下一个  依此类推  这样怎么实现呢?

5个颜色,可以设置五个颜色变量,和一个计数器,每次换一个颜色,然后计数。这个自己应该可以想到怎么实现的。


整个背景是什么意思?
回复

使用道具 举报

累计签到:4 天
连续签到:1 天
2013-10-10 10:32:43 显示全部楼层
yafeilinux 发表于 2013-10-9 21:02
5个颜色,可以设置五个颜色变量,和一个计数器,每次换一个颜色,然后计数。这个自己应该可以想到怎么实 ...

是个黑色的主屏幕,我点一下按钮主屏幕就会变成另外一种颜色。总有5种颜色,依次变换。

您应该用过鲁大师吧  就比如里面的屏幕坏点测试程序类似,向您请教。
回复

使用道具 举报

累计签到:1569 天
连续签到:1 天
2013-10-10 11:32:22 显示全部楼层
snowingiqing 发表于 2013-10-10 10:32
是个黑色的主屏幕,我点一下按钮主屏幕就会变成另外一种颜色。总有5种颜色,依次变换。

您应该用过鲁大 ...

你的意思是软件界面全屏显示然后更改颜色呢,还是设置一个另外的界面让其全屏显示呢。


你可以描述下软件到底是干什么的,不然很难了解你的目的。
回复

使用道具 举报

累计签到:4 天
连续签到:1 天
2013-10-10 11:42:46 显示全部楼层
yafeilinux 发表于 2013-10-10 11:32
你的意思是软件界面全屏显示然后更改颜色呢,还是设置一个另外的界面让其全屏显示呢。

这样跟您说吧,我在一个开发板上测试一下液晶屏,需要让它变换5种颜色,
回复

使用道具 举报

累计签到:1569 天
连续签到:1 天
2013-10-10 14:51:36 显示全部楼层
snowingiqing 发表于 2013-10-10 11:42
这样跟您说吧,我在一个开发板上测试一下液晶屏,需要让它变换5种颜色, ...

最简单的这样就可以显示:

label = new QLabel;
    label->setStyleSheet(QString("background-color: red"));
    label->showFullScreen();
    label->show();
参与人数 1人气 +1 收起 理由
snowingiqing + 1 对我帮助很大!

查看全部评分总评分 : 人气 +1

回复

使用道具 举报

累计签到:2 天
连续签到:1 天
2013-10-10 15:31:31 显示全部楼层
我觉得可以这样
void MainWindow:n_pushButton_2_clicked()
{
    static QString colorString = "red,green,black,blue";
    static int index = 0;
    QStringList colors = colorString.split(",");
    int len = colors.length();
    setStyleSheet(QString("background-color:%1").arg(colors[index%len]));
    index++;
}
参与人数 1人气 +1 收起 理由
snowingiqing + 1 对我帮助很大!

查看全部评分总评分 : 人气 +1

回复

使用道具 举报

累计签到:4 天
连续签到:1 天
2013-10-11 13:10:57 显示全部楼层
凡人修仙记 发表于 2013-10-10 15:31
我觉得可以这样
void MainWindow:n_pushButton_2_clicked()
{

您好,谢谢您的回答,您这个还是更改了按钮的颜色,我想改变的是主屏幕的颜色, 主屏幕上有一个按钮,按一下主屏幕颜色就会变更。
回复

使用道具 举报

累计签到:4 天
连续签到:1 天
2013-10-11 13:12:04 显示全部楼层
yafeilinux 发表于 2013-10-10 14:51
最简单的这样就可以显示:

label = new QLabel;

您说的这些需要写在哪呢? 说明白点吧,谢谢您了。
回复

使用道具 举报

累计签到:4 天
连续签到:1 天
2013-10-11 16:56:44 显示全部楼层
请会的告知一二,谢谢了 我是新手 正在学习Qt中
回复

使用道具 举报

累计签到:1569 天
连续签到:1 天
2013-10-11 17:41:55 显示全部楼层
snowingiqing 发表于 2013-10-11 13:12
您说的这些需要写在哪呢? 说明白点吧,谢谢您了。

写在按钮的槽函数里面。点击按钮就弹出这个显示了颜色的Label,然后可以使用定时器更换Label的显示颜色。

至于怎么切换你说的那几个颜色,可以使用你上面提到的方法,只要能实现即可。

怎么使用定时器可以看:http://www.qter.org/forum.php?mod=viewthread&tid=25
回复

使用道具 举报

累计签到:4 天
连续签到:1 天
2013-10-12 13:14:34 显示全部楼层
yafeilinux 发表于 2013-10-11 17:41
写在按钮的槽函数里面。点击按钮就弹出这个显示了颜色的Label,然后可以使用定时器更换Label的显示颜色。 ...

恩好的,一会我就试一下,谢谢您的耐心解答
回复

使用道具 举报

累计签到:4 天
连续签到:1 天
2013-10-15 13:35:55 显示全部楼层
凡人修仙记 发表于 2013-10-10 15:31
我觉得可以这样
void MainWindow:n_pushButton_2_clicked()
{

您好,按照您的方法实现了这个功能,谢谢您的耐心解答。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了