我已經制作了一個程序,其中有一個工具欄,在Linux中有幾個動作。工具欄及其操作在Linux操作系統上完美工作,但是當我在Windows計算機上運行代碼時,這些操作不起作用。一切看起來都與Linux相同(是的,我在Windows機器上安裝了PyQt4),甚至是工具欄,但是當我單擊工具欄上的某個項目時,它只是不執行給定的處理程序。我試着用工具欄做了一個基本的PyQt4程序來測試這個bug是否是因爲我的程序,但結果是一樣的。這是基本的示例程序不起作用。PyQt4 Windows - 工具欄操作不起作用。我該如何解決它們?
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 86 GPL-4.8.4 -1
我希望有人能幫助我。我感謝大家的關注和幫助!
有一個愉快的一天!
謝謝你的回覆!這解決了我的問題。不過,我可以向你保證,至少在我的Linux機器上(Ubuntu 10.10),該程序即使以激活()作爲信號也能工作。我也覺得很奇怪。那麼,再次感謝您的回覆!祝你今天愉快! – Calin 2011-05-29 17:41:57
我碰到了[this thread](http://www.qtcentre.org/threads/5862-What-is-the-difference-between-the-activated%28%29-and-triggered%28%29-SIGNALs - 對於-A-的QAction)。顯然,'activated()'在Qt3中被使用,並且爲了兼容性而在一些版本中仍然存在。 – 2011-05-29 22:12:51