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

问题描述:

我想学习PyQt4,并且似乎有很多有用的C++/Qt4文档(例如:http://doc.qt.nokia.com/4.7-snapshot/model-view-programming.html)。我对C++知之甚少,不想同时学习它,但C++/Qt4的例子似乎非常有用。将C++/Qt4示例翻译成PyQt4

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

要将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


如果您想了解PyQt4的不知道C++,我认为这将是最容易通过一些教程listed here第一的。

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

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

enter image description here


其他有用的链接:

+0

感谢教程!但是这并不是我的问题... – student 2012-07-26 07:55:26

+0

对不起,我不知何故省略了原来的答案。基本上,我相信你应该先学习一些PyQt4,然后学习一些基本的C++语法。从那里,你应该能够猜测如何将C++转换为Python。 – unutbu 2012-07-26 10:56:55

http://www.zetcode.com/

原则上,对C++作为Python开发人员的熟悉程度将会大大受益。无论如何,这是我认为QT的最佳Python参考。

而且,抱歉,这是这么晚

权威的答案,这就是:没有,没有办法自动将Qt的C++实例转换为PyQt的。

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

但是,我们正在努力将所有Qt C++示例手动移植到PyQt。该工作的最新结果可在source packages for PyQtexamples目录中找到。

+0

PyQt的源代码包的链接正是我一直在寻找的!我只是在转录他的一个'C++'的例子,并且不能动摇已经完成的感觉。确实,它一直是:) – sjm324 2017-04-27 03:12:28