zoukankan      html  css  js  c++  java
  • hiero.ui获取实例名的方法

    在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参考模型的设计思路,对网络传输的各方面细节也有了大致的认识,基础知识很重要,补足了这类知识后,应用也会写的很扎实。

  • 相关阅读:
    第四周学习报告
    第三周学习报告
    第二周学习报告
    第一周学习报告
    大创首月学习计划
    20183122 综合实验《Python程序设计》实验报告
    20183122 实验三《Python程序设计》实验报告
    20183122 实验二《Python程序设计》实验报告
    数据存储和JSON,CSV
    python模块那点事
  • 原文地址:https://www.cnblogs.com/hksac/p/6812833.html
Copyright © 2011-2022 走看看