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. SQLSERVER教师学生成绩课程四表联合各种SQL考题

    --CREATE DATABASE EXAM_1 --GO USE EXAM_1 --判断并删除表 IF OBJECT_ID('Scores') IS NOT NULL DROP TABLE Scor ...

  2. 系统树图 | Dendrogram construction | Phylogenetic Analysis

    Molecular Architecture of the Mouse Nervous System 表示亲缘关系的树状图解 先看文章里是怎么做的: Dendrogram construction A ...

  3. C# redis客户端帮助类

    需要在NuGet里面引用ServiceStack.Redis using ServiceStack.Redis; using ServiceStack.Redis.Generic; using Sys ...

  4. 联合主键SQL 联合索引

    联合主键索引 联合索引 ALTER TABLE [dbo].[Tb_Shop] ADD CONSTRAINT [shopno] UNIQUE NONCLUSTERED ( [ShopGid] ASC, ...

  5. 使用协方差矩阵的特征向量PCA来处理数据降维

    取2维特征,方便图形展示 import matplotlib.pyplot as plt from sklearn.decomposition import PCA from sklearn.data ...

  6. teamviewer破解版

    简介 TeamViewer是一个能在任何防火墙和NAT代理的后台用于远程控制的应用程序,桌面共享和文件传输的简单且快速的解决方案.为了连接到另一台计算机,只需要在两台计算机上同时运行 TeamView ...

  7. 应用程序正常初始化(0xc0000135)失败。请单击“确定”,终止应用程序。

    应用程序正常初始化(0xc0000135)失败.请单击“确定”,终止应用程序. 没有安装对应版本的.NET FRAMEWORK.

  8. harbor镜像仓库-https访问配置

    1. 证书的生成 在测试或开发环境中,您可以选择使用自签名证书,而不是来自受信任的第三方CA的证书.以下内容将向您展示如何创建自己的CA,并使用您的CA签署服务器证书和客户端证书.   1.1 生成c ...

  9. 【Python学习之八】设计模式和异常

    环境 虚拟机:VMware 10 Linux版本:CentOS-6.5-x86_64 客户端:Xshell4 FTP:Xftp4 python3.6 一.设计模式1.单例模式确保某一个类只有一个实例, ...

  10. 关于while read line使用read -p失效问题

    while stdin 原来默认是/dev/tty,被重定向到管道或文件后,如果你还想读屏幕(/dev/tty),那就单独执行某个命令时在显式的将stdin再指向 /dev/tty #!/bin/ba ...