【发布时间】:2012-12-23 17:41:57
【问题描述】:
这可能是一个比 qt 更具探索性的 c++ 问题。但我正在寻找一种方法来做到这一点 2 天。但我无法解决这个问题。我希望一些专家在这个问题上提供帮助。这是我的问题。
在我的 Qt 应用程序中,我有一个主窗口和一个对话框。在主窗口中有lineEdit_1,在对话框中有lineEdit_2。在主窗口中,我有一个按钮,一旦按下,对话框就会出现。但是我需要在主窗口的 lineEdit_1 中键入一些文本,并且当按下按钮时,我需要对话框在它的 lineEdit_2 中显示该文本。这就是我尝试这样做的方式。我会非常感谢任何建议。
主窗口.h
#include"mydialog.h"
class MainWindow : public QMainWindow, private Ui::MainWindow
{
Q_OBJECT
private:
mydialog *dia;
public:
MainWindow(QWidget *parent = 0);
public slots:
void showMyDialog();
}
主窗口.cpp
#include"mainwindow.h"
MainWindow::MainWindow(QWidget *parent)
{
setupUi(this);
connect(pushButton,SIGNAL(clicked()),this,SLOT(showMyDialog()) );
}
void MainWindow::showMyDialog(){
dia=new mydialog(this);
dia->exec();
}
mydialog.h
#include"mainwindow.h"
class mydialog : public QDialog, private Ui::mydialog
{
Q_OBJECT
public:
mydialog(QWidget *parent );
MainWindow *blh;
public slots:
}
如果我不添加 #include"mainwindow.h" 在 mydialog.h 中,则编译不会出错。但是就像我添加它时的代码一样,编译器在mydialog *dia;行中给出了错误error: ISO C++ forbids declaration of 'newMember' with no type
我想在 mydialog.h 中添加 #include"mainwindow.h" 因为然后我可以将指针声明为 MainWindow *blh; 并通过
QString str=blh->lineEdit_1->text();
这是正确的还是我做错了什么。请有人给我建议,或指出任何错误。我怎样才能做到这一点。
谢谢...
【问题讨论】: