当我在connect槽函数对象时 输入md->getui() 后 并不会出现dial 这是怎么回事
时间: 2024-04-16 20:26:32 浏览: 31
根据您提供的代码,我注意到 `md->getui()` 返回的是 `Ui::MyDialog` 的指针,而不是 `MyDialog` 对象的指针。因此,您无法直接访问 `dial` 对象。
要解决这个问题,您可以修改 `MyDialog` 类,使其提供访问 `dial` 对象的方法。以下是一个修改的示例:
```cpp
#ifndef MYDIALOG_H
#define MYDIALOG_H
#include <QDialog>
#include <QDial> // 添加 QDial 头文件
namespace Ui {
class MyDialog;
}
class MyDialog : public QDialog
{
Q_OBJECT
public:
explicit MyDialog(QWidget *parent = 0);
~MyDialog();
QDial* getDial(); // 添加获取 dial 对象的方法
private:
Ui::MyDialog *ui;
};
#endif // MYDIALOG_H
```
在上述修改后的代码中,我添加了一个名为 `getDial()` 的公有方法,用于返回 `dial` 对象的指针。
然后,在 `Dialog` 类中的连接语句中,您需要调用 `md->getDial()` 方法来获取 `dial` 对象的指针。修改后的连接语句如下所示:
```cpp
connect(ui->dial, SIGNAL(valueChanged(int)), md->getDial(), SLOT(setValue(int)));
```
通过这样的修改,您应该能够在连接槽函数时正确地访问到 `dial` 对象。
希望这可以解决您的问题!如果您还有其他疑问,请随时提问。