当前位置: 首页 > news >正文

展示型网站重点wordpress 登录集成

展示型网站重点,wordpress 登录集成,陕西富国建设工程有限公司网站,北京工程交易中心官网目录 1. Qt事件介绍#xff1a; 2. 事件的处理 示例1#xff1a;鼠标进入(enterEvent)与离开事件(leaveEvent) 示例2#xff1a;鼠标点击事件(mousePressEvent) 示例3#xff1a;鼠标移动事件(mouseMoveEvent) 3. 按键事件 4. 定时器 5. 窗口事件 1. Qt事件介绍 2. 事件的处理  示例1鼠标进入(enterEvent)与离开事件(leaveEvent) 示例2鼠标点击事件(mousePressEvent) 示例3鼠标移动事件(mouseMoveEvent) 3. 按键事件 4. 定时器 5. 窗口事件 1. Qt事件介绍 事件是应用程序内部或者外部产生的事情或者动作的统称。在Qt中使用⼀个对象来表示⼀个事件。所 有的Qt事件均继承于抽象类QEvent。事件是由系统或者Qt平台本身在不同的时刻发出的。当用户按下鼠标、敲下键盘或者是窗口需要重新绘制的时候都会发出⼀个相应的事件。⼀些事件是在用户操作时发出如键盘事件、鼠标事件等另⼀些事件则是由系统本身自动发出如定时器事件。常见的Qt事件如下 2. 事件的处理  事件处理⼀般常用的方法为重写相关的Event函数。 示例1鼠标进入(enterEvent)与离开事件(leaveEvent) 处理鼠标进入与离开事件 1.新建Qt项目基类选择QWidget同时勾选UI界面文件 2. 在ui文件添加label控件 3. 创建QLabel的子类重写enterEvent和leaveEvent ① ② 此时项目多出两个新文件 4. 为了方便给label指定父对象调整一下构造函数 5.函数重写在label.h中 注意重写函数时要确保函数名字和参数列表完全一致 谨防拼写错误为避免错误可以在帮助文档查找目标函数复制粘贴即可 class Label : public QLabel {Q_OBJECT public:Label(QWidget* parent);void enterEvent(QEvent *event);void leaveEvent(QEvent *event); }; 6. 在label.cpp重写enterEvent与leaveEvent方法 按alt回车键转到函数定义 void Label::enterEvent(QEvent *event) {(void) event;//躲避编译器警告qDebug() enterEvent; }void Label::leaveEvent(QEvent *event) {(void) event;//躲避编译器警告qDebug() leaveEvent; } 此时执行程序其实并没有起到效果这是因为此时界面上的label并不是我们定义的Label类的实例其仍然是系统的QLabel创建的实例。 那么问题来了此时也只能从界面上拖动QLabel来创建实例呀如何才能使界面上的label是来自我们自己定义的Label类呢步骤继续 7. 回到ui界面 效果如图 学到了这里我们再来回顾一下在Qt入门3——常用控件1中所写的“给女神表白的程序”当时鼠标点击的时候按钮才会移动现在我希望鼠标进入按钮按钮就随机移动代码如下 1.按照如上步骤添加一个Button类再将“拒绝”按钮提升为Button类 2.重写enterEvent #include button.hButton::Button(QWidget* parent) : QPushButton(parent) {srand(time(0)); }void Button::enterEvent(QEvent *event) {(void) event;//获取父窗口QWidget* parentwidget this-parentWidget();//获取父窗口可用区域的大小int width parentwidget-geometry().width();int height parentwidget-geometry().height();int x rand() % width;int y rand() % height;this-move(x,y); } 效果如图按钮还没来得及点击就跑了 示例2鼠标点击事件(mousePressEvent) 当鼠标点击时获取相应的坐标值 1. 创建两个label 2. 按照示例1的7将下面的label提升。 3. 在label.h中创建一个私有变量QString类型的私有变量coordText 4. 重写mousePressEvent函数详细步骤参考示例1 void Label::mousePressEvent(QMouseEvent *ev) {if(ev-button() Qt::LeftButton){coordText QString(此处以label为准的坐标为(%1, %2)).arg(ev-x()).arg(ev-y());}else if(ev-button() Qt::RightButton){coordText QString(此处以主窗口为准的坐标(%1, %2)).arg(ev-globalX()).arg(ev-globalY());}this-setText(coordText); }效果如图 鼠标释放事件(mouseReleaseEvent)与鼠标双击事件(mouseDoubleClickEvent)与示例2相同不过是需要重写的函数不同罢了此处不再演示。 示例3鼠标移动事件(mouseMoveEvent) 此示例让鼠标移动事件发生在整个窗口所以不再自定义类。 1.在ui界面创建一个label来显示鼠标移动的坐标 2.重写mouseMoveEvent void Widget::mouseMoveEvent(QMouseEvent *event) {ui-label-setText(( QString::number(event-x()) , QString::number(event-y()) )); } 3.  此时运行程序不会有任何反应这是因为鼠标移动不同于鼠标按下和释放随便移动一下鼠标就会产生大量的鼠标移动事件。当进行捕获事件时尤其是执行一些复杂的逻辑时程序的负担会很重可能会产生卡顿的情况。所以默认情况下Qt不会对鼠标移动事件进行跟踪除非显式地告诉Qt //在构造函数中将setMouseTracking设为true this-setMouseTracking(true); 效果如图 示例4鼠标滚轮滑动事件(wheelEvent) 1.在ui界面创建一个label来显示鼠标移动的坐标 2.重写wheelEvent void Widget::wheelEvent(QWheelEvent *event) {//delta()获取到这次事件鼠标滚轮滚动了多远ui-label-setText(QString::number(event-delta())); }效果如图滚动一次为120像素 3. 按键事件 Qt中的按键事件是通过QKeyEvent类来实现的。当键盘上的按键被按下或者被释放时键盘事件便会触发。 可以在Qt帮助文档中查看QKeyEvent类 组合按键 示例 void Widget::keyPressEvent(QKeyEvent *event) {//用label显示按下的按键对应的valueui-label-setText(QString::number(event-key()));//用label_2显示按下的单个按键if(event-key() Qt::Key_A){ui-label_2-setText(按下了A键);}//用label_3显示按下的组合按键if(event-key() Qt::Key_A event-modifiers() Qt::ControlModifier){ui-label_3-setText(按下了ctrlA键);} } 效果如图 4. 定时器 Qt 中在进行窗口程序的处理过程中经常要周期性的执行某些操作或者制作一些动画效果使用定时器就可以实现。所谓定时器就是在间隔一定时间后去执行某一个任务。 Qt中的定时器分为QTimerEvent和QTimer这2个类。 QTimerEvent类用来描述一个定时器事件。在使用时需要通过startTimer()函数来开启一个定时器这个函数需要输入一个以毫秒为单位的整数作为参数来表明设定的时间它返回的整型值代表 这个定时器。当定时器溢出时即定时时间到达就可以在timerEvent()函数中获取该定时器的编号来进行相关操作 QTimer类来实现⼀个定时器它提供了更高层次的编程接口如可以使用信号和槽还可以设置只运行一次的定时器。 示例 1.ui界面创建定时器 2. 重写timerEvent Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui-setupUi(this);//开启定时器事件//此处timerId是一个定时器的身份标识timerId this-startTimer(1000);//timeId为此类的私有变量 }void Widget::timerEvent(QTimerEvent *event) {//如果一个程序中存在多个定时器startTimer创建的定时器此时每个定时器都会触发timerEvent函数//先判断这次触发是否是我们想要的定时器触发的if(event-timerId() ! this-timerId){//如果不是我们的定时器触发的就直接忽略//当前程序中只有这一个定时器return;}int value ui-lcdNumber-intValue();if(value 0){//停止定时器this-killTimer(this-timerId);return;}value - 1;ui-lcdNumber-display(value); } 效果如图 5. 窗口事件 窗口事件有窗口移动事件moveEvent和窗口大小改变事件resizeEvent。 示例 Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui-setupUi(this);QVBoxLayout* layout new QVBoxLayout();layout-addWidget(ui-label);layout-addWidget(ui-label_2);this-setLayout(layout); }Widget::~Widget() {delete ui; }void Widget::moveEvent(QMoveEvent *event) {QPoint pos event-pos();QString text QString(窗口现在的坐标为(%1,%2)).arg(pos.x()).arg(pos.y());ui-label-setText(text); }void Widget::resizeEvent(QResizeEvent *event) {QSize size event-size();QString text QString(窗口现在的长度为%1,宽度为%2).arg(size.width()).arg(size.height());ui-label_2-setText(text); }
http://www.hkea.cn/news/14419809/

