All pastes #926551 Raw Edit

Stuff

public text v1 · immutable
·published 2008-03-03 19:15 UTC
rendered paste body
#include <QApplication>
#include <string.h>
#include <QFont>
#include <QGridLayout>
#include <QLCDNumber>
#include <QPushButton>
#include <QSlider>
#include <QVBoxLayout>
#include <QWidget>
#include <QComboBox>
#include <QString>
#include <QLabel>
#include <QStyle>
#include <QCleanlooksStyle>
#include <stdio.h>

#include "channel.h"


ADC::ADC(QWidget *parent)
	: QWidget(parent)
{
	QLCDNumber *lcd = new QLCDNumber(8);
	lcd->setSegmentStyle(QLCDNumber::Flat);
	lcd->display(2.568001);

	QLabel *unit = new QLabel();
	unit->setText(" Volts");

	QHBoxLayout *layout = new QHBoxLayout;
	layout->addWidget(lcd);
	layout->addWidget(unit);
	setLayout(layout);
}

Choice::Choice(int val, QWidget *parent)
	: QWidget(parent)
{
	QLabel *label = new QLabel(this);
	label->setText("Channel " + QString::number(val) + " : ");

	combo = new QComboBox(this);
	combo->addItem("In");
	combo->addItem("Out");
	combo->addItem("ADC");
	
	QHBoxLayout *layout = new QHBoxLayout;
	layout->addWidget(label);
	layout->addWidget(combo);
	setLayout(layout);

	connect(combo, SIGNAL(currentIndexChanged(int)),this, SIGNAL(currentIndexChanged(int)));
}

Data::Data(QWidget *parent)
	: QWidget(parent)
{
	widg = new QWidget(this);
	adc = new ADC();
 	lcd = new QLCDNumber(1);

	widg = lcd;
}

Channel::Channel(int n,QWidget *parent)
: QWidget(parent)
{
	
	Choice *choice = new Choice(n,this);
	Data *data = new Data(this);

	QHBoxLayout *chlay = new QHBoxLayout;

	chlay->addWidget(choice);
	chlay->addWidget(data);
	setLayout(chlay);

	connect(choice, SIGNAL(currentIndexChanged(int)),data, SLOT(DataUpdate(int)));

}

MyWidget::MyWidget(QWidget *parent)
: QWidget(parent)
{
	QPushButton *quit = new QPushButton(tr("Quit"));
	quit->setFont(QFont("Times", 18, QFont::Bold));
	connect(quit, SIGNAL(clicked()), qApp, SLOT(quit()));
	
	QVBoxLayout *lay = new QVBoxLayout;

	for (int row=0;row<8;row++){
		Channel *ch = new Channel(row,this);
		lay->addWidget(ch);
	}
	
	QVBoxLayout *layout = new QVBoxLayout;
	layout->addWidget(quit);
	layout->addLayout(lay);
	setLayout(layout);
}

void Data::DataUpdate(int value)
{
	if(value == 2)
		widg = adc;
	else
		widg = lcd;

	lcd->display(value);
	Data::update();
}

int main(int argc, char *argv[])
{
	QStyle *stylea = new  QCleanlooksStyle();

	QApplication app(argc, argv);
	
	app.setStyle(stylea);
	MyWidget widget;
	widget.show();

	return app.exec();
}