23333 QT一坨,求一门面向傻瓜的语言。

QT中 quit(),exit()以及close():常用的三个槽

对主程序的退出,可以调用成员函数exit(),同时也可以调用槽quit(),二者此时都能起到关闭应用程序的作用。只是应注意二者调用的方式不同。如下程序示例:

{

QApplication* app;

app->exit();

}

或者:

{

QApplication* app;

app->quit();

}

此时二者是等价的,即void QApplication::quit ()等价于函数调用 QApplication::exit( 0 )。此时,若需要给出用户提示,则只需要在程序当中添加QMessageBox的消息判断语句,以提示用户是否确定退出应用程序。另外,quit()作为槽,也可以连接信号和槽的形式,响应某个信号后关闭应用程序。如:

QPushButton *quitButton = new QPushButton( "Quit" );

connect( quitButton, SIGNAL(clicked()), qApp, SLOT(quit()) );

如果关闭的不是应用程序,而是关闭窗口等部件的形式,则必须调用close()函数,已关闭部件。如下:

if (!(QMessageBox::information(this,tr("CT Control View"),tr("Do you really want to log out CT Control View?"),tr("Yes"),tr("No"))))

{

this->close();

}

其中通过一条if语句,判断条件为一个对话框,根据用户的选择做出是否关闭该部件,this在这里代表当前窗口部件对象的地址。当用户选择“Yes”时,该窗口部件退出;反之则取消退出操作。

至此,我们已经简单了解了应用程序和窗口等部件的退出或关闭的代码编辑。然而,如果用户点击窗口右上角的X按键时,你会发现窗口仍然会在不给出任何提示的情况下直接退出了,即便你在程序当中已添加了提示的对话框语句。那为什么此时的关闭操作没有按我们希望的那样先给出提示对话框呢?原因是此时的关闭操作并没有引起调用带有提示消息的关闭或退出语句。当用户点击X关闭窗口时,系统会自动将这个事件告之某个特定的函数,即void QWidget::closeEvent ( QCloseEvent * e ),因此,这种情况应特别注意。在关闭窗口前,可先定义一条消息语句,以提示用户是否确定关闭窗口。如:

void mainWindow::closeEvent( QCloseEvent * event )

{

switch( QMessageBox::information( this, tr("CT Control View"),

tr("Do you really want to log out CT Control View?"),

tr("Yes"), tr("No"),

, ) )

{

case :

event->accept();

break;

case :

default:

event->ignore();

break;

}

}

编译程序后,系统会在用户响应close操作时,自动调用该语句。也许这个时候你还会问,上面的那个功能函数究竟是把它定义成槽呢,还是定义成成员函数。答案是二者都可以。一方面槽本身就是一个特殊的成员函数,除了能与信号连接之外,其功能与函数无异。另一方面,此时不需要额外设置连接信号和槽,添加该功能函数之后,窗口一旦有了close操作,机会立即响应该。

尽管添加closeEvent( QCloseEvent * event )这一功能函数之后,窗口会在关闭时给出提示对话框。但有时候还会发生这样一种情况:在点击确认关闭后,还会再会出现一个对话框,即提示对话框会出现两次。那这又是什么原因呢?其实很简单,那是因为closeEvent( QCloseEvent * event )只会响应close的操作,出现两次对话框无疑是在自定义的关闭函数中又添加一条提示对话框语句,确认关闭后,响应close操作,这时系统又会马上调用closeEvent( QCloseEvent * event )这个函数。因此,解决的办法是只定义一个带提示对话框的关闭函数,对不同的关闭操作都相应closeEvent( QCloseEvent * event )这个函数即可。

最后,如果想要在关闭主窗口或主程序时,所有打开的独立的子窗口都能同时被关闭。那么这个时候一般是在main.cpp文件中连接信号void QApplication::lastWindowClosed ();关于lastWindowClosed()的详细介绍,这里不作说明,需要使用时可以使用Qt Assistant查看其使用发法。如:

int main( int argc, char ** argv )

{

QApplication a( argc, argv );

ABMainWindow *mw = new ABMainWindow();

mw->setCaption( "Qt Example - Addressbook" );

a.setMainWidget( mw );

mw->show();

a.connect( &a, SIGNAL( lastWindowClosed() ), &a, SLOT( quit() ) );

int result = a.exec();

delete mw;

return result;

}

这样,系统会在关闭主窗口部件时,同时关闭打开的其它子窗口程序。比较值得说明的是,并不是使用了a.connect( &a, SIGNAL( lastWindowClosed() ), &a, SLOT( quit() ) )这条语句后就一定能实现该功能。在此之前,必须特别注意是否设定了主窗口部件,即调用setMainWidget这一功能函数,这样,当关闭这一主窗口部件时,才会响应关闭这一时刻已打开的其它子窗口部件。

QT中关闭应用程序和窗口的函数(quit(),exit()以及close()的区别)

