PyQt4 Windows - 工具栏操作不起作用。我该如何解决这些问题?

时间:2011-05-29 15:57:46

标签: python windows action pyqt4 toolbar

我已经制作了一个程序,其中包含一个工具栏,在Linux中有一些操作。工具栏及其操作在Linux操作系统上完美运行,但是当我在Windows机器上运行代码时,操作就不起作用了。一切看起来都像在Linux上一样(是的,我在Windows机器上安装了PyQt4),甚至是工具栏,但是当我点击工具栏上的某个项目时,它只是不执行给定的处理程序。我尝试用一​​个工具栏制作一个基本的PyQt4程序,只是为了测试bug是否是因为我的程序,但结果是一样的。这是基本的示例程序,它不起作用。

from PyQt4 import QtGui, QtCore
import sys

def aTest(obj = None):
    print "If this appears, the action works."

app = QtGui.QApplication(sys.argv)
w = QtGui.QMainWindow()
toolBar = w.addToolBar("toolbar")

action = QtGui.QAction(QtGui.QIcon("path to icon here"), "testAction", w)
w.connect(action, QtCore.SIGNAL("activated()"), aTest)

toolBar.addAction(action)

w.show()

app.exec_()

此代码在Linux上运行时没有问题,但在Windows上,操作在激活时不会做出反应。忽略代码中的拼写错误。

操作系统:Windows 7旗舰版32位(在XP上也不起作用)

Python版本:Python 2.7

PyQt4版本:PyQt-Py2.7-x86-gpl-4.8.4-1

我希望有人可以帮助我。我感谢你们的关心和帮助!

度过美好的一天!

1 个答案:

答案 0 :(得分:3)

奇怪的是它适用于Linux,因为我只能通过更改

使其在Windows上运行
w.connect(action, QtCore.SIGNAL("activated()"), aTest)

w.connect(action, QtCore.SIGNAL("triggered()"), aTest)

QAction class reference仅列出changed()hovered()toggled()triggered()作为有效信号。不幸的是,我没有方便的Linux盒子来进一步测试。