PS: 本文使用的是Qt 4.8.4版本,不同版本代码可能会有差异

设置窗口标题

setWindowTitle(QString::fromLocal8Bit("易语言"));

禁用窗口最大化按钮

setWindowFlags(Qt::Dialog | Qt::WindowMinimizeButtonHint);

禁止窗口改变大小

setFixedSize(this->width(), this->height());

鼠标左键按下

// 重写虚函数
void mousePressEvent(QMouseEvent* event);
void QLoginSuccess::mousePressEvent(QMouseEvent* event)
{
m_start = event->pos();
// 获取当前lable空间的坐标
QPoint lablePos = ui.label->pos();
if ((m_start.x() > lablePos.x()) && (m_start.x() < (lablePos.x() +)) && (m_start.y() > lablePos.y()) && (m_start.y() < (lablePos.y() +)))
{
qDebug() << GBK::ToUnicode("在控件上!") << endl;
isNeedDrag = true;
}
}

鼠标移动

void mouseMoveEvent(QMouseEvent* event);
void QLoginSuccess::mouseMoveEvent(QMouseEvent* event)
{
if (isNeedDrag == true)
{
m_end = event->pos();
m_PosVector.push_back(m_end);
if (m_PosVector.size() >= )
{
QPoint pp = m_PosVector.at(m_PosVector.size() - ) - m_PosVector.at(m_PosVector.size() - ) + ui.label->pos();
ui.label->move(pp.x(), pp.y());
}
} }

鼠标释放

void mouseReleaseEvent(QMouseEvent* event);
void QLoginSuccess::mouseReleaseEvent(QMouseEvent* event)
{
// 标志位置为false
isNeedDrag = false;
}

获取键盘按键

void keyPressEvent(QKeyEvent * event);
void PlaneGame::keyPressEvent(QKeyEvent * event)
{
if (event->key() == Qt::Key_Left)
{
if (ui.meLabel->pos().x() >= )
{
ui.meLabel->move(ui.meLabel->pos().x() - , ui.meLabel->pos().y());
}
}
else if (event->key() == Qt::Key_Right)
{
if (ui.meLabel->pos().x() <= )
{
ui.meLabel->move(ui.meLabel->pos().x() + , ui.meLabel->pos().y());
}
}
else if (event->key() == Qt::Key_F1)
{
CBullet* bullet = new CBullet(this);
bullet->move(ui.meLabel->pos().x() + , ui.meLabel->pos().y() + );
bullets.push_back(bullet);
bullet->show();
}
}

关闭对话框事件处理函数

void closeEvent(QCloseEvent* event);

 Qt 生成随机数

// 生成随机数种子(一般在构造函数执行一次就行)
qsrand(QTime(, , ).secsTo(QTime::currentTime()));
// 随机产生一个0到7之间的数
int n = qrand() % ;

 

