QT学习之QT判断界面当前点击的按钮和当前鼠标坐标

1.QObject::sender( ) 返回发送信号的对象的指针,返回类型为QObject* 。可使用qobject_cast动态类型转换成对应的发送信息的对象(对象类的基类中需要有QObject)。

QObject::objectName( ) 返回对象的名称(QString)

  1. 1 QPushButton*btn = qobject_cast<QPushButton*>(sender());//获取发射信号的对象
    2 if("按钮对象名"==btn->objectName()){//如果获取到对象
    3 //...
    4 }

    2. QMouseEvent中两类坐标系统,一类是窗口坐标(相对坐标),一类是显示器坐标(全局坐标)。

  1.  1 QPointQMouseEvent::globalPos();//窗口坐标,这个是返回鼠标的全局坐标
     2 QPointQCursor::pos()[static];//返回相对显示器的全局坐标
     3 QPointQMouseEvent::pos();//返回相对这个widget的位置
     4 QPointQWidget::pos();//这个属性获得的是当前目前控件在父窗口中的位置
     5 constQPointF&QMouseEvent::screenPos()const;//和QPoint QMouseEvent::globalPos() 值相同,但是类型更高精度的QPointF
     6 QPointQWidget::mapToGlobal(constQPoint& pos)const;//将窗口坐标转换成显示器坐标
     7 QPointQWidget::mapFromGlobal(constQPoint& pos)const;//将显示器坐标转换成窗口坐标
     8 QPointQWidget::mapToParent(constQPoint& pos)const;//将窗口坐标获得的pos转换成父类widget的坐标
     9 QPointQWidget::mapFromParent(constQPoint& pos)const;//将父类窗口坐标转换成当前窗口坐标
    10 QPointQWidget::mapTo(constQWidget* parent,constQPoint& pos)const;//将当前窗口坐标转换成指定parent坐标
    11 //也可使用:
    12 Qpoint pt=cursor().pos();//获取当前鼠标位置

来自为知笔记(Wiz)

时间: 2024-11-05 21:50:45

QT学习之QT判断界面当前点击的按钮和当前鼠标坐标的相关文章

Qt学习记录--Qt::CaseSensitive

Qt::CaseSensitivity 为枚举类型, 可取值Qt::CaseSensitive 和 Qt::CaseInsensitive, 表示匹配的灵敏度. 比较字符串的时候 Qt::CaseSensitive区分大小写 Qt::CaseInSensitive不区分大小写 例如:void findPrevious(const QString &str,Qt::CaseSensitivity cs); 这个函数想要带一个const QString &str字符串参数,而后面跟的Qt::C

C++ windows图形界面,点击Button按钮通过openFileDialog控件选择文件

一直没用C++写过图形界面,之前用C#写很简单啊,没想到今天用C++还是有点不爽! 第一个问题,就是点击一个按钮button,选择文件,非文件夹,是文件,就是图片之类的东西! 首先,可以在界面中拖一个openFileDialog控件,控件名字就叫openFileDialog1,如图所示 也可以在Button的点击事件里new一个openFileDialog控件也可以! 然后,就是在button点击事件里,写下相应的代码就可以了: private: System::Void button1_Cli

【Qt学习笔记】14.界面的样式 (Qt Stylesheet) (待续)

一.StyleSheet的基本用法 StyleSheet : 样式单 Qt中支持StyleSheet技术,将界面的样式定义分离开来.采用和HTML/CSS类似的形式,使用一个文本文件来单独定义样式. 通常,用于定义界面样式的StyleSheet称为"皮肤" StyleSheet的定义: 定义一个StyleSheet,前面是类名(称为Selector),大括号内是属性定义,支持/**/注释语法 例如: /* 以GBK保存 */ QLineEdit {     background: ye

qt学习2——qt在window下的发布

很多时候,我们在用qt creator编译运行我们所写的程序时,程序能正常启动,但是当我们直接点击debug下面的exe文件时,程序却启动失败,会提示缺少某些dll文件,这是为什么呢? 是这样的,我们所写的qt程序,需要用到很多qt库,但这些库是以动态链接库的形式,加载在程序中的,如果用qt creator,则它会帮助我们将那些所需要的动态链接库链接到程序中去,但如果是我们手动去点击exe文件,则那些dll文件无法加载.如何解决呢? 解决方法有2: 1. 以环境变量的形式,将所需要的dll文件放

【笔记】js获取当前点击元素的索引

以前用jq 做过图片切换 滑动之类的特效现在想用js 试试是怎么一回事 jq图片切换的思路是用index()函数获取当前点击的按钮的索引然后根据索引值将对应索引的图片显示出来 于是查了一下js 是如何获取index的如下: js代码 var ul = document.getElementById("list"); var ul_child = ul.getElementsByTagName('li'); for (var i = 0; i < ul_child.length;

qt学习 (五) 登陆界面之连接按钮

登陆步骤是比对输入的账号密码与数据库中的表项目是否一致 一样,  跳出mainwidget对话框 不一样,跳出消息错误框 今天就是要进去, 因为进去以后是widget的窗口,所以把用来核对消息的数据库放在MAINwidget.cpp中, 再拿一个用户点击连接的子类 login.cpp, 就在这里面画用户登录账号密码textEdit 1 除了textEdit 基本都是button 慢慢加. 登录界面可以学的东西很多. 2 在widget.h文件中加入数据库所需要的头文件, #include <Qt

QT自定义精美换肤界面

陆陆续续用QT开发过很多项目,也用QT写过不少私活项目,也写过N个工具,一直梦寐以求能像VC一样可以很方便的有个自定义的界面,QSS的强大让我看到了很好的希望,辗转百度谷歌无数次,一直搜索QT相关的换肤文章,绝大部分的是一些简单的按钮文本样式,要做到整体换肤程度几乎不行,QTCN论坛里的奋斗的孩子写了个模仿360安全卫士系列,让我既惊喜有遗憾,惊喜的是能够用QT实现一个这么完整的360安全卫士界面,确实不错,也支持多种换肤,遗憾的是我下载过的是VC版本的,对于一直执着于用Qt Creator 来

qt学习(四)主窗选钮,显示新窗口。

游戏有选区这个习惯, 当然,我特指<冒险岛>了,有的时候就是打开一个主屏幕上五个按钮让你点击进入, 甚至有的时候进去了还要选哪个频道,游戏服务器都得分区,频道来完成功能.现在我们先进入想选的区,不需要的可以看以后的登陆窗口了. 这一次的主要功能是完成选区,选完进入输入账号界面. 这次用的是一个点完出啦一个所以需要两个窗口,在原有的基础上新建qt设计师界面类.选择dialogwithoutbutton. 把最后一个要显示的当作主界面, 其他的都可以选择dialog模板, 完成以后,画ui界面,

QT学习笔记—1

1.模态和非模态的区别:非模态可以同时操作两个窗口,模态的只能在顶层窗口关闭之后才能使用其他窗口 //同时显示出widget和dialog窗口,非模态     QDialog *dialog = new QDialog(this);     dialog->show(); //同时显示出widget和dialog窗口,模态     QDialog *dialog = new QDialog(this);     dialog->setModal(true);     dialog->sh