如何重写Qt自带的函数,Q_D(QWidget)是做什么用的?

发布时间:2024-05-18 11:45 发布:上海旅游网

问题描述:

遇到一个很棘手但又很有意义的问题:我想把checkBox和其他控件如pushButton的可用性(enable)联系起来,通过信号槽机制来实现交互。但是checkBox的信号stateChanged()的参数是int型,取值为012,而一般的setEnabled()函数的参数是bool型的,所以我最终想到了重载函数void QWidget::setEnabled(bool enable)为void QWidget::setEnabled(int state),重载的代码实现如下(理论上可以正常工作的):
void QWidget::setEnabled(int state)
{
if(Qt::Checked==state){
this->setEnabled(true);
}
else if(Qt::Unchecked==state)
{
this->setEnabled(false);
}
}
求助高手指点该如何设置,或者详细说明一下其他的可行的办法!谢谢!

问题解答:

不明白你要做什么,直接写个slot接收stateChanged(),然后把需要改变enable的都改了不就得了

热点新闻