• 5443阅读
  • 8回复

【求助】书上第2章关于动态对话框的那个例子 [复制链接]

上一主题 下一主题
离线君寻
 

只看楼主 倒序阅读 楼主  发表于: 2014-05-19
int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    QUiLoader uiLoader;
    QFile file("dynamicDlg.ui");
    QWidget *dynamicDlg = uiLoader.load(&file);

    return app.exec();
}
编译时为啥总有个警告:dynamicDlg未使用??
离线realfan

只看该作者 1楼 发表于: 2014-05-20
就是定义了QWidget *dynamicDlg
但没有任何地方使用dynamicDlg
提示可能定义了一个没用的对象。不会影响程序运行。
离线noidea

只看该作者 2楼 发表于: 2014-05-20
可以使用Q_UNUSED() 来关闭这个警告。
talk in code
Qt5.2.1 + MacOSX10.9
离线君寻

只看该作者 3楼 发表于: 2014-05-20
回 realfan 的帖子
realfan:就是定义了QWidget *dynamicDlg
但没有任何地方使用dynamicDlg
提示可能定义了一个没用的对象。不会影响程序运行。 (2014-05-20 08:30) 

QWidget *dynamicDlg = uiLoader.load(&file);
这里不是用了吗??
而且这程序运行后没有窗口,但任务管理器里有进程,这是怎么回事??
离线realfan

只看该作者 4楼 发表于: 2014-05-21
回 君寻 的帖子
君寻:QWidget *dynamicDlg = uiLoader.load(&file);
这里不是用了吗??
而且这程序运行后没有窗口,但任务管理器里有进程,这是怎么回事?? (2014-05-20 22:35) 

这句只是定义了dynamicDlg这个指针变量。后面没有用到这个变量,所以会有warning.
这段代码并没有显示窗口的语句,当然看不到窗口了。程序在运行,就会有进程。
你在QWidget *dynamicDlg = uiLoader.load(&file);
后面加一句dynamicDlg->show();
试试
离线marlenechen

只看该作者 5楼 发表于: 2017-09-28
书中有一段 说显示扩展对话框的实现,是:在单击more按钮时调用QPushButton中的setText()函数完成。

我写了:
        QObject::connect(moreButton, SIGNAL(clicked()), this, SLOT(isClicked()));

        QObject::connect(moreButton, SIGNAL(toggled(bool)), SecondaryGroupBox, SLOT(setVisible(bool)));
        QObject::connect(moreButton, SIGNAL(toggled(bool)), tertiaryGroupBox, SLOT(setVisible(bool)));

……

void CSortDialog::isClicked()
{
        if (moreButton->text() == "&More>>>")
        {
                moreButton->setText("&More<<<");
        }
        else
        {
                moreButton->setText("&More>>>");
        }
}

点击按钮后,为何没有反应?????
离线marlenechen

只看该作者 6楼 发表于: 2017-09-28
书中有一段 说显示扩展对话框的实现,是:在单击more按钮时调用QPushButton中的setText()函数完成。

我写了:
        QObject::connect(moreButton, SIGNAL(clicked()), this, SLOT(isClicked()));

        QObject::connect(moreButton, SIGNAL(toggled(bool)), SecondaryGroupBox, SLOT(setVisible(bool)));
        QObject::connect(moreButton, SIGNAL(toggled(bool)), tertiaryGroupBox, SLOT(setVisible(bool)));

……

void CSortDialog::isClicked()
{
        if (moreButton->text() == "&More>>>")
        {
                moreButton->setText("&More<<<");
        }
        else
        {
                moreButton->setText("&More>>>");
        }
}

点击按钮后,为何没有反应?????
离线marlenechen

只看该作者 7楼 发表于: 2017-09-28
书中有一段 说显示扩展对话框的实现,是:在单击more按钮时调用QPushButton中的setText()函数完成。

我写了:
        QObject::connect(moreButton, SIGNAL(clicked()), this, SLOT(isClicked()));

        QObject::connect(moreButton, SIGNAL(toggled(bool)), SecondaryGroupBox, SLOT(setVisible(bool)));
        QObject::connect(moreButton, SIGNAL(toggled(bool)), tertiaryGroupBox, SLOT(setVisible(bool)));

……

void CSortDialog::isClicked()
{
        if (moreButton->text() == "&More>>>")
        {
                moreButton->setText("&More<<<");
        }
        else
        {
                moreButton->setText("&More>>>");
        }
}

点击按钮后,为何没有反应?????
离线marlenechen

只看该作者 8楼 发表于: 2017-09-28
书中有一段 说显示扩展对话框的实现,是:在单击more按钮时调用QPushButton中的setText()函数完成。

我写了:
        QObject::connect(moreButton, SIGNAL(clicked()), this, SLOT(isClicked()));

        QObject::connect(moreButton, SIGNAL(toggled(bool)), SecondaryGroupBox, SLOT(setVisible(bool)));
        QObject::connect(moreButton, SIGNAL(toggled(bool)), tertiaryGroupBox, SLOT(setVisible(bool)));

……

void CSortDialog::isClicked()
{
        if (moreButton->text() == "&More>>>")
        {
                moreButton->setText("&More<<<");
        }
        else
        {
                moreButton->setText("&More>>>");
        }
}

点击按钮后,为何没有反应?????
快速回复
限100 字节
 
上一个 下一个