父组件中引入弹窗子组件三种写法

45 篇文章 0 订阅
21 篇文章 1 订阅

1、props和$emit控制弹窗显示隐藏

  • 父组件
<template>
  <div class="about">
    <a-button type="primary" @click="show = true"> 打开弹窗 </a-button>
    <popup :show="show" @change="show = false"></popup>
  </div>
</template>
<script>
import popup from "../components/popup";
export default {
  data() {
    return {
      show: false,
    };
  },
  components: {
    popup,
  },
};
</script>
  • 子组件
<template>
  <div>
    <a-modal
      v-model="show1"
      title="Basic Modal"
      @cancel="handleOk"
      @ok="handleOk"
    >
      <p>Some contents...</p>
      <p>Some contents...</p>
      <p>Some contents...</p>
    </a-modal>
  </div>
</template>
<script>
export default {
  data() {
    return {};
  },
  props: ["show"],
  computed: {
    show1: {
      get() {
        return this.show;
      },
      set() {},
    },
  },
  methods: {
    handleOk(e) {
      this.$emit("change", false);
    },
  },
};
</script>

v-model控制弹窗显示隐藏

<template>
  <div class="about">
    <a-button type="primary" @click="show = true"> Open Modal </a-button>
    <popup v-model="show"></popup>
  </div>
</template>
<script>
import popup from "../components/popup";
export default {
  data() {
    return {
      show: false,
    };
  },
  components: {
    popup,
  },
};
</script>


<template>
  <div>
    <a-modal
      v-model="show1"
      title="Basic Modal"
      @cancel="handleOk"
      @ok="handleOk"
    >
      <p>Some contents...</p>
      <p>Some contents...</p>
      <p>Some contents...</p>
    </a-modal>
  </div>
</template>
<script>
export default {
  data() {
    return {};
  },
  model: {
    prop: "show", //接受v-model的值
    event: "change", //改变v-model的值得方法,第二个参数直接赋值给他
  },
  props: ["show"],
  computed: {
    show1: {
      get() {
        return this.show;
      },
      set() {},
    },
  },
  methods: {
    handleOk(e) {
      this.$emit("change", false); //直接改变v-model的值
    },
  },
};
</script>

$refs直接调取子组件的方法

<template>
  <div class="about">
    <h1 @click="$router.push('./test')">This is an about page</h1>
    <a-button type="primary" @click="$refs.pop.init()"> Open Modal </a-button>
    <popup ref="pop"></popup>
  </div>
</template>
<script>
import popup from "../components/popup";
export default {
  components: {
    popup,
  },
};
</script>

<template>
  <div>
    <a-modal
      v-model="show"
      title="Basic Modal"
      @cancel="handleOk"
      @ok="handleOk"
    >
      <p>Some contents...</p>
      <p>Some contents...</p>
      <p>Some contents...</p>
    </a-modal>
  </div>
</template>
<script>
export default {
  data() {
    return {
      show: false,
    };
  },
  methods: {
    init() {
      this.show = true;
    },
    handleOk(e) {
      this.show = false;
    },
  },
};
</script>

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
以下是在Qt Creator创建弹窗窗口的步骤: 1. 在Qt Creator创建一个新的Qt Widgets应用程序项目。 2. 在“项目”窗口,右键单击项目并选择“添加新文件”。 3. 在“添加新文件”对话框,选择“Qt”>“Qt Designer Form Class”,然后单击“选择”。 4. 在“类向导”对话框,选择“Dialog without Buttons”,然后单击“选择”。 5. 在“添加新文件”对话框,输入文件名并单击“下一步”。 6. 在“类定义”页面上,选择“使用现有类”并选择“QDialog”作为基类。 7. 单击“下一步”并完成向导。 8. 在“设计”模式下,将所需的小部件从“小部件”窗口拖放到对话框。 9. 在“编辑”模式下,将小部件放置在所需的位置并设置其属性。 10. 在“项目”窗口,右键单击项目并选择“添加新文件”。 11. 在“添加新文件”对话框,选择“C++”>“C++源文件”,然后单击“选择”。 12. 在“添加新文件”对话框,输入文件名并单击“下一步”。 13. 在“类定义”页面上,选择“使用现有类”并选择“QDialog”作为基类。 14. 单击“下一步”并完成向导。 15. 在新的源文件,将以下代码添加到构造函数: ```cpp #include "dialog.h" #include "ui_dialog.h" Dialog::Dialog(QWidget *parent) : QDialog(parent), ui(new Ui::Dialog) { ui->setupUi(this); } ``` 16. 在需要显示弹窗窗口的代码,创建一个Dialog对象并调用其exec()函数。 ```cpp Dialog dialog; dialog.exec(); ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小曲曲

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值