Добавление удаленных вкладок в QTabWidget (PyQT) - PullRequest
0 голосов
/ 28 ноября 2011

У меня проблема с 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 Ответ

2 голосов
/ 28 ноября 2011

Вы можете объявить все вкладки, которые вам нужны, в вашем объекте главного окна или любом другом виджете, который у вас есть: Пример:

self.tab = QtGui.QWidget()
self.tab.setObjectName(_fromUtf8("tab"))

И вы можете назначить виджеты своим вкладкам в обычном режиме, даже если вы не вызывалиметод addTab() пока.Пример:

self.lineEdit = QtGui.QLineEdit(self.tab)

Когда это необходимо, вы можете показать свою вкладку.Пример:

self.tabWidget.addTab(self.tab, "Label")

И таким же образом вы также можете удалить его снова из номера индекса.Пример: * 10101

self.tabWidget.removeTab(3)

Одна и та же вкладка может вызываться снова столько раз, сколько вы хотите.Я думаю, что этот путь довольно чистый и простой.Если это не соответствует вашим потребностям, пожалуйста, дайте мне знать.

...