QObject::connect(slider, &QSlider::valueChanged, spinBox, &QSpinBox::setValue);
QObject::connect(slider, &QSlider::valueChanged, spinBox, &QSpinBox::setValue);
QObject::connect(spinBox, &QSpinBox::valueChanged, slider, &QSlider::setValue);
no matching function for call to ‘QObject::connect(QSpinBox*&, <unresolved overloaded function type>, QSlider*&, void (QAbstractSlider::*)(int))‘
QObject::connect(spinBox, &QSpinBox::valueChanged, slider, &QSlider::setValue);
no matching function for call to ‘QObject::connect(QSpinBox*&, <unresolved overloaded function type>, QSlider*&, void (QAbstractSlider::*)(int))‘
从QSpinBox
的文档发现,QSpinBox
的确有两个信号:
void (QSpinBox:: *spinBoxSignal)(int) = &QSpinBox::valueChanged;
然后我们将这个函数指针作为 signal,与 QSlider 的函数连接:
QObject::connect(spinBox, spinBoxSignal, slider, &QSlider::setValue);
void (QSpinBox:: *spinBoxSignal)(int) = &QSpinBox::valueChanged;
然后我们将这个函数指针作为 signal,与 QSlider 的函数连接:
QObject::connect(spinBox, spinBoxSignal, slider, &QSlider::setValue);
2.下面的代码,我们创建了一个QHBoxLayout
对象。显然,这就是一个布局管理器。然后将这两个组件都添加到这个布局管理器,并且把该布局管理器设置为窗口的布局管理器。这些代码看起来都是顺理成章的,应该很容易明白。并且,布局管理器很聪明地做出了正确的行为:保持QSpinBox
宽度不变,自动拉伸QSlider
的宽度。
Qt 提供了几种布局管理器供我们选择:
QHBoxLayout
:按照水平方向从左到右布局;QVBoxLayout
:按照竖直方向从上到下布局;QGridLayout
:在一个网格中进行布局,类似于 HTML 的 table;QFormLayout
:按照表格布局,每一行前面是一段文本,文本后面跟随一个组件(通常是输入框),类似 HTML 的 form;QStackedLayout
:层叠的布局,允许我们将几个组件按照 Z 轴方向堆叠,可以形成向导那种一页一页的效果。原文:https://www.cnblogs.com/LyndonMario/p/9326278.html