标签:io ar 使用 for sp 文件 on log 代码
C++Qt代码转PyQt代码指南
Table of Contents
1 举个栗子
#include <QApplication>
#include <QtGui>
#include <QtCore>
C++代码
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QSplitter *splitter = new QSplitter;//QSplitter用户分割两个widget
QFileSystemModel *model = new QFileSystemModel;
model->setRootPath(QDir::currentPath());
QTreeView *tree = new QTreeView(splitter);
tree->setModel(model); //为视图设置模型
tree->setRootIndex(model->index(QDir::currentPath()));
QListView *list = new QListView(splitter);
list->setModel(model);
list->setRootIndex(model->index(QDir::currentPath()));
splitter->setWindowTitle("Two views onto the same file system model");
splitter->show();
return app.exec();
}
from PyQt4 import QtGui
from PyQt4 import QtCore
import sys
转换后
def main(argv):
app = QtGui.QApplication(argv)
splitter = QtGui.QSplitter()
model = QtGui.QFileSystemModel()
model.setRootPath(QtCore.QDir.currentPath())
tree = QtGui.QTreeView(splitter)
tree.setModel(model)
tree.setRootIndex(model.index(QtCore.QDir.currentPath()))
qlv_list = QtGui.QListView(splitter)
qlv_list.setModel(model)
qlv_list.setRootIndex(model.index(QtCore.QDir.currentPath()))
splitter.setWindowTitle("Two views onto the same file system model")
splitter.show()
return app.exec_()
if __name__ == ‘__main__‘:
main(sys.argv)
运行如图
2 变量生存周期
是故,使用C++/Qt编程时,几乎所有的QObject实例对象构造时,都会记得加上其parent的引用以防止内存泄漏;同样,PyQt中依然 如此,倒不是防止其内存泄漏,因为Python会根据引用计数自动对类实例进行管理,一旦变量的超出其作用域而没有任何引用时会被自动析构,但生存于Qt 树模型中的对象却能幸免,见以下代码
3 工具使用
IPython的自动提示与Python的自省
4 备忘清单
Date: 2013-12-04T14:39+0800
标签:io ar 使用 for sp 文件 on log 代码
原文地址:http://www.cnblogs.com/mhxy13867806343/p/4058419.html