Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/156.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/160.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何访问添加到此Qt示例中的QLineEdit小部件?_C++_Qt - Fatal编程技术网

C++ 如何访问添加到此Qt示例中的QLineEdit小部件?

C++ 如何访问添加到此Qt示例中的QLineEdit小部件?,c++,qt,C++,Qt,我在信号和插槽上遵循了这个Qt,包括删除可以在Qt Designer中自动建立的连接的部分,并在mainwindow.cpp中手动键入connect函数。我想在移动教程的QSlider更改我添加的QLineEdit的位置创建自己的槽,所以我这样做了: 我在Qt设计器中的mainwindow.ui中添加了一个名为lineEdit的QLineEdit小部件 在MainWindow.h中的MainWindow类定义中,我将其添加到类的底部 public slots: void changeLine

我在信号和插槽上遵循了这个Qt,包括删除可以在Qt Designer中自动建立的连接的部分,并在mainwindow.cpp中手动键入
connect
函数。我想在移动教程的
QSlider
更改我添加的
QLineEdit
的位置创建自己的槽,所以我这样做了:

  • 我在Qt设计器中的
    mainwindow.ui
    中添加了一个名为
    lineEdit
    QLineEdit小部件
  • MainWindow.h
    中的
    MainWindow
    类定义中,我将其添加到类的底部

    public slots:
      void changeLineEdit() {
      ui->lineEdit->setText("Value was changed");
    }
    
  • 在MainWindow.cpp中的
    MainWindow
    构造函数中,我添加了以下内容:(
    ui->horizontalSlider
    是教程中制作的QSlider。)

  • 当我试图构建项目时,我遇到了9个错误,其中一个是“使用未定义类型
    Ui::MainWindow
    ”。我在这次编辑中做错了什么?

    MainWindow
    类定义有一个私有指针
    Ui::MainWindow*Ui
    ,因此,我认为插槽定义将访问
    ui
    指针,从而访问其中包含的
    lineEdit
    小部件。

    如果在标题中实现插槽,请确保在类标题中也包含
    ui::MainWindow
    的标题。通常情况下,我会在
    cpp
    文件中实现我的插槽,但这不是一个要求。

    通常,您会在cpp文件中实现您的插槽。至少我知道。使用未定义类型“Ui::MainWindow”意味着,由于您在头文件中实现了它,您必须在头文件中添加include Ui::MainWindow,而不仅仅是您的cpp文件。@drescherjm噢,我忘了这一点。是的,我在教程中声明了一个
    UI::MainWindow
    ,但是因为我在那里定义了我的插槽,所以我还必须在头文件中包含
    #include“UI\u MainWindow.h”
    ,才能真正初始化它。谢谢,下次我将在.cpp中实现它。我可以接受你的评论作为回答。
    connect(ui->horizontalSlider, SIGNAL(valueChanged(int)), SLOT(changeLineEdit()));