2

我正在尝试学习 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?

4

3 回答 3

3

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

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

 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 代码之间建立关联。

当然,至少了解一点 C++ 语法也很有帮助!


如果你想在不了解 C++ 的情况下学习 PyQt4,我认为首先阅读这里列出的一些教程是最简单的。

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

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

在此处输入图像描述


其他有用的链接:

于 2012-07-25T21:12:02.500 回答
2

http://www.zetcode.com/

It would benefit you greatly to have a small familiarity with C++ as a Python developer in principle. Anyway this the best Python reference for QT in my opinion.

Also, sorry this is so late

于 2012-08-16T16:50:58.690 回答
2

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

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

但是,正在努力将所有 Qt C++ 示例手动移植到 PyQt。这项工作的当前结果可以在PyQt 的源包examples目录中找到。

于 2012-08-16T18:34:03.187 回答