• 6163阅读
  • 5回复

[提问]自己写的日历,字符串转为变量名 [复制链接]

上一主题 下一主题
离线hanqiu
 

只看楼主 倒序阅读 楼主  发表于: 2016-12-14
自己写了个日历,如图。

这上面有42个记录日期的label,名字分别item_0到item_41,每次改变label的颜色,或者初始化label就需要写42次,请问一下有没有方法像下面这样调用
for(int i = 0; i < 42; i ++)
{
     QString str = QString("item_%1").arg(i);
     怎么用字符串来调用变量呢?
}
离线nigoole

只看该作者 1楼 发表于: 2016-12-15
用数组撒~~
有句话说得好:好好学习,天天向上。加油~~!有上船的朋友联系企鹅393320854
离线zhuifengwy

只看该作者 2楼 发表于: 2016-12-15
将这42个label 设置一个统一的属性 setProperty(x),然后通过qss样式表配置好其不同状态下的颜色,来统一控制 。最后想要更改的时候 通过调用setProperty,使能你刚才的自定义属性即可。

或者将这42个label放到一个frame里面,然后通过类似下面的语句进行设定
QList<QLabel *> btns = ui->frame_main->findChildren<QLabel *>();
       foreach (QLabel * b, btns) {
           b->setStyleSheet(x);
       }
离线nigoole

只看该作者 3楼 发表于: 2016-12-15
有句话说得好:好好学习,天天向上。加油~~!有上船的朋友联系企鹅393320854
离线hanqiu

只看该作者 4楼 发表于: 2016-12-15
回 zhuifengwy 的帖子
zhuifengwy:将这42个label 设置一个统一的属性 setProperty(x),然后通过qss样式表配置好其不同状态下的颜色,来统一控制 。最后想要更改的时候 通过调用setProperty,使能你刚才的自定义属性即可。
或者将这42个label放到一个frame里面,然后通过类似下面的语句进行设定
QList<QLabel .. (2016-12-15 08:27) 

谢谢 我按照您说的方法修改好了 谢谢
离线hanqiu

只看该作者 5楼 发表于: 2016-12-15
回 nigoole 的帖子
nigoole:可以参考我的这个例子:
http://www.qtcn.org/bbs/read-htm-tid-60919-ds-1.html#tpc (2016-12-15 09:01) 

谢谢
快速回复
限100 字节
 
上一个 下一个