在hiero.ui中经常会通过hiero.ui.windowManager().windows()来获取当前QMainWindow中的QWidget子窗口,而这些子窗口是以实例对象的方式返回的,如果想具体调用某一个实例对象,就需要知道具体的类名及实例名,以防使用错误。

下面给出一段代码来获取类名及实例名:

#!/usr/bin/env python
# -*- coding: utf-8 -*- import hiero.ui
from PySide import QtGui, QtCore # get application name.
print QtGui.QApplication.instance().applicationName() for i in QtGui.QApplication.instance().children():
# get class name.
print i.metaObject().className()
# get instance name.
print i.objectName() for i in hiero.ui.windowManager().windows():
# get exsiting windows class name.
print 'className ', i.metaObject().className()
# get exsiting windows name.
print 'objectName ', i.objectName()

实际上,QObject多重继承了QMetaObject等对象。QObject中存在metaObject()这样一个方法来获取QMetaObject实例对象,该对象中便记录了QObject对象的一些基本元属性。QMetaObject::className()便可获取继承了QObject实例对象的类名。

通过QObject::objectName()又可以获取实例对象名称。

QtGui.QApplication.instance().applicationName()获取的则是当前运行的QApplication实例名称。

最近为了写一个数据传输应用,认真看了Qt的文档和源码,初窥了Qt的底层设计机制;又详细看了关于OSI参考模型的设计思路,对网络传输的各方面细节也有了大致的认识,基础知识很重要,补足了这类知识后,应用也会写的很扎实。

hiero.ui获取实例名的方法的更多相关文章

  1. 使用PHP获取根域名的方法!

    /** * 取得根域名 * @param type $domain 域名 * @return string 返回根域名 */ function GetUrlToDomain($domain) { $r ...

  2. java 反射机制之 getDeclaredMethod()获取方法,然后invoke执行实例对应的方法

    关于反射中getDeclaredMethod().invoke()的学习,来源于项目中的一行代码: SubjectService.class.getDeclaredMethod(autoMatchCo ...

  3. C#获取并修改文件扩展名的方法

    本文实例讲述了C#获取并修改文件扩展名的方法.分享给大家供大家参考.具体分析如下: 这里使用C#编程的方法改变文件扩展名的文件,必须使用Path类. Path类用来解析文件系统路径的各个部分.静态方法 ...

  4. SQL Server服务器名称与默认实例名不一致的修复方法

    SQL Server服务器名称与默认实例名不一致的修复方法 分类: 个人累积 SQl SERVER 数据库复制2011-08-10 09:49 10157人阅读 评论(0) 收藏 举报 sql ser ...

  5. JQuery 获取json数据$.getJSON方法的实例代码

    这篇文章介绍了JQuery 获取json数据$.getJSON方法的实例代码,有需要的朋友可以参考一下 前台: function SelectProject() { var a = new Array ...

  6. php获取数组长度的方法(有实例)

    php获取数组长度的方法,php为我们提供了两个函数可以计算一维数组长度,如count,sizeof都可以直接统计数组长度,还有获取二维数组的方法. 在php中获取数组长度方法很简单,php为我们提供 ...

  7. 获取sqlserver数据库中所有库、表、字段名的方法

    获取sqlserver数据库中所有库.表.字段名的方法 2009年03月12日 星期四 下午 12:51 1.获取所有数据库名: SELECT Name FROM Master..SysDatabas ...

  8. class_copyIvarList方法获取实例变量问题引发的思考

    在runtime.h中,你可以通过其中的一个方法来获取实例变量,那就是class_copyIvarList方法,具体的实现如下: - (NSArray *)ivarArray:(Class)cls { ...

  9. 获取安卓应用APK包名的方法

    应用商店按照符合Android标准的原则进行设计,使用包名(Package Name)作为应用的唯一标识.即:包名必须唯一,一个包名代表一个应用,不允许两个应用使用同样的包名.包名主要用于系统识别应用 ...

随机推荐

  1. nc/netcat命令

    nc/netcat命令 语法 nc/netcat(选项)(参数) 选项 -g<网关>:设置路由器跃程通信网关,最多设置8个: -G<指向器数目>:设置来源路由指向器,其数值为4 ...

  2. python面向对象之静态属性/静态方法/类方法/组合

    继续学习,不要松懈 #!/usr/bin/env python # coding:utf-8 class Campus: def __init__(self,name,addr,type): self ...

  3. Vue中通过v-for动态添加图片地址

    由于组件化问题,webpake在打包以后,src目录下的assets里面存放的img图片,路径已经更换.很多入坑的前端程序员在使用的时候,可能专破头也弄不清地址是什么个情况: 这里在使用vue-cli ...

  4. CSS效果:checkbox点选效果

    HTML: <html lang="en"> <head> <meta charset="UTF-8"> <meta ...

  5. Problem: Time(一道水却有意思的题

    Problem Description Digital clock use 4 digits to express time, each digit is described by 3*3 chara ...

  6. Angular4.0中常用指令

    Angular 4.0 1. 指令:*ngFor 循环带索引的两种方法: <tr *ngFor="let item of listWorkingDetails index as i&q ...

  7. postgresql,封装数据库语句时,查询报错。

    sql = "select password from admin where username = " + "\'" + username + "\ ...

  8. Mac 电脑终端上传项目到github上

    1.安装Git  去官网自己研究(这个是很全的,也很详细:http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b806 ...

  9. 推荐一个免费的在线IDE和终端

    墙裂推荐!支持众多语言,方便学习,测试,地址如下 https://www.tutorialspoint.com/codingground.htm

  10. Spring Boot相关~

    Introducing Spring Boot Spring Boot makes it easy to create stand-alone, production-grade Spring-bas ...