在Qt中隐藏并显示带有QComboBox的lineEdit

时间:2013-11-29 23:20:24

标签: c++ qt

我需要创建适用于数据库的应用程序,我需要将QCombobox与lineEdits(1,2,3)连接起来。我有QComboBox有两个项目(1,2),我想在更改为项目2时隐藏lineEdits(2,3)。当我改回项目1时,我想显示lineEdits(2,3)并隐藏lineEdit有人可以帮帮我吗? :-)谢谢

1 个答案:

答案 0 :(得分:0)

您只需将QComboxBox的currentIndexChanged(int index)信号连接到类中的插槽,然后隐藏/显示QLineEdit,具体取决于索引的值。

  QObject::connect(myComboxBox, SIGNAL(currentIndexChanged(int)), 
        this, SLOT(onComboxBoxCurrentIndexChanged(int)));

插槽可以按如下方式实现:

MyClass::onComboxBoxCurrentIndexChanged(int index)
{
  if(index == 0){
    lineEdit1->setVisible(false);
    lineEdit2->setVisible(true);
    lineEdit3->setVisible(true);
  }
  else{
    lineEdit1->setVisible(true);
    lineEdit2->setVisible(false);
    lineEdit3->setVisible(false);
  }
}

请注意,您的类必须是QObject的子类才能使插槽正常​​工作。如果您不知道信号和插槽的工作方式,我建议您先阅读教程。

请参阅http://qt-project.org/doc/qt-4.8/signalsandslots.html