首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在向导页上处理取消

在向导页上处理取消
EN

Stack Overflow用户
提问于 2012-06-22 11:40:48
回答 3查看 2.6K关注 0票数 0

我怀疑我正在尝试让QWizardPage做比它应该做的更多的事情,这就是我遇到问题的原因,但也许有一种方法可以做到这一点。

因此,我在QWizard中有多个页面,在一个特定的页面上,我对一些硬件运行了一系列测试,然后将结果存储在数据库中。如果有必要,我希望能够取消。但是,现在Cancel按钮是QWizard的一部分,所以我不确定如何处理它。

我意识到我可以重写QWizardreject()函数,然后确定当前页面,如果它是我感兴趣的页面,则执行一些操作,但除非迫不得已,否则我不愿以这种方式将页面绑定在一起。

我确实尝试过将rejected()信号连接到向导,如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
connect(this, SIGNAL(rejected()), ui->runTestPage, SLOT(on_rejected()));

但这会立即关闭页面,然后我才能向用户显示任何内容,告诉用户我要取消。

我可以向向导页面添加一个按钮,当测试运行时将显示该按钮,以允许取消,但该页面仍然有主取消按钮。事实上,即使在测试完成后,Cancel仍然显示,因此能够删除或禁用它似乎是合适的。

那么,这是我可以做的事情,还是我需要重新使用向导的整个过程?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-06-22 15:33:25

是的,这是可行的。首先,你不一定需要覆盖rejected(),我会沿着取消QWizard cancel按钮的路线走下去,而是插入你自己的QPushButton (或其他任何东西),指向你自己的插槽,从那里做你的“立即取消”消息框,然后触发rejected()插槽。

这将为你省去很多处理默认信号/插槽的麻烦,并允许你将“Cancel”替换为“Close”,这在向导的上下文中可能更有意义(取决于向导、功能等)。

票数 2
EN

Stack Overflow用户

发布于 2012-09-17 12:39:47

一种方法是断开向导的reject()插槽与cancel按钮的clicked()信号的连接,然后从询问用户是否真的确定的位置连接您自己的插槽,如下所示:

在向导的构造函数中:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// install a slot handling the cancel button, but disconnect the default slot that would close the wizard first
disconnect( button( QWizard::CancelButton ), SIGNAL( clicked() ), this, SLOT( reject() ) );
connect( button( QWizard::CancelButton ), SIGNAL( clicked() ), this, SLOT( cancelWizard() ) );

然后实现您自己的插槽处理取消:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
void SetupWizard::cancelWizard() {
    if( QMessageBox::question( this, trUtf8( "Quit Setup" ), trUtf8( "Setup is not complete yet. Are you sure you want to quit setup?" ), QMessageBox::Yes, QMessageBox::No ) == QMessageBox::Yes ) {
        // allow cancel
        reject();
    }
}
票数 5
EN

Stack Overflow用户

发布于 2019-12-27 10:32:58

