网络促销策略,seo网站快速排名,semester at sea,wordpress安装指令一、模态对话框
模态对话框是一个对话框#xff0c;它阻塞了对同一应用程序中其他可见窗口的输入。用于向用户请求文件名或用于设置应用程序首选项的对话框通常是模态的。对话框可以是应用程序模式(默认)或窗口模式。当应用程序模态对话框打开时#xff0c;用户必须完成与对…一、模态对话框
模态对话框是一个对话框它阻塞了对同一应用程序中其他可见窗口的输入。用于向用户请求文件名或用于设置应用程序首选项的对话框通常是模态的。对话框可以是应用程序模式(默认)或窗口模式。当应用程序模态对话框打开时用户必须完成与对话框的交互并关闭它然后才能访问应用程序中的任何其他窗口。窗口模式对话框只阻止访问与该对话框相关联的窗口允许用户继续使用应用程序中的其他窗口。
显示模态对话框最常见的方法是调用它的exec()函数。 当用户关闭对话框时exec()将提供一个有用的返回值。 想要关闭对话框并返回适当的值您必须连接一个默认按钮对话框的默认按钮是当用户按Enter (Return)时按下的按钮。 此按钮用于表示用户接受对话框的设置并希望关闭对话框。 使用QPushButton::setDefault() QPushButton::isDefault()和QPushButton::autoDefault()来设置和控制对话框的默认按钮。 例如一个OK按钮到accept()槽一个Cancel按钮到reject()槽。 或者您可以使用Accepted或Rejected调用done()槽。
另一种方法是调用setModal(true)或setWindowModality()然后调用show()。 与exec()不同show()将控制权立即返回给调用者。 调用setModal(true)对于进度对话框特别有用因为用户必须能够与对话框交互例如取消长时间运行的操作。 如果您同时使用show()和setModal(true)来执行长时间操作则必须在处理过程中定期调用QCoreApplication::processEvents()来使用户能够与对话框进行交互。
其中setModal(ture)为模态对话框setModal(false)为非模态对话框。
二、非模态对话框
非模态对话框是在同一个应用程序中独立于其他窗口操作的对话框。文字处理器中的查找和替换对话框通常是非模态的允许用户与应用程序的主窗口和对话框进行交互。
使用show()显示非模态对话框它会立即将控制权返回给调用者
如果在隐藏对话框后调用show()函数对话框将显示在原来的位置。这是因为窗口管理器决定了程序员未显式放置的窗口的位置。要保留被用户移动的对话框的位置请将其位置保存在closeEvent()处理程序中然后在再次显示对话框之前将其移动到该位置。
调用close()方法后首先它会向widget发送一个关闭事件QCloseEvent。如果widget接受了关闭事件QCloseEvent窗口将会隐藏实际上调用hide()。如果widget不接受关闭事件那么窗口将什么也不做。默认情况下widget会接受关闭事件,我们可以重写QCloseEvent事件可以选择接受或者不接受。 如果widget设置了Qt::WA_DeleteOnClose属性widget将会被释放。不管widget是否可见关闭事件都会传递给widget。即接收到QCloseEvent事件后除了调用hide()方法将窗口隐藏同时会调用deleteLater()方法将窗口释放掉不会再占用资源。 所以说调用close()并不一定就会将窗口对象销毁。而只有设置了 Qt::WA_DeleteOnClose属性才会删除销毁。如果这个属性没有设置close()的作用和hidesetvisiblefalse一样只会隐藏窗口对象而已并不会销毁该对象。
三、实现
在此我们使用按钮来跳转到槽函数进而实现对话框的调用。 接着实现槽函数 别忘记头文件 最后实现效果