使用QT编辑界面,其中带来很大方便的一点就是Qt中自带丰富的.种类齐全的类及其功能函数,程序员可以在编辑程序的过程中简单地直接调用.关于窗口关闭的操作,在这里指出常用的三个槽,即quit(),exit ...

WPF学习之路(七)应用程序和窗口

手动创建应用程序 1.创建Empty Project 2.添加引用 3.添加 ManualApp.cs 并添加下面的代码 [STAThread] public static void Main() { ...

C#-WinForm-跨窗体 构造函数传值 及应用—登录式窗口传值、如何关闭主页面时关闭应用程序、如何打开唯一窗口—★★★★★五星重量级

构造函数可以传任意类型的值,并可以同时传多个值 结构函数传值的初步应用--简单的登陆式界面 现在我有两个窗体Form3和Form4,如下,如何点击Form3中的按钮后,打开Form4并将Form3中的 ...

《WPF程序设计指南》读书笔记——第1章 应用程序与窗口

1.空白WPF项目的创建: 1)新建项目:在VS2010中,文件-新建-项目-visual c#-windows-空项目: 2)添加引用:PresentationFramework,Presentat ...

QTP 自动化测试桌面程序--笔记(关闭 启动程序脚本) 、安装

0 安装qtp .exe 文件 安装 插件文件(如delph) 1 关闭 启动程序: 将要操作的程序-存入localdatatable中 设置 迭代一次 rem SystemUtil.ClosePro ...

C# 强制关闭当前程序进程(完全Kill掉不留痕迹)

C# 强制关闭当前程序进程(完全Kill掉不留痕迹) ///  /// 运行DOS命令 /// DOS关闭进程命令(ntsd -c q -p PID )PID为进程的ID ...

MFC应用程序创建窗口的过程 good

MFC应用程序中处理消息的顺序 1.AfxWndProc()      该函数负责接收消息,找到消息所属的CWnd对象,然后调用AfxCallWndProc 2.AfxCallWndProc()  该 ...

Macbook怎么强制关闭后台程序?Macbook强制关闭后台程序的方法

有时候我们的Macbook电脑运行某个程序卡在那里耗了很长时间,程序本身有可能提供了取消按钮,点了也没有反应,这时候我们就很想强制关闭它了,那么Macbook怎么强制关闭后台运行的程序呢?下面完美小编 ...

随机推荐

洛谷 P2661 信息传递 Label:并查集||强联通分量

题目描述 有n个同学(编号为1到n)正在玩一个信息传递的游戏.在游戏里每人都有一个固定的信息传递对象,其中,编号为i的同学的信息传递对象是编号为Ti同学. 游戏开始时,每人都只知道自己的生日.之后每一 ...

phpcms V9 MVC模式 与 URL访问解析

[1]URL访问解析 观察访问网页时的网址,可以得出模块访问方法,如下示例: http://www.abcd.com.cn/phpcms/index.php?m=content&c=index ...

本地连接图标消失;修改地址IP地址

(1)网络连接中没有本地连接,电脑无法进行拨号.无法上网,右键点击“网上连接”选择“属性”,弹出的“网络连接”文件夹中没有本地连接的图标,类似情况处理起来要相对复杂些了,我们逐一判断故障原因,在想办法 ...

System.currentTimeMillis();

1.  意义: currentTimeMillis()返回以毫秒为单位的当前时间,返回的是当前时间与协调世界时 1970 年 1 月 1 日午夜之间的时间差(以毫秒为单位測量).注意,当返回值的时间单 ...

python 文件下载

为了演示urllib3的使用,我们这里将会从一个网站下载两个文件.首先,需要导入urllib3库: import urllib3 这两个文件的源url为: url1 = 'http://earthqu ...

python中的\n、\r与\b

python中使用print函数,有时候会使用end参数来控制字符输出效果,这时候\n.\r与\b就派上用场了. \n 代表换行,也就是从本行换到下一行 \r 代表回车,也就是回到本行最开始的位置,从 ...

bzoj3332

题解: 首先只有存在的路有可能有值 然后在存储矩阵的同时对于本来就有边的情况直接存下来这条边的值 然后跑一次最大生成树 在最大生成树的同时就可以求出矩阵的信息. 代码: #include

国际化实现之基于jquery

jQuery.i18n.properties是一款轻量级的jQuery国际化插件,能实现Web前端的国际化. jQuery.i18n.properties 采用 .properties 文件对 Jav ...

python3.x 和 python2.x关于 urllib的用法

在python2.x版本中可以直接使用import urllib来进行操作,但是python3.x版本中使用的是import urllib.request来进行操作,下面是简单的例子: python2 ...

Constant-on-time buck-boost regulator converts a positive input to a negative output

Buck regulators find wide application as step-down regulators for converting large positive input vo ...

