61.QDialog

继承QWeight

有四个子控件

QFontDialog

QColorDialog

QFileDialog

QInputDialog

这里涉及到两个概念

  • 模态对话框:打开后只能处理对话框中的内容,关闭对话框之后才能处理别的控件的内容

  • 非模态对话框:打开后可以先把对话框放到一遍处理其他控件的内容

模态对话框有两个级别

  • 应用程序级别:如果不关闭对话框,其他的窗口连看都看不到
  • 窗口级别:如果不关闭对话框,其他的窗口还能看到,就是不能操作

目录

1  构造函数

1.1  应用程序级别显示 exec()

1.2  窗口级别显示 open()

1.3  非模态对话框显示 show()

1.3.1  模拟open打开 setModal()

1.3.2  模拟open或exec打开 setWindowModality()

2  基本操作

2.1  是否显示尺寸调整控件

2.1.1  获取 isSizeGripEnabled()

2.1.2  设置 setSizeGripEnabled()

2.2  调整大小与设置标题

2.3  操作槽

2.4  设置和获取数值

3  信号


1  构造函数

创建后默认是不显示的

有三种方式可以显示它

  • exec() 显示后对话框为应用程序级别
  • open() 显示后为窗口级别
  • show() 显示后为非模态对话框

1.1  应用程序级别显示 exec()

我们现在使用exec()

运行后出现这样的一个对话框

点击关闭后显示我们创建的window

1.2  窗口级别显示 open()

现在我们用open()

运行后会将对话框与窗口都显示出来

此时我们没有办法聚焦窗口,试图聚焦窗口后会有提示音

1.3  非模态对话框显示 show()

此时我们可以任意切换焦点

1.3.1  模拟open打开 setModal()

我们也可以通过setModal配合show搞出模态的对话框

处理后相当于用open()打开

1.3.2  模拟open或exec打开 setWindowModality()

括号内可以选择下面这两个参数

1.3.2.1  窗口级别 Qt.WindowModel

相当于open()

1.3.2.2  应用程序级别 Qt.ApplicationModal

这个我试了一下,还是和open()的情况相同

2  基本操作

2.1  是否显示尺寸调整控件

2.1.1  获取 isSizeGripEnabled()

默认情况下是False,不显示

不显示的状态是这样的

2.1.2  设置 setSizeGripEnabled()

显示之后右下角会有一个小三角,点击小三角后拖动可改变对话框大小

2.2  调整大小与设置标题

由于是继承QWidget,所以方法与调整窗口的方法相同

2.3  操作槽

对话框有三种操作槽

  • accept() 接受 使对话框展示函数返回值为1
  • reject() 拒绝 使对话框展示函数返回值为0
  • done() 执行某种操作 使对话框展示函数返回指定的整形

我们首先搞三个按钮连接三个槽

之后我们再给展示函数的返回值赋值一个变量,之后再打印它

这个时候只能用exec(),其他的返回值是None

我们现在点击接受

重新运行后点击拒绝

重新运行后点击执行

以上三个按钮无论点击哪个按钮都会关闭对话框,之后弹出原有的窗口

2.4  设置和获取数值

这里操作的数值就是刚刚点击按钮之后,展示函数的返回值

我们可以通过代码直接操作它

我们如果用这个方式替代了上面的槽函数,则点击按钮之后不会关闭对话框

如果手动关闭之后再打印result,打印的值是0

如果在按钮中设置槽函数打印,打印的值是设置的值

3  信号

我们首先搞一个对话框

再搞三个按钮

在连接三个信号

最后执行

运行后点一下接受

重新运行后点一下拒绝

重新运行后点一下执行

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Suyuoa

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

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

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

打赏作者

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

抵扣说明:

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

余额充值