Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python PyQt4窗口-工具栏操作不';不行。我怎样才能修好它们?_Python_Windows_Action_Pyqt4_Toolbar - Fatal编程技术网

Python PyQt4窗口-工具栏操作不';不行。我怎样才能修好它们?

Python PyQt4窗口-工具栏操作不';不行。我怎样才能修好它们?,python,windows,action,pyqt4,toolbar,Python,Windows,Action,Pyqt4,Toolbar,我制作了一个程序,在Linux中有一个工具栏,上面有一些操作。工具栏及其操作在Linux操作系统上运行得很好,但是当我在Windows机器上运行代码时,这些操作就不起作用了。一切看起来都和Linux上的一样(是的,我在Windows机器上安装了PyQt4),甚至是工具栏,但当我单击工具栏上的某个项目时,它只是不执行给定的处理程序。我尝试并制作了一个带有工具栏的基本PyQt4程序,只是为了测试错误是否是由于我的程序造成的,但结果是一样的。下面是一个基本的示例程序,它不起作用 from PyQt4

我制作了一个程序,在Linux中有一个工具栏,上面有一些操作。工具栏及其操作在Linux操作系统上运行得很好,但是当我在Windows机器上运行代码时,这些操作就不起作用了。一切看起来都和Linux上的一样(是的,我在Windows机器上安装了PyQt4),甚至是工具栏,但当我单击工具栏上的某个项目时,它只是不执行给定的处理程序。我尝试并制作了一个带有工具栏的基本PyQt4程序,只是为了测试错误是否是由于我的程序造成的,但结果是一样的。下面是一个基本的示例程序,它不起作用

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 Ultimate 32位(也不适用于XP)

Python版本:Python 2.7

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

我希望外面有人能帮助我。谢谢大家的关心和帮助


祝你今天愉快

它在Linux中工作很奇怪,因为我只能通过更改

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


只有
changed()
hovered()
toggled()
trigged()
列为有效信号。不幸的是,我手头没有Linux设备,无法进一步测试。

谢谢您的回复!这解决了我的问题。但是,我可以向您保证,至少在我的Linux机器(Ubuntu 10.10)上,该程序甚至可以使用activated()作为信号。我也觉得很奇怪。好的,再次感谢您的回复!祝您有个美好的一天!我跑过去了。显然,
activated()
在Qt3中使用过,为了兼容性,一些版本仍然存在。
w.connect(action, QtCore.SIGNAL("triggered()"), aTest)