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 ...
随机推荐
- SDM439平台出现部分机型SD卡不能识别mmc1: error -110 whilst initialising SD card【学习笔记】
SDM439平台出现部分机型SD卡不能识别mmc1: error -110 whilst initialising SD card 打印了如下的log: - ::>[ after ms - :: ...
- unused function warning message(转)
這篇的對象是 static function,static function 若沒有其它 function 去存取的話,在 compile 時,會發生 unused error,可以在 functio ...
- CSS MDN - 选择器与样式化文字
- sass、less和stylus 相同与不同
sass.less和stylus的安装使用和入门实践 https://www.jianshu.com/p/1eaf366814e2 stylus 基础教程 https://blog.csdn.net/ ...
- php中类的不定参数使用示例
在类的实例化过程中,可以带或不带参数,那么构造函数将如何处理这些参数呢?为了使构造函数具有通用性,在定义构造函数时,一般不带参数,然后在其内部对参数情况进行处理.下面代码显示了一个完整的通用Perso ...
- Appium脚本(2):元素检测
场景: 有的按钮在第一次打开时显示,之后就不显示了,如更新提示.特性介绍等,面对这样的场景写了如下脚本,增加脚本的复用性. no_element_exception_2.py from appium ...
- shell语法学习
[原文] 菜鸟笔记shell教程学习. 本篇博客只是记录shell的一些关键语法,主要是做一个记录,有些内容也是copy过来的,并不是一个完整的教程,想完整学习shell的同学可以前往 shell脚本 ...
- soapUI使用-调用post方法
前言 soapUI的安装请查看此链接:https://www.cnblogs.com/linxiu-0925/p/10138771.html 使用步骤 1打开soapUI 2新建一个项目:New SO ...
- Component 'TABCTL32.OCX'错误的处理方法
错误:Component 'TABCTL32.OCX' or one of its dependencies not correctyly registered:a file is missing o ...
- cetos7 Mysql5.7安装
centos7 MySQL安装 一.检查是否已经存在mysql,若存在卸载,避免安装时产生一些错误 rpm -qa | grep -i mysql 若存在,使用rpm -e packname –nod ...