各类位置信息

Qt 提供了很多关于获取窗体位置及显示区域大小的函数

代码:

 1 from PyQt4.QtGui import *
 2 from PyQt4.QtCore import *
 3 import sys
 4
 5 class Geometry(QDialog):
 6
 7     def __init__(self, parent=None):
 8         super(Geometry, self).__init__(parent)
 9
10         self.setWindowTitle("Geometry")
11
12         label1 = QLabel("x0:")
13         label2 = QLabel("y0:")
14         label3 = QLabel("frameGeometry():")
15         label4 = QLabel("pos():")
16         label5 = QLabel("geometry():")
17         label6 = QLabel("width():")
18         label7 = QLabel("height():")
19         label8 = QLabel("rect():")
20         label9 = QLabel("size():")
21
22         self.xLabel = QLabel()
23         self.yLabel = QLabel()
24         self.frameGeoLabel = QLabel()
25         self.posLabel = QLabel()
26         self.geoLabel = QLabel()
27         self.widthLabel = QLabel()
28         self.heightLabel = QLabel()
29         self.rectLabel = QLabel()
30         self.sizeLabel = QLabel()
31
32         layout = QGridLayout()
33         layout.addWidget(label1, 0, 0)
34         layout.addWidget(self.xLabel, 0, 1)
35         layout.addWidget(label2, 1, 0)
36         layout.addWidget(self.yLabel, 1, 1)
37         layout.addWidget(label3, 2, 0)
38         layout.addWidget(self.frameGeoLabel, 2, 1)
39         layout.addWidget(label4, 3, 0)
40         layout.addWidget(self.posLabel, 3, 1)
41         layout.addWidget(label5, 4, 0)
42         layout.addWidget(self.geoLabel, 4, 1)
43         layout.addWidget(label6, 5, 0)
44         layout.addWidget(self.widthLabel, 5, 1)
45         layout.addWidget(label7, 6, 0)
46         layout.addWidget(self.heightLabel, 6, 1)
47         layout.addWidget(label8, 7, 0)
48         layout.addWidget(self.rectLabel, 7, 1)
49         layout.addWidget(label9, 8, 0)
50         layout.addWidget(self.sizeLabel, 8, 1)
51
52         self.setLayout(layout)
53
54         self.updateLabel()
55     #重定义 QWidget 的 moveEvent()和 resizeEvent()函数,分别响应对话框的移动事件和调整大小事件,
56     # 使得窗体在被移动或窗体大小发生改变时,能同步更新各函数结果的显示
57     def moveEvent(self, event):
58         self.updateLabel()
59
60     def resizeEvent(self, Event):
61         self.updateLabel()
62     # updateLabel()函数负责调用各个位置函数获得结果并显示
63     def updateLabel(self):
64
65         temp = QString()
66
67         self.xLabel.setText(temp.setNum(self.x()))
68         self.yLabel.setText(temp.setNum(self.y()))
69         self.frameGeoLabel.setText(temp.setNum(self.frameGeometry().x())+","+
70                 temp.setNum(self.frameGeometry().y())+","+
71                 temp.setNum(self.frameGeometry().width())+","+
72                 temp.setNum(self.frameGeometry().height()))
73         self.posLabel.setText(temp.setNum(self.pos().x())+","+
74                 temp.setNum(self.pos().y()))
75         self.geoLabel.setText(temp.setNum(self.geometry().x())+","+
76                 temp.setNum(self.geometry().y())+","+
77                 temp.setNum(self.geometry().width())+","+
78                 temp.setNum(self.geometry().height()))
79         self.widthLabel.setText(temp.setNum(self.width()))
80         self.heightLabel.setText((temp.setNum(self.height())))
81         self.rectLabel.setText(temp.setNum(self.rect().x())+","+
82                 temp.setNum(self.rect().y())+","+
83                 temp.setNum(self.rect().width())+","+
84                 temp.setNum(self.rect().height()))
85         self.sizeLabel.setText(temp.setNum(self.size().width())+","+
86                 temp.setNum(self.size().height()))
87
88
89 app = QApplication(sys.argv)
90 form = Geometry()
91 form.show()
92 app.exec_()

时间: 2024-10-21 19:56:53

各类位置信息的相关文章

【qt学习002】各类位置信息和各类标准输入框

