我正在尝试学习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?
答案 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
其他有用的链接:
答案 1 :(得分:2)
答案 2 :(得分:2)
对此的明确答案是:不,没有办法自动将Qt C ++示例转换为PyQt。
将C ++代码转换为Python也没有任何通用的解决方案。正是由于这个原因,开发了各种语言绑定工具,如SWIG,Boost,Sip等(PyQt绑定由Sip生成)。
然而,一直在努力将所有Qt C ++示例手动移植到PyQt。这项工作的当前结果可以在source packages for PyQt的examples
目录中找到。