将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
其他有用的链接:
权威的答案,这就是:没有,没有办法自动将Qt的C++实例转换为PyQt的。
也没有任何将C++代码翻译成Python的通用解决方案。正是因为这个原因,各种语言绑定工具,如SWIG,Boost,Sip等已经开发出来(PyQt绑定是由Sip生成的)。
但是,我们正在努力将所有Qt C++示例手动移植到PyQt。该工作的最新结果可在source packages for PyQt的examples
目录中找到。
PyQt的源代码包的链接正是我一直在寻找的!我只是在转录他的一个'C++'的例子,并且不能动摇已经完成的感觉。确实,它一直是:) – sjm324 2017-04-27 03:12:28
感谢教程!但是这并不是我的问题... – student 2012-07-26 07:55:26
对不起,我不知何故省略了原来的答案。基本上,我相信你应该先学习一些PyQt4,然后学习一些基本的C++语法。从那里,你应该能够猜测如何将C++转换为Python。 – unutbu 2012-07-26 10:56:55