Qt 窗口相关的常用操作的更多相关文章

  1. docker镜像相关的常用操作

    1.保存镜像 #docker save 镜像名称 -o 保存的完整地址和文件名 docker save zhoushiya/zhiboyuan -o d:/zhiboyuan.tar 2.载入镜像 # ...

  2. selenium常用操作,查找元素,操作Cookie,获取截图,获取窗口信息,切换,执行js代码

    目录: 1. 常用操作 2. 查找元素 3. 操作Cookie 4. 获取截图 5. 获取窗口信息 6. 切换 7. 执行JS代码 简介 selenium.webdriver.remote.webdr ...

  3. electron窗口相关操作(放大缩小退出,可拖动,可resize等)

    如下是对窗口最大化,最小化等相关操作: import { ipcMain, ipcRenderer, remote } from 'electron' import is from 'electron ...

  4. Qt窗口操作函数(最大化,全屏,隐藏最大化,最小化)

    Qt窗口中的一些小技术总结 //Qt主窗口没有最小化,最大化按钮且最大化显示  int main(int argc, char *argv[]) { QApplication a(argc, argv ...

  5. vim常用操作技巧与配置

    vi是linux与unix下的常用文本编辑器,其运行稳定,使用方便,本文将分两部分对其常用操作技巧和配置进行阐述,其中参考了网上的一些文章,对作者表示感谢 PART1 操作技巧 说明: 以下的例子中  ...

  6. QT窗口置顶/真透明/背景模糊/非矩形/跳过任务栏分页器/无边框/无焦点点击/焦点穿透

    qt 窗口置顶/真透明/背景模糊/非矩形/跳过任务栏分页器/无边框/无焦点点击/焦点穿透 窗口置顶qt 里是 setWindowFlags(Qt::WindowStaysOnTopHint)kde 里 ...

  7. 关于vim的常用操作

    vim常用操作和使用技巧 vi是linux与unix下的常用文本编辑器,其运行稳定,使用方便,本文将分两部分对其常用操作技巧和配置进行阐述,其中参考了网上的一些文章,对作者表示感谢 PART1 操作技 ...

  8. vim常用操作和使用技巧

    vi是linux与unix下的常用文本编辑器,其运行稳定,使用方便,本文将分两部分对其常用操作技巧和配置进行阐述,其中参考了网上的一些文章,对作者表示感谢 PART1 操作技巧 说明: 以下的例子中  ...

  9. python+selenium实现动态爬取及selenuim的常用操作

    应用实例可以参考博客中的12306自动抢票应用 https://www.cnblogs.com/mumengyun/p/10001109.html 动态网页数据抓取 什么是AJAX: AJAX(Asy ...

随机推荐

  1. egg.js搭建 api设置跨域

    1.egg简述 Egg.js,为企业级框架和应用而生,是阿里开源的企业级 Node.js 框架. 2.特点 Egg 奉行『约定优于配置』,按照一套统一的约定进行应用开发,团队内部采用这种方式可以减少开 ...

  2. IDEA将指定package(指定文件)打成jar包

    写在前面 真的是好记性不如烂笔头 需求 将项目中包名为org的package打成jar包 步骤 1.选择Artifacts>绿色+号>JAR>Empty name自定义, 我这里命名 ...

  3. go-micro框架学习1-准备工作

    下载golang环境,地址:https://studygolang.com/dl,这里使用的是1.11.10版本. 下载golang IDE,这里使用Lite,下载地址:http://liteide. ...

  4. [Tableau] Tableau for BI

    主要链接 Tableau AWS 上的 Tableau Server Tableau on AWS Quick Starts Tableau教程[本篇来源] Tableau Desktop for U ...

  5. [ Mongodb ] 全量备份和增量备份

    1. 前言 由于线上的mongodb 数据体量越来越大,如果没有完善的备份方案,发生故障势必造成业务很长时间的暂停.参考了网上方案,写出以下总结和备份方案: 备份方案分为两种:全备和增量备份,二者结合 ...

  6. bitmap以及异或运算法

    一 有40亿个整数,再给一个新的整数,需要判断新的整数是否在1亿个整数中. 此处需要用到bitmap方法,每个整数用一个bit表示,1表示存在,0表示不存在.因此一个4字节的int=32个bit也就是 ...

  7. ceph架构简介

    ceph架构简介 在测试OpenStack的后端存储时,看到了ceph作为后端存储时的各种优势 ,于是查询资料,总结了这篇ceph架构的博客,介绍了ceph的架构和ceph的核心组件.ceph整体十分 ...

  8. FineUI window弹层设置

    需在页面先设置   <f:Window ID="Window1" runat="server" Height="600px" Widt ...

  9. 分布式全文搜索引擎(ElasticSearch)

    1. ElasticSearch介绍(简称ES) ES即为了解决原生Lucene使用的不足,优化Lucene的调用方式,并实现了高可用的分布式集群的搜索方案. 首先,ES的索引库管理支持依然是基于Ap ...

  10. [基础]C++:名字的作用域

    每个名字都有自己的活动空间,同一个名字在不同的作用域可能指向不同的实体. 作用域:通常是以{}为分隔. 名字的有效区域开始于名字的声明,以声明语句所在的末端为结束. #include<iostr ...