自学QT之从对话框弹出对话框

匿名 (未验证) 提交于 2019-12-03 00:03:02

本来看着教材的目的是写一个标准输入对话框类的,可是因为粗心,一直报错,不过也明白了一些东西,做个总结。

你想要从一个对话框弹出一个对话框,需要在要弹出的对话框中加入Q_Object,还需要加入一些头文件声明,比如我是自定义继承QDialog类,需要QDialog的声明和QWidget的声明,同时为构造函数添加参数如类似myd(QWidget* parent=0)

代码:

dialog头文件:

#ifndef DIALOG_H #define DIALOG_H  #include <QDialog> #include <QPushButton> #include <QGridLayout> #include "myd.h"  class Dialog : public QDialog {     Q_OBJECT  public:     Dialog(QWidget *parent = 0);     ~Dialog();     private:     QPushButton *mybtn;     QGridLayout *myGrid;     myd *mydialog;     public slots:     void showmywin(); };  #endif // DIALOG_H

dialog源码:

#include "dialog.h" #include "myd.h"   Dialog::Dialog(QWidget *parent)     : QDialog(parent) {     mybtn=new QPushButton("我的按钮");     myGrid=new QGridLayout(this);     myGrid->addWidget(mybtn);     connect(mybtn,SIGNAL(clicked(bool)),this,SLOT(showmywin()));  } void Dialog:: showmywin() {   mydialog=new myd(this);    mydialog->show();  } Dialog::~Dialog() {  }
自定义的类头文件:

#ifndef MYD_H #define MYD_H #include <QWidget> #include <QDialog>   class myd : public QDialog {     Q_OBJECT public:     myd(QWidget* parent=0); };  #endif // MYD_H

自定义的类源码:

#include "myd.h"

#include <QDialog>
myd::myd(QWidget* parent) : QDialog(parent)
{
}
在这里我没有设定窗口的内容,所以是空的。

效果如下:


转载于:https://my.oschina.net/u/2505464/blog/542351

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!