Добавление удаленных вкладок в QTabWidget (PyQT)
У меня проблема с pyQT. Поэтому я создал графический интерфейс с конструктором, содержащий QTabWidget. Дело в том, что я хотел бы скрывать и показывать вкладки, когда моя функция работает. Я нашел одно решение, которое состоит в том, чтобы удалить все вкладки и добавить их позже. Допустим, у меня есть только две вкладки:
removedTab = self._application.getAlgorithmGUI().getWidget('tabWidget_Verification').widget(1)
self._application.getAlgorithmGUI().getWidget( 'tabWidget_Verification' ).removeTab( 1 )
И когда я пытаюсь позже добавить эту удаленную вкладку, моя программа падает.
self._application.getAlgorithmGUI().getWidget( 'tabWidget_Verification' ).addTab(removedTab,QString.fromUtf8("TabRemoved"))
Это мое сообщение об ошибке:
QCoreApplication::sendPostedEvents: Cannot send posted events for objects in another thread
QCoreApplication::sendPostedEvents: Cannot send posted events for objects in another thread
QCoreApplication::sendPostedEvents: Cannot send posted events for objects in another thread
QCoreApplication::sendPostedEvents: Cannot send posted events for objects in another thread
<unknown>: Fatal IO error 11 (Ressource temporairement non disponible) on X server :0.0.
Какие-либо предложения?
1 ответ
Вы можете объявить все необходимые вкладки в своем объекте mainwindow или любом другом виджете: Пример:
self.tab = QtGui.QWidget()
self.tab.setObjectName(_fromUtf8("tab"))
И вы можете назначить виджеты на ваши вкладки, как правило, даже если вы не вызывали addTab()
метод еще. Напр.:
self.lineEdit = QtGui.QLineEdit(self.tab)
Всякий раз, когда это необходимо, вы можете показать свою вкладку. Напр.:
self.tabWidget.addTab(self.tab, "Label")
И таким же образом, вы также можете удалить его снова, из его номера индекса. Напр.:
self.tabWidget.removeTab(3)
Одна и та же вкладка может вызываться снова столько раз, сколько вы хотите. Я думаю, что этот путь довольно чистый и простой. Если это не соответствует вашим потребностям, пожалуйста, дайте мне знать.