Qt 窗口相关的常用操作
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 窗口相关的常用操作的更多相关文章
- docker镜像相关的常用操作
1.保存镜像 #docker save 镜像名称 -o 保存的完整地址和文件名 docker save zhoushiya/zhiboyuan -o d:/zhiboyuan.tar 2.载入镜像 # ...
- selenium常用操作,查找元素,操作Cookie,获取截图,获取窗口信息,切换,执行js代码
目录: 1. 常用操作 2. 查找元素 3. 操作Cookie 4. 获取截图 5. 获取窗口信息 6. 切换 7. 执行JS代码 简介 selenium.webdriver.remote.webdr ...
- electron窗口相关操作(放大缩小退出,可拖动,可resize等)
如下是对窗口最大化,最小化等相关操作: import { ipcMain, ipcRenderer, remote } from 'electron' import is from 'electron ...
- Qt窗口操作函数(最大化,全屏,隐藏最大化,最小化)
Qt窗口中的一些小技术总结 //Qt主窗口没有最小化,最大化按钮且最大化显示 int main(int argc, char *argv[]) { QApplication a(argc, argv ...
- vim常用操作技巧与配置
vi是linux与unix下的常用文本编辑器,其运行稳定,使用方便,本文将分两部分对其常用操作技巧和配置进行阐述,其中参考了网上的一些文章,对作者表示感谢 PART1 操作技巧 说明: 以下的例子中 ...
- QT窗口置顶/真透明/背景模糊/非矩形/跳过任务栏分页器/无边框/无焦点点击/焦点穿透
qt 窗口置顶/真透明/背景模糊/非矩形/跳过任务栏分页器/无边框/无焦点点击/焦点穿透 窗口置顶qt 里是 setWindowFlags(Qt::WindowStaysOnTopHint)kde 里 ...
- 关于vim的常用操作
vim常用操作和使用技巧 vi是linux与unix下的常用文本编辑器,其运行稳定,使用方便,本文将分两部分对其常用操作技巧和配置进行阐述,其中参考了网上的一些文章,对作者表示感谢 PART1 操作技 ...
- vim常用操作和使用技巧
vi是linux与unix下的常用文本编辑器,其运行稳定,使用方便,本文将分两部分对其常用操作技巧和配置进行阐述,其中参考了网上的一些文章,对作者表示感谢 PART1 操作技巧 说明: 以下的例子中 ...
- python+selenium实现动态爬取及selenuim的常用操作
应用实例可以参考博客中的12306自动抢票应用 https://www.cnblogs.com/mumengyun/p/10001109.html 动态网页数据抓取 什么是AJAX: AJAX(Asy ...
随机推荐
- egg.js搭建 api设置跨域
1.egg简述 Egg.js,为企业级框架和应用而生,是阿里开源的企业级 Node.js 框架. 2.特点 Egg 奉行『约定优于配置』,按照一套统一的约定进行应用开发,团队内部采用这种方式可以减少开 ...
- IDEA将指定package(指定文件)打成jar包
写在前面 真的是好记性不如烂笔头 需求 将项目中包名为org的package打成jar包 步骤 1.选择Artifacts>绿色+号>JAR>Empty name自定义, 我这里命名 ...
- go-micro框架学习1-准备工作
下载golang环境,地址:https://studygolang.com/dl,这里使用的是1.11.10版本. 下载golang IDE,这里使用Lite,下载地址:http://liteide. ...
- [Tableau] Tableau for BI
主要链接 Tableau AWS 上的 Tableau Server Tableau on AWS Quick Starts Tableau教程[本篇来源] Tableau Desktop for U ...
- [ Mongodb ] 全量备份和增量备份
1. 前言 由于线上的mongodb 数据体量越来越大,如果没有完善的备份方案,发生故障势必造成业务很长时间的暂停.参考了网上方案,写出以下总结和备份方案: 备份方案分为两种:全备和增量备份,二者结合 ...
- bitmap以及异或运算法
一 有40亿个整数,再给一个新的整数,需要判断新的整数是否在1亿个整数中. 此处需要用到bitmap方法,每个整数用一个bit表示,1表示存在,0表示不存在.因此一个4字节的int=32个bit也就是 ...
- ceph架构简介
ceph架构简介 在测试OpenStack的后端存储时,看到了ceph作为后端存储时的各种优势 ,于是查询资料,总结了这篇ceph架构的博客,介绍了ceph的架构和ceph的核心组件.ceph整体十分 ...
- FineUI window弹层设置
需在页面先设置 <f:Window ID="Window1" runat="server" Height="600px" Widt ...
- 分布式全文搜索引擎(ElasticSearch)
1. ElasticSearch介绍(简称ES) ES即为了解决原生Lucene使用的不足,优化Lucene的调用方式,并实现了高可用的分布式集群的搜索方案. 首先,ES的索引库管理支持依然是基于Ap ...
- [基础]C++:名字的作用域
每个名字都有自己的活动空间,同一个名字在不同的作用域可能指向不同的实体. 作用域:通常是以{}为分隔. 名字的有效区域开始于名字的声明,以声明语句所在的末端为结束. #include<iostr ...