• 7040阅读
  • 5回复

[提问]点击一个按钮,弹出一个对话框 [复制链接]

上一主题 下一主题
离线wanghaisheng
 
只看楼主 倒序阅读 楼主  发表于: 2012-07-23
我想实现点击一个按钮,然后弹出一个对话框,但是点击之后,主窗口就立刻消失了,还提示我有段错误
部分程序是这样的:


connect(loginButton,SIGNAL(clicked,this,SlOT(userLogin()));

void OperateGroup::userLogin()
{UserLogin_Dialog *userLogin =new UserLogin_Dialog();
}
离线benbenmajia

只看该作者 1楼 发表于: 2012-07-23
在你发的这一句代码里已经有了致命的错误。
void OperateGroup::userLogin()
{UserLogin_Dialog *userLogin =new UserLogin_Dialog();
}
即使不出现段错误你这代码跑出来也是不行的,每次点一个button就新建一个窗口?
安然.....
离线benbenmajia

只看该作者 2楼 发表于: 2012-07-23
把代码都发出来
安然.....
离线wanghaisheng
只看该作者 3楼 发表于: 2012-07-23
回 2楼(benbenmajia) 的帖子
/*user_login.cpp */
#include<QLabel>
#include<QLineEdit>
#include<QPushButton>
#include<QGridLayout>

#include "user_login.h"



UserLogin_Dialog::UserLogin_Dialog(QWidget* parent)
    : QDialog(parent)

{


passwordLabel=new QLabel(tr("PassWord:"));
passwordEdit=new QLineEdit(this);

key1=new QPushButton("1",this);
key2=new QPushButton("2",this);
key3=new QPushButton("3",this);
key4=new QPushButton("4",this);
key5=new QPushButton("5",this);
key6=new QPushButton("6",this);
key7=new QPushButton("7",this);
key8=new QPushButton("8",this);
key9=new QPushButton("9",this);
key0=new QPushButton("0",this);
keyPoint=new QPushButton(".",this);
keyClear=new QPushButton("Clear",this);

ok=new QPushButton(tr("OK"));
cancel=new QPushButton(tr("Cancel"));

grid->addWidget(passwordLabel,0,0);
grid->addWidget(passwordEdit,0,1);
grid->addWidget(key1,1,0);
grid->addWidget(key2,1,1);
grid->addWidget(key3,1,2);
grid->addWidget(key4,1,3);
grid->addWidget(key5,2,0);
grid->addWidget(key6,2,1);
grid->addWidget(key7,2,2);
grid->addWidget(key8,2,3);
grid->addWidget(key9,3,0);
grid->addWidget(key0,3,1);
grid->addWidget(keyPoint,3,2);
grid->addWidget(keyClear,3,3);
grid->addWidget(ok,4,0,2,1);
grid->addWidget(cancel,4,1,2,3);
setLayout(grid);


}



/*mainwindow.cpp*/
//-------------机组操作选项----------------
OperateGroup::OperateGroup(const QString &title,QWidget* parent)
        :QGroupBox(title,parent)

{
  
             .....  .....
  
    loginButton = new QPushButton(tr("User Login"),this);          //用户登录
    logoutButton = new QPushButton(tr("User Logout"),this);            //用户注销
    
    QGridLayout *grid = new QGridLayout;
    grid->addWidget(controlButton,0,0);
    grid->addWidget(maintainButton,0,1);
    grid->addWidget(failureButton,1,0);
    grid->addWidget(historyDataButton,1,1);
    grid->addWidget(sysConfigButton,2,0);
    grid->addWidget(sysDebugButton,2,1);
    grid->addWidget(loginButton,3,0);
    grid->addWidget(logoutButton,3,1);
    setLayout(grid);

    connect(loginButton,SIGNAL(clicked()),this,SLOT(userLogin()));
    
}

void OperateGroup::userLogin()
{
  
   UserLogin_Dialog *userLogin=new UserLogin_Dialog();    


}
离线benbenmajia

只看该作者 4楼 发表于: 2012-07-24
UserLogin_Dialog::UserLogin_Dialog(QWidget* parent)
    : QDialog(parent)

{
里面grid  new出来了么?
安然.....
离线wanghaisheng
只看该作者 5楼 发表于: 2012-07-25
回 4楼(benbenmajia) 的帖子
多谢大侠帮忙,呵呵,我犯了个低级的错误,现在可以了。。。
快速回复
限100 字节
 
上一个 下一个