我希望标签栏在空白处扩展到右边。最好是所有标签的宽度相同。我不知道该怎么做,因为我的样式表不起作用,并且我在文档中找不到选项。
from PyQt4.QtGui import *
from PyQt4.QtCore import *
from PyQt4 import QtGui,QtCore
import sys
class Main(QWidget):
def __init__(self,parent=None):
QWidget.__init__(self)
self.setFixedSize(600,500)
self.tabBar=QTabBar(self)
self.tabBar.setStyleSheet("QTabBar{width:400px;}")
self.tabBar.setExpanding(True)
self.layout=QVBoxLayout(self)
self.layout.addWidget(self.tabBar)
self.tabBar.addTab("Kontext Menu")
self.tabBar.addTab("Settings in detail")
self.tabBar.addTab("Help and tips")
self.tabBar.addTab("About")
self.tabBar.addTab("Credits")
self.show()
if __name__ == '__main__':
app=QApplication(sys.argv)
sd=Main()
app.exec()
我的想法是,由于对话框应具有固定的大小,因此可以将每个选项卡的宽度计算为Totalwidth /(Tab的数量),但是我仍然不知道如何告诉每个选项卡其宽度...
最佳答案
您可以使用void setExpanding(bool enabled)
展开选项卡。有关详细信息,请参见文档:
http://qt-project.org/doc/qt-5.1/qtwidgets/qtabbar.html#expanding-prop
同样,您将需要使用适当的样式语法,因为您似乎缺少适当的范围,即“ :: tab”部分。
另外,您需要在QTabWidget
本身而不是QTabBar
上设置样式表。起初可能有点怪异,但这是实现您希望拥有的正确方法。
在这里,您可以找到应该编写的代码:
from PyQt4.QtGui import *
from PyQt4.QtCore import *
from PyQt4 import QtGui,QtCore
import sys
class Main(QWidget):
def __init__(self,parent=None):
QWidget.__init__(self)
self.setFixedSize(600,500)
self.tabBar=QTabBar(self)
self.tabBar.setStyleSheet("QTabBar::tab{width:400px;}")
self.tabBar.setExpanding(True)
self.layout=QVBoxLayout(self)
self.layout.addWidget(self.tabBar)
self.tabBar.addTab("Kontext Menu")
self.tabBar.addTab("Settings in detail")
self.tabBar.addTab("Help and tips")
self.tabBar.addTab("About")
self.tabBar.addTab("Credits")
self.show()
if __name__ == '__main__':
app=QApplication(sys.argv)
sd=Main()
app.exec()
关于python - QTabBar既不能完全展开,也不能相等地间隔,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19013254/