2016-03-21 20 views
0

閉じるタブQTabWidgetを防ぐには?このコードではPyQT4

QtCore.QObject.connect(self.tabWidget, QtCore.SIGNAL("tabCloseRequested(int)"), 
         self.tabWidget.removeTab) 

私は、任意のタブQTabWidgetを閉じることができ、そしてこれらのタブの名前は次のとおりです。

work_1

work_2

work_3

しかし、私タブを欲しいwork_1は決して閉じません。

使用インデックスは、2つの理由のために動作しませんでした:

  • タブが動的にこのコードによって移動することができます。インデックスは常に変化している可能

    self.tabWidget.setMovable (True) 
    

を。

  • ユーザーは新しいタブを追加できます。

答えて

0

タブは、そのウィジェットで識別することができ、ウィジェットはそのobjectName(または他のいくつかのユニークな属性)によって識別することができます。

 self.tabWidget.tabCloseRequested.connect(sef.removeTab) 
     ... 

    def removeTab(self, index): 
     widget = self.tabWidget.widget(index) 
     if widget is not None and widget.objectName() != 'work_1': 
      self.tabWidget.removeTab(index) 

またはおそらくより簡単に:

 if widget is not None and widget is not self.work_1: 
      self.tabWidget.removeTab(index) 
+0

はい、もし彼がobjectNameを考えていたが接続方法がわからなければ。 ご協力いただきありがとうございます。 –