• 5063阅读
  • 3回复

[提问]对话框调用问题 [复制链接]

上一主题 下一主题
离线yijunziran
 

只看楼主 倒序阅读 楼主  发表于: 2012-04-22
#include<qapplication.h>
#include<qpushbutton.h>
#include<qfont.h>

class MyWidget: public QWidget
{
    
public:
    MyWidget(QWidget *parent=0,const char *name=0);
public slots:
    void quit1();
      
};
MyWidget::MyWidget(QWidget *parent,const char *name)
    :QWidget(parent,name)
{
    setMinimumSize(300,300);
    setMaximumSize(300,300);
    QPushButton *quit=new QPushButton("Quit",this,"quit");
    quit->setGeometry(50,50,70,30);
    quit->setFont(QFont("Times",18,QFont::Bold));
    connect(quit,SIGNAL(clicked()),this,SLOT(quit1()));
}

class MyWidget1: public QWidget
{
    
public:
    MyWidget1(QWidget *parent=0,const char *name=0);
};
MyWidget1::MyWidget1(QWidget *parent,const char *name)
    :QWidget(parent,name)
{
    setMinimumSize(200,120);
    setMaximumSize(200,120);
    QPushButton *quitq=new QPushButton("Quitq",this,"quitq");
    quitq->setGeometry(62,40,75,30);
    quitq->setFont(QFont("Times",18,QFont::Bold));

    connect(quitq,SIGNAL(clicked()),qApp,SLOT(quit()));
}

void MyWidget::quit1()
{
    MyWidget1 w1;
    w1.show();
}
    

int main(int argc,char **argv)
{
    QApplication a(argc,argv);
    MyWidget w;
    w.setGeometry(100,100,300,300);
    a.setMainWidget(&w);
    w.show();
    return a.exec();
}


这段程序运行点击quit1怎么调用不了quit1的对话框求解


离线btptboy

只看该作者 1楼 发表于: 2012-04-22
應該是這一行有問題
QPushButton *quit=new QPushButton("Quit",this,"quit");
quit是在構造函數中聲明的,你把quit的聲明放在類的聲明中試試看
我思故我在
离线淳于半邪

只看该作者 2楼 发表于: 2012-04-23
你在一个main文件里面写的么?
建议你分类写,还有你的错误就是自己写的槽申明的前面添加Q_OBJECT
离线淳于半邪

只看该作者 3楼 发表于: 2012-04-23
而且对话框类是QDialog QWidget是他父类
建议使用QDialog当点击mywidget时弹出dialog,在dialog::Accepted()时,关闭mywidget窗口
快速回复
限100 字节
 
上一个 下一个