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

  • 相关阅读:
    mac上python3安装HTMLTestRunner
    双目深度估计传统算法流程及OpenCV的编译注意事项
    深度学习梯度反向传播出现Nan值的原因归类
    1394. Find Lucky Integer in an Array
    1399. Count Largest Group
    1200. Minimum Absolute Difference
    999. Available Captures for Rook
    509. Fibonacci Number
    1160. Find Words That Can Be Formed by Characters
    1122. Relative Sort Array
  • 原文地址:https://www.cnblogs.com/hksac/p/6812833.html
Copyright © 2011-2022 走看看