Если вы ищете только языковой перевод, есть и другие способы сделать это в Qt, где вы можете использовать словари для перевода текста пользовательского интерфейса. Взгляните на https://doc.qt.io/qt-5/qtlinguist-hellotr-example.html
Но, похоже, ваш вопрос не предназначен только для языка, поэтому для этого вы можете использовать сигнал currentTextChanged QComboBox и слот, который будет получать текущее значение и обновлять метки на основе этого текста. В качестве альтернативы, если вы не хотите использовать группу ifs, вы можете использовать сигнал currentIndexChanged и использовать переключатель.
В моем файле пользовательского интерфейса у меня есть (4) объектов: comboBox и label1 до 3.
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
ui->comboBox->addItem("Selected Option 1");
ui->comboBox->addItem("Selected Option 2");
ui->comboBox->addItem("Selected Option 3");
connect(ui->comboBox, &QComboBox::currentTextChanged,
this, &MainWindow::setLabelText);
}
void MainWindow::setLabelText(const QString comboText)
{
if(comboText == "Selected Option 1")
{
ui->label1->setText("Text when option 1 is selected");
ui->label2->setText("Text when option 1 is selected");
ui->label3->setText("Text when option 1 is selected");
}
else if(comboText == "Selected Option 2")
{
ui->label1->setText("Text when option 2 is selected");
ui->label2->setText("Text when option 2 is selected");
ui->label3->setText("Text when option 2 is selected");
}
else if(comboText == "Selected Option 3")
{
ui->label1->setText("Text when option 3 is selected");
ui->label2->setText("Text when option 3 is selected");
ui->label3->setText("Text when option 3 is selected");
}
}
В своем заголовке убедитесь, что вы определили setLabeText как slot .
private slots:
void setLabelText(const QString comboText);