您可以在向导类中重写reject方法,并在reject方法中调用QWizard::reject

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
void MyWizard::reject()
{
    if( QMessageBox::question( this, trUtf8( "Quit Setup" ), trUtf8( "Setup is not complete yet. Are you sure you want to quit setup?" ), QMessageBox::Yes, QMessageBox::No ) == QMessageBox::Yes ) {
        // allow cancel
        QWizard::reject();
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11155494

复制
相关文章
AngularJS 控制器
控制器是 JavaScript 对象,由标准的 JavaScript 对象的构造函数 创建。
陈不成i
2021/07/23
1.2K0
使用 RequireJS 加载 AngularJS
AngularJS 目前的版本没有遵循 Javascript 约定的 AMD 模块化规范, 因此使用 RequireJS 加载 AngularJS 时需要一些额外的配置。
beginor
2020/08/10
1.3K0
使用 RequireJS 加载 AngularJS
解决angularjs图片加载失败
angularjs图片加载失败,本文的angularjs图片加载失败中的angularjs指的是angular2、angular4。
全栈程序员站长
2022/09/02
1.5K0
angularJS学习之路(三)---控制器
控制器是 JavaScript 对象,由标准的 JavaScript 对象的构造函数 创建。
wust小吴
2019/07/08
6290
angularjs 控制器、作用域、广播详解
一、控制器 首先列出几种我们平常使用控制器时的几种误区: 我们知道angualrJs中一个控制器时可以对应不同的视图模板的,但这种实现方式存在的问题是: 如果视图1和视图2根本没有任何逻辑关系,这样“
柴小智
2018/04/10
1.9K0
angularjs 控制器、作用域、广播详解
[angularjs] angularjs系列笔记(四)控制器
所有的应用都有一个$rootScope,它可以作用在ng-app指令包含的所有的html元素中
唯一Chat
2019/09/10
4060
Angularjs动态加载ECharts(二)
今早操作的时候又有了问题,我需要做的是select下拉框选择时间,然后将对应时间的数据显示到ECharts上 如图所示
治电小白菜
2020/08/25
7380
Angularjs动态加载ECharts(二)
Angularjs动态加载ECharts(一)
今早发现,directive写的echarts组件,虽然能够获取到Controller中的数据,但是当我使用$http请求到的数据,想传到directive却总是获取不到,知道这是异步问题,图表加载后,数据才请求到,所以图表加载不了数据 解决方法 使用ng-if,判断,如果有数据才显示,完美解决 <realtem-data ng-if="data" id="temdata" legend="legend" item="item" data="data"></realtem-data> 其余代码 con
治电小白菜
2020/08/25
9460
Angularjs动态加载ECharts(一)
按需加载 AngularJS 的 Controller
AngularJS 通过路由支持多视图应用, 可以根据路由动态加载所需的视图, 在 AngularJS 的文档中有详细的介绍, 网上也有不少教程, 就不用介绍了!
beginor
2020/08/10
1.2K0
Spark UDF加载外部资源
由于Spark UDF的输入参数必须是数据列column,在UDF中进行如Redis查询、白/黑名单过滤前,需要加载外部资源(如配置参数、白名单)初始化它们的实例。若它们都能被序列化,从Driver端初始化+broadcast的方式可以完成构建。而Redis、字典树等存在不能序列化的对象,也就无法从Driver端发送到Excutor端。因此,整体的思路是:在Driver端初始化可以被序列化的资源,在Excutor端利用资源构建不可序列化对象,从而分布完成整个对象的构建。
mikeLiu
2020/08/28
5.4K0
as3加载外部资源
在as3的开发中,经常会加载外部共用资源,比如某一个公用的图片或者其它小特效。这时候为了避免重复请求,一般会将这些资源放在一个fla文件中,为每一个资源添加链接。这里以一张图片为例(flower.fla):
meteoric
2018/11/16
8770
AngularJS中的按需加载ocLazyLoad
初学者,有不足的地方希望各位指出 一、前言     ocLoayLoad是AngularJS的模块按需加载器。一般在小型项目里,首次加载页面就下载好所有的资源没有什么大问题。但是当我们的网站渐渐庞大起来,这样子的加载策略让网速初始化速度变得越来越慢,用户体验不好。二来,分模块加载易于团队协作,减低代码冲突。   二、按需加载的对象 各个Controller模块、Directive模块、Server模块、template模板,其实这些都是一些 .js文件或者 .html文件 。     三 、按需加载的场
庞小明
2018/03/07
1.7K0
AngularJS系列(二)——作用域和控制器
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
逝兮诚
2019/10/30
4440
[CodeIgniter4]讲解-加载静态页
本教程旨在向您介绍CodeIgniter框架和MVC体系结构的基本原理。它将向您展示如何以逐步的方式构造基本的CodeIgniter应用程序。
landv
2020/03/04
3.6K0
AngularJS浅谈-博客
AngularJS是啥?(一脸懵逼) 简介: AngularJS诞生于2009年,由Misko Hevery 等人创建,后为Google所收购。是一款优秀的前端JS框架,已经被用于Google的多款
双愚
2018/05/28
2.4K0
网站404页面的设计
每一个网站都必须有404页面,404页面指的是显示网站错误链接的页面,可能是该访问的页面不存在,也可能是页面已经被删除。
岳泽以
2022/10/26
1.4K0
网站404页面的设计
Spark GenericUDF动态加载外部资源
文章1中提到的动态加载外部资源,其实需要重启Spark任务才会生效。受到文章2启动,可以在数据中加入常量列,表示外部资源的地址,并作为UDF的参数(UDF不能输入非数据列,因此用此方法迂回解决问题),再结合文章1的方法,实现同一UDF,动态加载不同资源。本文通过继承GenericUDF类,读取存放在Redis集群中的字符串,构建字典树,完成词包匹配,来说明这一工作。
mikeLiu
2020/09/01
2.7K0
AngularJS 应用
<html> 元素是 AngularJS 应用: ng-app="myNoteApp" 的容器:
陈不成i
2021/07/26
1.2K0
如何在 ASP.NET MVC 中集成 AngularJS(1)
介绍 当涉及到计算机软件的开发时,我想运用所有的最新技术。例如,前端使用最新的 JavaScript 技术,服务器端使用最新的基于 REST 的 Web API 服务。另外,还有最新的数据库技术、最新的设计模式和技术。 当选择最新的软件技术时,有几个因素在起作用,其中包括如何将这些技术整合起来。过去两年中,我最喜欢的一项技术就是设计单页面应用(SPA)的 AngularJS。作为一个微软stack开发者,我也是使用 ASP.NET MVC 平台实现 MVC 设计模式和并进行研究的粉丝,包括它的捆绑和压缩功能
葡萄城控件
2018/01/10
7.6K0
如何在 ASP.NET MVC 中集成 AngularJS(1)
深入了解 AngularJS 路由的原理和使用技巧
在现代Web应用程序中,页面之间的导航是非常重要的。为了实现有效的导航和良好的用户体验,AngularJS 提供了一种强大的路由机制。通过使用 AngularJS 的路由功能,我们可以轻松地管理应用程序的不同视图,并根据URL的变化加载不同的组件。
网络技术联盟站
2023/07/04
2240

相似问题

使用angularjs在分隔页中加载外部库

12

AngularJS & Bootstrap模式加载模板外部控制器

11

在angularjs中重新加载外部控制器

11

AngularJS控制器工作,但不加载html页。

25

angularjs控制器模块参考加载空白页

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文