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. 2019_软工实践_Beta(2/5)

    队名:955 组长博客:点这里! 作业博客:点这里! 组员情况 组员1(组长):庄锡荣 过去两天完成了哪些任务 文字/口头描述 ?按照时间进度的安排进行相应的检查 展示GitHub当日代码/文档签入记 ...

  2. Spark2.x(五十九):yarn-cluster模式提交Spark任务,如何关闭client进程?

    问题: 最近现场反馈采用yarn-cluster方式提交spark application后,在提交节点机上依然会存在一个yarn的client进程不关闭,又由于spark application都是 ...

  3. mysql-connector-java(6.0以上)的时差问题

    一.背景 通过mybatis日志观察插入数据库的时间为当前时间,但是打开数据库表发现时间滞后了8个小时. 二.推论及解决 很容易猜到这是时区的问题. 三.最后找到的问题点如下: jdbc:mysql: ...

  4. Java基础 变量名的开头可以使用$

        JDK :OpenJDK-11      OS :CentOS 7.6.1810      IDE :Eclipse 2019‑03 typesetting :Markdown   code ...

  5. typescript - 3.函数

    (1)函数的定义 ## 函数声明法 // function run():string{ // return 'run'; // } //错误写法,返回类型错误 // function run():st ...

  6. 时间工具类DateUtil

    import java.sql.Timestamp; import java.text.ParseException; import java.text.SimpleDateFormat; impor ...

  7. springMVC和struts2有什么不同?为什么要用springMVC或者struts2?让你实现一个MVC框架大概如何设计?

    [问题一:不同] (1)框架机制 1.Struts2采用Filter(StrutsPrepareAndExecuteFilter)实现,SpringMVC(DispatcherServlet)则采用S ...

  8. Archer和ArcherUI配置说明

    如果Bladex的网关端口是80,则需要修改Archer服务端口,并修改ArcherUI的vue.config.js的端口

  9. Docker 安装 redis 并实现配置文件启动,数据文件本地持久化

    1,笔者使用的是 Linux 的 Centos7 版本  2,安装 Docker,不会安装可以移步 Docker 在 Linux 平台的安装 以及一些常见命令 3,下载 docker 镜像 3.1,首 ...

  10. 手贱重置了mysql密码,导致登陆不进去的解决办法

    上午手残,重置了下MySQL的密码,导致用命令登陆不进去 由于版本的问题,导致网上的方法都不可用 折腾了一上午,摸索+参考官方文档,终于搞定 利用--init-file 第一步,关掉系统服务     ...