/*
author:wkathy
date:201208
*/
#include "mydialog.h"
#include "ui_mydialog.h"
#include "QSpinBox"
myDialog::myDialog(QWidget *parent) :
QDialog(parent),
ui(new Ui::myDialog)
{
ui->setupUi(this);
connect(ui->pbclose,SIGNAL(clicked()),this,SLOT(close()));
//设置数值范围
ui->hslider->setRange(1,100);
ui->spinbox->setRange(1,100);
//设置两个部件之间值保持同步
connect(ui->hslider,SIGNAL(valueChanged(int)),ui->spinbox,SLOT(setValue(int)));
connect(ui->spinbox,SIGNAL(valueChanged(int)),ui->hslider,SLOT(setValue(int)));
}
myDialog::~myDialog()
{
delete ui;
}
//第0个窗口,无法出现,因为dwin0是局部变量,函数结束即释放空间
void myDialog::on_pb0_clicked()
{
myDialog2 dwin0;
dwin0.show();
}
//第1个窗口,声明了QDialog对象,代码方式设计窗口部件,将新窗口中QSpinBox系统定义信号与本类的槽函数连接
void myDialog::on_pb1_clicked()
{
dwin1=new QDialog;
QSpinBox * spinbox=new QSpinBox(dwin1);
spinbox->setRange(1,100);
spinbox->setGeometry(0,0,100,50);
connect(spinbox,SIGNAL(valueChanged(int)),this,SLOT(slotsetvalue(int)));
dwin1->show();
}
//第2个窗口,新建界面类myDialog2,使用设计器设计窗口,将新窗口的自定义信号与本类槽函数连接
void myDialog::on_pb2_clicked()
{
dwin2=new myDialog2;
connect(dwin2,SIGNAL(signalrand(int)),this,SLOT(slotsetvalue(int)));
dwin2->show();
}
//槽函数,根据收到的值设置QSpinBox与slider的值
void myDialog::slotsetvalue(int v)
{
ui->hslider->setValue(v);
ui->spinbox->setValue(v);
}