crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

4 страниц V  « < 2 3 4  
Ответить в данную темуНачать новую тему
> Не могу разобраться с combobox и QpushButton, Как сделать кнопочку автивно при выборе элемента?
Litkevich Yuriy
  опции профиля:
сообщение 28.12.2008, 13:54
Сообщение #31


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(Andrewshkovskii @ 28.12.2008, 16:03) *
что насчет примера?
щас накидаю
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 28.12.2008, 14:41
Сообщение #32


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


В этой программе два окошка, одно наследник QDialog. А второе просто для демонстрации работы самодельного сигнала.
main.cpp

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

int main(int argc, char *argv[])
{
  QApplication     app(argc, argv);
    // Устанавливаем кодеки
    QTextCodec::setCodecForCStrings(QTextCodec::codecForLocale());
    QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8")); // Для функций перевода tr()

  CTest        wgt;// основной виджет
  QLabel   ctrlwgt;// виджет для контроля
  
    // Соеденяем самодельный сигнал самодельного виджета
    // со стандартным слотом метки (QLable)
    QObject::connect(&wgt, SIGNAL(sigChange(int)), &ctrlwgt, SLOT(setNum(int)));
    
    // т.к. оба неимеют родителя - виджеты верхнего уровня
    // надо обоим сказать, чтобы появились
    ctrlwgt.show();
    wgt.show();
    
    return app.exec();
}


class.h

#ifndef CLASS_H
#define CLASS_H

#include <QDialog>

class QComboBox;
class QPushButton;

class CTest: public QDialog
{
    Q_OBJECT

public:
    CTest(QWidget *parent = 0);

signals:
    void sigChange(int);

private:
    QComboBox        *cb;
    QPushButton        *btn;
    
private slots:
    void slotComboChange(int);
};

#endif //CLASS_H


class.cpp

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

CTest::CTest(QWidget *parent):QDialog(parent)
{
  QStringList    list;
  QVBoxLayout    *lay = new QVBoxLayout;

    cb = new QComboBox(this);
    list << " " << "profile 1" << "profile 2" << "profile 3" << "profile 4" << "profile 5";
    cb->addItems(list);
    connect(cb, SIGNAL(currentIndexChanged(int)), this, SLOT(slotComboChange(int)));

    btn = new QPushButton(this);
    btn->setText(tr("Тык"));
    
    lay->addWidget(cb);
    lay->addWidget(btn);
    
    this->setLayout(lay);


    qDebug() << "QComboBox is visible? " << cb->isVisible();

}

void CTest::slotComboChange(int idx)
{
qDebug() << "Curent index=" << idx;
    
    // посылаем самодельный сигнал,
    // передавая в качестве параметра текущий индекс выпадающего списка
    emit sigChange(idx);

}



да кодировка файлов UTF-8, поэтому setCodecForTr имеет такое значение. если у тебя другая - исправь
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

4 страниц V  « < 2 3 4
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 20.4.2024, 10:38