查看完整版本: [-- 【求助】书上第2章关于动态对话框的那个例子 --]

QTCN开发网 -> 《C++ GUI Qt 4编程》(第2版)专栏 -> 【求助】书上第2章关于动态对话框的那个例子 [打印本页] 登录 -> 注册 -> 回复主题 -> 发表主题

君寻 2014-05-19 23:28

【求助】书上第2章关于动态对话框的那个例子

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 2014-05-20 08:30
就是定义了QWidget *dynamicDlg
但没有任何地方使用dynamicDlg
提示可能定义了一个没用的对象。不会影响程序运行。

noidea 2014-05-20 12:34
可以使用Q_UNUSED() 来关闭这个警告。

君寻 2014-05-20 22:35
realfan:就是定义了QWidget *dynamicDlg
但没有任何地方使用dynamicDlg
提示可能定义了一个没用的对象。不会影响程序运行。 (2014-05-20 08:30) 

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

realfan 2014-05-21 00:00
君寻:QWidget *dynamicDlg = uiLoader.load(&file);
这里不是用了吗??
而且这程序运行后没有窗口,但任务管理器里有进程,这是怎么回事?? (2014-05-20 22:35) 

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

marlenechen 2017-09-28 21:58
书中有一段 说显示扩展对话框的实现,是:在单击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 2017-09-28 21:58
书中有一段 说显示扩展对话框的实现,是:在单击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 2017-09-28 21:58
书中有一段 说显示扩展对话框的实现,是:在单击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 2017-09-28 21:58
书中有一段 说显示扩展对话框的实现,是:在单击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>>>");
        }
}

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


查看完整版本: [-- 【求助】书上第2章关于动态对话框的那个例子 --] [-- top --]



Powered by phpwind v8.7 Code ©2003-2011 phpwind
Gzip disabled