У меня есть огромная проблема с моим QTabWidget.PyQt4 QTabWidget TAB CHANGE .... currentChange (int) не работает
У меня есть небольшой пример Programm, где меняющаяся Вкладка дать мне окно сообщения с «текущим индексом вкладки: ....», Когда я изменить вкладку, которая работает АБСОЛЮТНО FINE:
from PyQt4 import QtGui
from PyQt4 import QtCore
from PyQt4.QtCore import pyqtSlot,SIGNAL,SLOT
import sys
class myTabWidget(QtGui.QTabWidget):
def tabChangedSlot(self,argTabIndex):
QtGui.QMessageBox.information(self,"Tab Index Changed!",
"Current Tab Index: "+QtCore.QString.number(argTabIndex));
def main():
app = QtGui.QApplication(sys.argv)
tabWidget = myTabWidget()
tabWidget.addTab(QtGui.QWidget(),"1");
tabWidget.addTab(QtGui.QWidget(),"2");
tabWidget.addTab(QtGui.QWidget(),"3");
#Resize width and height
tabWidget.resize(300,120)
tabWidget.setWindowTitle('QTabWidget Changed Example')
tabWidget.connect(tabWidget,
SIGNAL("currentChanged(int)"),tabWidget,SLOT("tabChangedSlot(int)"))
tabWidget.show()
sys.exit(app.exec_())
if __name__ == '__main__':
main()
“
Теперь мои Проблема:
Я создал графический интерфейс с QT Designer в PyQT4, который называется «abaqusian». QTabWidget называется «Ui_AbaqusianV1()».
Проблема в том, что у меня есть огромные трудности с испусканием сигнала «currentchanged (int)». Всплывающее окно с индексом «Текущая вкладка: ...» просто не отображается при изменении вкладки.
Кроме того, программа знает индекс вкладки, потому что индекс вкладки, вызываемый функцией «ongenoptions_savebutton (self)», напечатан абсолютно правильно ......... что не так ???!
Вот код основной программы:
from PyQt4 import QtCore
from PyQt4 import QtGui
import sys,os
from PyQt4.QtCore import pyqtSlot,SIGNAL,SLOT
from Tkinter import Tk
from tkFileDialog import askopenfilename
from tkFileDialog import askdirectory
import Tkconstants
class Ui_AbaqusianV1(QtGui.QTabWidget):
def setupUi(self, AbaqusianV1):
AbaqusianV1.setObjectName(_fromUtf8("AbaqusianV1"))
AbaqusianV1.resize(567, 530)
.....
.....
self.retranslateUi(AbaqusianV1)
.....
QtCore.QObject.connect(self.genoptions_savebutton, QtCore.SIGNAL("clicked()"),
self.ongenoptions_savebutton)
......
TableuGenerale=Ui_AbaqusianV1()
QtCore.QObject.connect(TableuGenerale,QtCore
.SIGNAL(_fromUtf8("currentChanged(int)")),
self.tabChangedSlot)
def tabChangedSlot(self,argTabIndex):
QtGui.QMessageBox.information(self,
"Tab Index Changed!",
"Current TabIndex:"+QtCore.QString.number(argTabIndex));
def ongenoptions_savebutton(self):
# Daten auslesen
d = {}
self.TableuGenerale=Ui_AbaqusianV1()
print "\n"
print "*****************************************************************"
print "GENERAL OPTIONS:"
print "\n"
print "Project Name: %s" % self.projectname.text()
print "Save location Abaqusian: %s" % abaqusian_dir
print "Save location Inp. Files: %s" % inpfiles_dir
print "\n"
print "current tab index is: %s" % self.TableuGenerale.currentIndex()
print "GENERAL OPTIONS ----> SAVED"
print "*****************************************************************"
.....
.....
.....
if __name__ == "__main__":
app = QtGui.QApplication(sys.argv)
AbaqusianV1 = QtGui.QTabWidget()
ui = Ui_AbaqusianV1()
ui.setupUi(AbaqusianV1)
AbaqusianV1.show()
sys.exit(app.exec_())
Я просто Don `T увидеть, что это неправильно. Моя небольшая программа-образец работает нормально. Я делаю то же самое в своей основной программе. Python дает мне NO ERROR, но просто не показывает всплывающее окно-сообщение при изменении вкладки. Я не могу отлаживать, так как нет ошибки.
Спасибо за помощь!
С уважением А. Neumeir