相关文章:

  • 杭州网站维护外包南京网站策划公司
  • 网站遮罩是什么最新的新闻 今天
  • 贵州建设职业技术学院招商网站wordpress端口映射
  • 免费网站建设合同范本中国中标信息查询系统
  • 做竞价的网站有利于优化吗移动端是指手机还是电脑
  • 学做网站根学ps有前途吗wordpress 上传到七牛
  • 个人备案网站类型学校网站建设策划书
  • 城乡建设杂志社官方网站网站开发的晋升晋升空间路径
  • 门户网站建设汇报响应式网站模板 金融
  • 深圳网站设计兴田德润简介浙江网缘科技有限公司
  • 印度做网站设计做网站后端要学什么
  • 微信保修网站开发源代码软文素材网
  • 怎么添加网站百度商店应用市场
  • 网站建设合同怎么写石家庄商标设计
  • 公司名被注册网站电商网站如何生成app
  • 天津网站公司门户网站网站建设
  • 风雨同舟网站建设wordpress默认播放器怎么用
  • 海西州wap网站建设公司用哪个程序做网站收录好6
  • 永嘉网站制作系统无锡做食品网站的公司
  • 网站创建的流程是什么营销型网站重要特点是?
  • 网站设计工具更好的做网站运营推广怎么做
  • 深圳网站seo设计网站一个人可以做吗
  • 广东网站建设系统怎么自己弄网站
  • wordpress本地安装插件长沙seo培训班
  • 如何做淘宝优惠卷网站济南百姓网免费发布信息网
  • 广东高端网站设计公司价格wordpress json 登陆
  • 免费外贸网站模板下载小程序模板库
  • 如何做百度网站肇庆网站建设咨询
  • 外贸多语言网站十大免费ppt网站在线
  • 廊坊网站关键词排名哪个网站可以做行程表