不得不吐(赞)槽(扬)一下<Linux窗口程序设计-Qt4精彩实例分析>,书中的示例基本上是不完整的,只给出了相应知识点的实现,若要完整地运行整个工程,这需要读者来添加其余代码.在添加代码的过程中,因为不熟,常常是战战兢兢的,查很多资料,然后才敢往上写点代码,有时候挺浪费时间的. 今天学示例3和4,各类位置信息,各类标准输入框. 在编译时遇见一个错误:undefined reference to vtable for. 查资料找到解决方法,先qmake然后再构建,再运行即可.虽然解决了这个问题

基于位置信息的聚类算法介绍及模型选择

百度百科 聚类:将物理或抽象对象的集合分成由类似的对象组成的多个类的过程被称为聚类.由聚类所生成的簇是一组数据对象的集合,这些对象与同一个簇中的对象彼此相似,与其他簇中的对象相异."物以类聚,人以群分",在自然科学和社会科学中,存在着大量的分类问题.聚类分析又称群分析,它是研究(样品或指标)分类问题的一种统计分析方法.聚类分析起源于分类学,但是聚类不等于分类.聚类与分类的不同在于,聚类所要求划分的类是未知的. 分类和聚类算法一直以来都是数据挖掘,机器学习领域的热门课题,因此产生了众多的

Android模拟位置信息

Android模拟位置程序,俗称GPS欺骗,只能修改采用GPS定位的软件. 手机定位方式目前有4种:基站定位,WIFI定位,GPS定位,AGPS定位 常见的修改手法: 1. 抓包欺骗法,抓包改包欺骗服务器端, 但是得专门去针对某款app,而且现在很多app数据包都加密了 2. hook java层经纬度获取函数, 这个方法以前可以用,现在不行了 3. hook native层经纬度获取函数 4. 使用允许模拟地址位置信息(不是很通用有版本限制) 为了修改微信朋友圈地理位置信息,为了好玩 试过了上

使用phonegap获取位置信息

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Compass Example</title> <script type="text/javascript" charset="UTF-8" src="cordova.js"></script> <scrip

如何将位置信息写入JPEG图片文件【android】

通过ExifInterface可以将拍照时的一些属性信息写入图片文件里,其中包括经纬度信息.本文介绍一种将经纬度坐标写入JPEG图片文件的方法! 核心代码 /** * 浮点型经纬度值转成度分秒格式 * * @param coord * @return */ public String decimalToDMS(double coord) { String output, degrees, minutes, seconds; // gets the modulus the coordinate d

CoreLocation---iOS中的位置信息

在iOS系统中, 使用CoreLocation可以获取到用户当前位置, 以及设备移动信息. 基本步骤: import CoreLocation, ViewController 继承 CLLocationManagerDelegate 协议, 实现CLLocationManager的didUpdateLocations, didUpdateToLocation等方法, 开始定位: 调用CLLocationManager的startUpdatingLocation方法. 设备自身的定位要开启. Vi

微信服务号开发-获取用户位置信息

微信服务号开发-获取用户位置信息 在微信公众号开发的中,获取用户位置信息是非常常见的功能需求,通过用户的位置信息,可以做一些地图导航,以及基于LBS的营销活动.下面将介绍微信服务号获取用户位置信息的原理与步骤. 原理 1. 位置信息获取流程 2. 位置信息报文 <xml><ToUserName><![CDATA[gh_public_member_account]]></ToUserName> <FromUserName><![CDATA[o

iOS 开发 - 在哪里更新 custom view 的subviews 的位置信息? (drawRect: 还是 layoutSubviews ?)

对于custom,可以通过addSubview: 增加内容,也可以通过Core Graphic绘制内容. 对于后者,在drawRect: 进行,位置信息随之确定 对于前者,一般在view初始化时进行(也可以动态地在其它地方进行),设置subview的位置信息时,需要了解下面的区别: - 在 layoutSubviews中,此时custom view 的bounds虽然已经确定,但是对于有constraint的subview(比如在nib文件中添加的约束),其位置信息还没有按照constraint

线程运行栈StackTrace用法,代码调用树查看,出错代码位置信息提示,代码所在类名包名文件名查看

1.代码调用树查看 2.出错代码位置信息提示 功能函数: /** 在LogCat中输出提示信息info,并给出输出该信息在代码中的完整调用树 */ public static void MessageWithSrcTree(String info) { StackTraceElement[] elem = Thread.currentThread().getStackTrace(); //从当前位置,获取代码调用堆栈 for(StackTraceElement e : elem) { Strin