如何在SLOT中链接特定功能

时间:2019-06-21 08:51:20

标签: c++ qt qt5

这是我的Wavefrontrenderer类。

Class WavefrontRenderer : public QMainWindow , private 
 Ui::WavefrontRendererClass
{
Q_OBJECT
//Q_PROPERTY( QColor m_color READ m_color NOTIFY colorChanged)

 public:

 WavefrontRenderer(TreeModel* model , QWidget *parent = Q_NULLPTR);
 void iterate(const QModelIndex & index, const QAbstractItemModel * model);
 void render();
 void RenderTreeElement(QModelIndex index); 

 private:
//Ui::WavefrontRendererClass ui;
TextureManager textureManager;
TextureManagerCubeMap textureManagerCubeMap;
QColor  m_color;
void FillComboBox();

 private slots:
  void PositionXYZ();

};

///////////////////////////////////////////////// ////////////////////////////////

 WavefrontRenderer::WavefrontRenderer(TreeModel* model , QWidget *parent) : 
 QMainWindow(parent)
 {
  setupUi(this);
  treeView->setModel(model);
  treeView->setDragEnabled(true);
  treeView->setAcceptDrops(true);
  treeView->installEventFilter(this);
  connect(doubleSpinBoxPositionX, SIGNAL(valueChanged(double)), this , 
  SLOT(PositionXYZ()));

   }

///////////////////////////////////////////////// ////////////////////////////////

我正在运行时从另一个类创建控件,然后将Wavefrontrenderer类作为指针传递给该类。

void Container::CreateUI(QHBoxLayout* layout)
 {
    wavefrontrenderer // Pointer defined as a private member    
    QDoubleSpinBox *PositionXSpinBox = new QDoubleSpinBox;
    PositionXSpinBox->setRange(-10000, 10000);
    PositionXSpinBox->setSingleStep(.1);
    PositionXSpinBox->setValue(x);
    layout->addWidget(PositionXSpinBox);
    bool ok = QObject::connect(PositionXSpinBox, 
    SIGNAL(valueChanged(double)), wavefrontrenderer , SLOT(print()));
    qDebug() << "The  slot is connected =" << ok;

}

我已将print定义为Container类中的公共插槽成员。

问题是连接尝试在WavefrontRenderer类而不是Container类中定位print()函数。

如何建立连接调用Container类的print()函数。

0 个答案:

没有答案