在主类 MainWindow 中,当应用程序下载时,我有为每个按钮设置 setEnabled("false") 的方法。在其他类“下载”中,我有负责下载的方法。有这样的东西if ( uRet == S_OK )
,下载后我想为每个按钮设置setEnable(“true”),但我不能在这个if()中从MainWindow运行方法,因为我得到“QWidget:必须在QPaintDevice之前构造一个QApplication ”。
如何从下载类中的 MainWindow 类运行该方法,或参考下载类中的这些按钮。
编辑://我需要发出信号
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;
}
但是什么也没发生,我做错了什么。