将C ++ / Qt4示例翻译为PyQt4

时间:2012-07-25 20:12:58

标签: c++ python qt4 pyqt4 converter

我正在尝试学习PyQt4,似乎有很多有用的C ++ / Qt4文档(例如:http://doc.qt.nokia.com/4.7-snapshot/model-view-programming.html)。我不太了解C ++并且不想同时学习它,但C ++ / Qt4示例似乎非常有用。

那么有没有办法将C ++语法(例如在http://doc.qt.nokia.com/4.7-snapshot/model-view-programming.html中的示例中)转换为python / PyQt4?

3 个答案:

答案 0 :(得分:3)

要将C ++示例转换为Python / PyQt4,它会有所帮助 首先要熟悉PyQt4应用程序的一般结构,以及构造PyQt4小部件和调用其方法的常用语法。

下面我列出了帮助您开始学习PyQt4(没有C ++)的资源。一旦你基本熟悉PyQt4,你应该能够像这样转换C ++代码(取自你引用的tutorial):

 int main(int argc, char *argv[])
 {
     QApplication app(argc, argv);
     QSplitter *splitter = new QSplitter;

     QFileSystemModel *model = new QFileSystemModel;
     model->setRootPath(QDir::currentPath());

到等效的PyQt4代码:

import sys
import PyQt4.QtCore as QtCore
import PyQt4.QtGui as QtGui

def main():
    app = QtGui.QApplication(sys.argv)
    splitter = QtGui.QSplitter()
    model = QtGui.QFileSystemModel()
    model.setRootPath(QtCore.QDir.currentPath())

谷歌搜索“QSplitter”和“QFileSystemModel”和“QDir”将引导您访问相关的PyQt4文档。例如,它会告诉您QApplication类在QtGui模块中定义。这将帮助您在C ++代码和等效的PyQt4代码之间形成关联。

当然,它也有助于know at least a little C++ syntax


如果你想在不知道C ++的情况下学习PyQt4,我认为首先阅读一些教程listed here是最容易的。

根据您的操作系统,您的pyqt4安装可能还附带了大量的示例代码。例如,在Ubuntu上 python-qt4-doc包中包含教程和带有大量示例的演示启动器(qtdemo)。

python /usr/share/doc/python-qt4-doc/examples/demos/qtdemo/qtdemo.py

enter image description here


其他有用的链接:

答案 1 :(得分:2)

http://www.zetcode.com/

原则上,熟悉C ++作为Python开发人员,对您有很大帮助。无论如何,这是我认为QT的最佳Python参考。

另外,对不起,这太晚了

答案 2 :(得分:2)

对此的明确答案是:不,没有办法自动将Qt C ++示例转换为PyQt。

将C ++代码转换为Python也没有任何通用的解决方案。正是由于这个原因,开发了各种语言绑定工具,如SWIG,Boost,Sip等(PyQt绑定由Sip生成)。

然而,一直在努力将所有Qt C ++示例手动移植到PyQt。这项工作的当前结果可以在source packages for PyQtexamples目录中找到。