请问,如果spinBox微调框发生值的变化,slider滑块又是如何知道spinBox的值呢?

QObject::connect(spinBox,SIGNAL(valueChanged(int)),slider,SLOT(setValue(int)));
spinbox是QSpinBox的一个指针,slider是QSlider的一个指针,它们之前都初始化过了.

慕容森
浏览 140回答 3
3回答

偶然的你

你上上面已经用了QObject::connect(spinBox,SIGNAL(valueChanged(int)),slider,SLOT(setValue(int)));它就可以让spinBox和slider建立连接啊,当spinBox的值改变的时候slider的值也会随之改变,其实valueChanged(int)是一个信号函数,你也可以自己发出一个信号,比如你可以让spinBox发出一个valueChanged(int)信号,这样slider的值也会改变,像这样emit spinBox->spinBox(5);你会看到slider的值也改变了。这是因为你让它们建立了连接(用了QObject::connect(spinBox,SIGNAL(valueChanged(int)),slider,SLOT(setValue(int)));)你自己也可以在头里建立一个信号函数,自己设置信号,用emit发出信号。

慕丝7291255

void QSpinBox::valueChanged ( int i ) [signal]This signal is emitted whenever the spin box's value is changed. The new value's integer value is passed in i.当spin box的值发生改变时,这个信号将被发送。spin box的最新值将通过参数i传递。value : intThis property holds the slider's current value.The slider forces the value to be within the legal range: minimum <= value <= maximum.Changing the value also changes the sliderPosition.这个属性为slider的当前值,slider将强制该值在最小值和最大值之间的合法范围内。slider的滑动块位置将与这个值的改变而同步改变。Access functions:int value () constvoid setValue ( int )Notifier signal:通知信号:void valueChanged ( int value )设置范围可以使用 setRange ( int min, int max )设置步调可以使用 setSingleStep ( int )PS: The Best Way to learn QT is assistant。

当年话下

产生 QSpinBox::valueChanged 信号后, 会自动调用相连的槽 QSlider::setValue, 通过参数传递值
打开App,查看更多内容
随时随地看视频慕课网APP