在toolbox中,自动生成了好几个page按钮,在每个page按钮中,有动态生成几个checkbox,请问大家我随意选中其中的一个page中的checkbox
在toolbox中,自动生成了好几个page按钮,在每个page按钮中,有动态生成几个checkbox,请问大家我随意选中其中的一个page中的checkbox,而在这个page中的其他的checkbox都会自动选上,请教大家,用什么方法实现??谢谢! --------------------编程问答-------------------- 所有的都connect到一个槽,然后在槽内将所有的都设置为选中。题外:要求太少,具体做法过多。以上供参考,以下供阅读:
http://www.beiww.com/doc/oss/smart-questions.html --------------------编程问答-------------------- 在toolbox中,自动生成了好几个page按钮。
在每个page按钮中,有动态生成几个checkbox。
随意选中其中的一个page中的checkbox,而在这个page中的其他的checkbox都会自动选上,
用什么方法实现??
假设QCheckBox型的page按钮有pageA、pageB、pageC......
1、怎么知道一个按钮被选中了,然后做某些操作?
由于QCheckBox都是继承了QAbstractButton类,这个QAbstractButton是按钮的虚基类。
有一个信号是
void QAbstractButton::clicked ( bool checked = false ) [signal]
英文描述中有这么一句
If the button is checkable, checked is true if the button is checked,
or false if the button is unchecked.
就是说按钮点击时,会发射clicked信号。假如这个按钮点下,而且被选中了,就会发射clicked(true)。
所以你可以这么写插槽函数AButtonSlot连接到pageA按钮的clicked信号上。
QObject::connect( pageA , SIGNAL( clicked(bool)) , this , SLOT( AButtonSlot()) );
void AButtonSlot(bool b)
{
if( b )
{
////这个按钮被选中了,要做什么呢?看你的需求
}
}
2、多个按钮同时选中
刚才已经说了pageA的clicked信号连接到某个插槽上,实现pageA的操作。
实际上,可以连接一个信号到多个插槽。也可以连接多个信号到一个插槽。甚至,可以信号连信号。
分成两种思路吧,
N信号N插槽,就是说
pageA的clicked信号连接到AButtonSlot,pageB的clicked信号连接到BButtonSlot,pageC的clicked信号连接到CButtonSlot,
最后要把pageA的clicked信号连接到pageB的clicked信号和pageC的clicked信号,实现信号并联触发。
N信号1插槽,就是说
pageA的clicked信号连接到ButtonSlot,pageB的clicked信号连接到ButtonSlot,pageC的clicked信号连接到ButtonSlot,
void ButtonSlot( bool b)
{
if( b )
{
/////某个按钮被选中了,其他都要中。
pageA.setCheck(true);
pageB.setCheck(true);
pageC.setCheck(true);
}
}
补充:移动开发 , Qt