これはおそらく、qt よりも最も精巧な C++ の質問です。しかし、私はこれを2日間行う方法を見つけていました。しかし、これを自分で解決することはできません。この問題について、何人かの専門家が助けてくれることを期待しています。これは私の質問です。
私の Qt アプリケーションには、メイン ウィンドウとダイアログがあります。メインウィンドウとlineEdit_1
ダイアログにありlineEdit_2
ます。メイン ウィンドウに pushButton があり、それを押すとダイアログが表示されます。しかし、メイン ウィンドウの lineEdit_1 にテキストを入力する必要があり、pushButton が押されたときに、そのテキストを 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:
}
mydialog.h に追加しないと、#include"mainwindow.h"
エラーなしでコンパイルされます。しかし、コードを追加すると、コンパイラはerror: ISO C++ forbids declaration of 'newMember' with no type
行にエラーを出しますmydialog *dia;
#include"mainwindow.h"
mydialog.hに追加したいので、ポインターを宣言MainWindow *blh;
して、メインウィンドウにテキストを取得できます。
QString str=blh->lineEdit_1->text();
これは正しいですか、それとも何か間違っていますか。誰かが私にアドバイスをくれるか、間違いを指摘してください。これどうやってするの。
ありがとうございました...