Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > [qt4] comboBox


Автор: pycha 22.3.2009, 14:11
драсте. У меня вот есть вот такая проблема. Надо связать комбобокс с stackedWidget. чтобы выбраный в комбококсе пункт менял активный виджет  в stackedWidget. Чтото не пойму как сделать это правильно. Вот что я сделал.
Код

#include <QtGui>
#include "vvod.h"

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{
    setupUi(this);

    connect(yazikcomboBox, SIGNAL(currentIndexChanged()), this , SLOT(smenaWidgeta()));
}

void MainWindow::smenaWidgeta()
{
    int vibor;
    vibor = yazikcomboBox->currentIndex();
    if (vibor == -1)
        stackedWidget->setCurrentIndex(0);
    else
        stackedWidget->setCurrentIndex(vibor);
    QMessageBox::information(this, "smenaWidgeta", "tada",
                QMessageBox::Ok,QMessageBox::NoButton);
}


для проверки вызывается ли этот слот туда всунул месаджбокс . Он не вызывается. Растолкуйте пожалуста что я сделал не так

Автор: Acer 22.3.2009, 14:13
Код

#include <QtGui>
#include "vvod.h"
MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{
    setupUi(this);
    connect(yazikcomboBox, SIGNAL(currentIndexChanged(int)), this , SLOT(smenaWidgeta(int)));
}
void MainWindow::smenaWidgeta(int vibor)
{
    if (vibor == -1)
        stackedWidget->setCurrentIndex(0);
    else
        stackedWidget->setCurrentIndex(vibor);
    QMessageBox::information(this, "smenaWidgeta", "tada",
                QMessageBox::Ok,QMessageBox::NoButton);
}


Добавлено через 4 минуты и 7 секунд
Код

void QComboBox::currentIndexChanged ( int index );

посылает в слот выбранный индекс. Потому, в качестве параметра нужно писать тип посылаемого значения, в данном случае int

Автор: pycha 22.3.2009, 14:26
заработало, спасибо за помощь, с меня +

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)