close函数 qt_QT5笔记:关闭应用程序和窗口的函数相关推荐

  1. QT中关闭应用程序和窗口的函数(quit(),exit()以及close()的区别)

    QT中关闭应用程序和窗口的函数(quit(),exit()以及close()的区别) 使用QT编辑界面,其中带来很大方便的一点就是Qt中自带丰富的.种类齐全的类及其功能函数,程序员可以在编辑程序的过程 ...

  2. C语言基础入门48篇_20_函数入门:为什么使用函数?(函数使得程序模块化 使用函数封装细节,使得程序员只要面向函数的接口编程(参数与返回值),而不用关心函数内部细节)

    菜鸟和高手都会基本,那菜鸟为什么是菜鸟,高手为什么是高手呢?很大的区别在于,高手写的程序[结构性]更好,更容易维护.而函数就是C语言结构化的一种手段. 函数可以将大的计算任务划分为多个较小的任务(解耦 ...

  3. 善用云函数,开源节流,小程序后端使用云函数案例

    背景 随着serverless越来越流行,越来越多的中小型企业,个人开发者开始接纳并使用这样一个简单,灵活的平台.由于不用自己运维服务器,不用自己考虑系统负载问题,可以为企业节省不少成本.另外对于一些 ...

  4. python2 字符串函数_笔记六:python2字符串运算与函数

    一:学习内容 字符串运算 字符串函数-strip() 字符串函数-大小写互换 字符串函数-字符串对齐 字符串函数-搜索 字符串函数-替换 字符串函数-split切割 字符串函数-连接join 字符串函 ...

  5. matlab内联函数怎么作图,第1讲:向量,函数和作图

    第1讲:向量,函数和作图 Blog Todd讲Matlab 向量 Matlab 中最基本的对象是矩阵,向量是特殊的矩阵.行向量是1×n矩阵,列向量是m×1矩阵.输入如下行向量: >>v=[ ...

  6. 窗口过程,窗口过程函数

    如前所述,函数GetMessage负责从应用程序的消息队列中取出消息,而函数DispatchMessage()要求Windows将消息传送给在MSG结构中为窗口所指定的窗口过程.然后出台的就是这个窗口 ...

  7. 【读书笔记】【程序员的自我修养 -- 链接、装载与库(三)】函数调用与栈(this指针、返回值传递临时对象构建栈、运行库与多线程、_main函数、系统调用与中断向量表、Win32、可变参数、大小端

    文章目录 前言 介绍 内存 内存布局 栈与调用惯例 堆与内存管理 运行库 入口函数和程序初始化 C/C++运行库 运行库与多线程 C++全局构造与析构 fread 实现 系统调用与API 系统调用介绍 ...

  8. linux lsm 程序加载钩函数,selinux 学习笔记一(LSM在kernel中的实现)

    LSM(linux security module)作为一个单独模块,通过在kernel编译过程中的编译flag:CONFIG_SECURITY 控制是否启用该模块中定义的安全相关的功能.具体配置信息 ...

  9. 【读书笔记】【程序员的自我修养 -- 链接、装载与库(二)】进程虚拟地址空间、装载与动态链接、GOT、全局符号表、共享库的组织、DLL、C++与动态链接

    文章目录 前言 介绍 可执行文件的装载与进程 进程虚拟地址空间 装载方式 操作系统对可执行文件的装载 进程虚存空间分布 ELF文件的链接视图和执行视图 堆和栈 Linux 内核装载ELF & ...

最新文章

  1. l5如何通过路由走api版本回退查找设置
  2. 大厂前实习生被威胁,“关闭开源项目,不然就告你”
  3. 计算机出国读博必读!外国小哥创建最全CS奖学金项目清单
  4. C++中const char*, string 与char*的转化
  5. 零基础学python
  6. 通过set方式注入的bean为null_Spring 注入集合
  7. C语言常用8种排序方法耗时测试
  8. 指针使用前应先初始化
  9. MyEclipse生成WAR包并在Tomcat下部署发布[转]
  10. 大数据分析中常用的方法有哪些
  11. c语言汽水瓶编程,汽水瓶 题目(C语言代码)
  12. promise.all是并发执行吗_你真的会用Volatile了吗?
  13. 怎么自动删除以前数据脚本_移动硬盘数据删除了怎么恢复?硬盘恢复软件分享!...
  14. vivi开发笔记【专辑】
  15. 整合营销中广告投放策略,为何需要选择公关广告?
  16. 对于幸福不是悖论的证明,在现代对于幸福探寻
  17. jboot jboot.properties 设置
  18. 2.计算机二级考试 公共基础知识资料
  19. 【opencv-python角度测量】
  20. JS 异步编程六种方案

热门文章

  1. 老马闲评数字化(4)做数字化会不会被供应商拿捏住
  2. 一级计算机字处理步骤,计算机一级B文字处理操作步骤
  3. android 后台数据获取,android post方式给后台服务器传递数据
  4. Android各种时间格式转换
  5. 软考-软件设计师 UML建模
  6. 只需要一招,改变你的网易云皮肤(仅限于PC端)
  7. 【信号处理】因果系统的理解
  8. 通证与区块链:前台经济+后台技术
  9. springboot笔记(硅谷)
  10. 【ODX介绍】-4.3-UDS诊断$3E服务在ODX-D诊断描述文件中如何描述