メインクラスのMainWindowには、アプリケーションのダウンロード時に各ボタンにsetEnabled( "false")を設定するメソッドがあります。他のクラス「ダウンロード」では、ダウンロードを担当するメソッドがあります。このようなsthがありif ( uRet == S_OK )
、ダウンロード後に各ボタンにsetEnable( "true")を設定したいのですが、このif()でMainWindowからメソッドを実行できません。 "。
ダウンロードクラスのMainWindowクラスからメソッドを実行する方法、またはダウンロードクラスのこれらのボタンを参照する方法。
edit://信号を発する必要があります
class downloaded : public QObject
{
Q_OBJECT
public:
void test3();
signals:
void changeEnabled();
};
void downloaded::test3(){
emit changeEnabled();
}
class MainWindow : public QMainWindow{
Q_OBJECT
public:
...
public slots:
void ONchangeEnabled();
}
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
downloaded test_object;
connect(&test_object, SIGNAL(changeEnabled() ), this, SLOT(ONchangeEnabled() ) );
ui->setupUi(this);
setupUI();
}
void MainWindow::ONchangeEnabled(){
ui->actionDL->setEnabled(true);
}
そして、私が持っているファイルをダウンロードする機能では、そのようなものがあります。
downloaded obiekt;
...
if ( uRet == S_OK )
{
obiekt.test3(); return 0;
}
else {
obiekt.test3(); return 1;
}
しかし、何も起こりません、私が間違っていることは何ですか。