• 5365阅读
  • 8回复

[提问]Qt弹出对话框关不掉 [复制链接]

上一主题 下一主题
离线小鸟一只
 
只看楼主 倒序阅读 楼主  发表于: 2013-03-04
关键词: Pop-upDialogClose
各位,

       小弟最近使用Qt做程序,有一处用需要点击一个对话框界面的某个按钮,然后弹出另外一个对话框。现在这个功能是实现了,可是奇怪的是,点击弹出来的那个对话框的关闭按钮一次并不能关闭那个对话框,那个对话框会消失一下,然后马上再出现,需要再点击一次,才能能关掉。这是怎么回事啊?

望各位解惑啊,在此谢过了。
离线XChinux

只看该作者 1楼 发表于: 2013-03-04
上代码看看。
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线smyrsmyr

只看该作者 2楼 发表于: 2013-03-04
请上代码 看看~
离线pxiao_xiao

只看该作者 3楼 发表于: 2013-03-04
你的代码在某个地方 又把这个创建了一遍  ???
离线小鸟一只
只看该作者 4楼 发表于: 2013-03-04
connect(ui->m_upNextBtn,SIGNAL(clicked()),this,SLOT(on_m_upNextBtn_clicked()));

void upgradeTool::on_m_upNextBtn_clicked()
{
    qDebug()<<"Clicked the 'Next' Button";

    listinforDlg = new listInforDlg(this);

    qDebug()<<"Pop-up List Information Dialog:"<<listinforDlg;

    listinforDlg->exec();

}


listInforDlg::listInforDlg(QWidget *parent) :
    QDialog(parent)
{
    qDebug()<<"initialize the List Information Dialog";
    setupUi(this);
}
离线rpdhunter

只看该作者 5楼 发表于: 2013-03-05
楼主,可以把connect(ui->m_upNextBtn,SIGNAL(clicked()),this,SLOT(on_m_upNextBtn_clicked()));这句话删掉

因为on_控件名_操作名()这种命名格式已经是一种隐式的槽函数关联了,没必要再显式关联一次。
离线小鸟一只
只看该作者 6楼 发表于: 2013-03-05
回 5楼(rpdhunter) 的帖子
对的,将connect(ui->m_upNextBtn,SIGNAL(clicked()),this,SLOT(on_m_upNextBtn_clicked()));这句话去掉后,就不会出现那样的现象了。难道再Qt中显示跟隐式的槽函数关联都写了,会响应两遍槽函数吗?
离线dbzhang800

只看该作者 7楼 发表于: 2013-03-05
看 Manual

QMetaObject::connectSlotsByName()

因为你调用的该函数(在你的ui_XXxXXX.h中)
离线rpdhunter

只看该作者 8楼 发表于: 2013-03-06
回 6楼(小鸟一只) 的帖子
没错
快速回复
限100 字节
 
上一个 下一个