Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python QTabWidget。如何将一个选项卡移动到正确的位置?_Python_Qt_Tabs_Pyqt4_Qtabwidget - Fatal编程技术网

Python QTabWidget。如何将一个选项卡移动到正确的位置?

Python QTabWidget。如何将一个选项卡移动到正确的位置?,python,qt,tabs,pyqt4,qtabwidget,Python,Qt,Tabs,Pyqt4,Qtabwidget,从左到右的标准布局选项卡。所有标签都在附近。 如何更改一个选项卡的位置,使其附着到右边缘?像这样: 可以这样做吗?是的,可以使用样式表设置 from PyQt4.QtGui import * style = """QTabWidget::tab-bar{ alignment: right; }""" class MyWidget(QTabWidget): def __init__(self, parent=None): super(MyWidget,

从左到右的标准布局选项卡。所有标签都在附近。

如何更改一个选项卡的位置,使其附着到右边缘?像这样:


可以这样做吗?

是的,可以使用样式表设置

from PyQt4.QtGui import *


style = """QTabWidget::tab-bar{
    alignment: right;
}"""


class MyWidget(QTabWidget):
    def __init__(self, parent=None):
        super(MyWidget, self).__init__(parent)
        self.mW1 = QWidget(self)
        self.mW2 = QWidget(self)
        self.addTab(self.mW1, "w1")
        self.addTab(self.mW2, "w2")
        self.setStyleSheet(style)


if __name__ == "__main__":
    import sys
    app = QApplication(sys.argv)
    w = MyWidget()
    w.show()
    app.exec_()

顺便说一下,还有一种方法

self.setTabPosition(QTabWidget.East)
这将显示在东部

您可能希望在最后一个小部件之前插入一个空小部件,然后禁用它并将其设置为透明。 这就实现了你想要的。附加一个示例代码

from PyQt4 import QtGui
import sys

def main():

    app     = QtGui.QApplication(sys.argv)
    tabW    = QtGui.QTabWidget()
    tabW.setStyleSheet("QTabBar::tab:disabled {"+\
                        "width: 300px;"+\
                        "color: transparent;"+\
                        "background: transparent;}")
    pushButton1 = QtGui.QPushButton("QPushButton 1")
    pushButton2 = QtGui.QPushButton("QPushButton 2")

    tab1    = QtGui.QWidget()    
    tab2    = QtGui.QWidget()
    emptySpace = QtGui.QWidget()
    tab3    = QtGui.QWidget()

    vBoxlayout    = QtGui.QVBoxLayout()
    vBoxlayout.addWidget(pushButton1)
    vBoxlayout.addWidget(pushButton2)

    #Resize width and height
    tabW.resize(500, 500)


    #Set Layout for Third Tab Page
    tab3.setLayout(vBoxlayout)   

    tabW.addTab(tab1,"Tab 1")
    tabW.addTab(tab2,"Tab 2")
    tabW.addTab(emptySpace,"ES")
    tabW.setTabEnabled(2,False)
    tabW.addTab(tab3,"Tab 3")

    tabW.setWindowTitle('PyQt QTabWidget Add Tabs and Widgets Inside Tab')
    tabW.show()

    sys.exit(app.exec_())


if __name__ == '__main__':
    main()

那不是我想要的。我必须右转,这只是一个标签,不是全部。只有一个。剩下的必须留在左边。。。我特别想要得到的图片…在这种情况下,您可以从QTabBar继承类并覆盖paintEvent方法,对于QTabWidget,您需要使用setTabBarthank you设置定制的tabBar。我只是觉得有一个现成的方法。再说一遍,它不是——那么我会照你说的做。这听起来像是一个非常令人困惑的设计。如果有超过可用空间所能容纳的选项卡,会发生什么情况?最后的那个去哪里了?在我看来,日志应该以不同的方式显示(可能在对话框中)。或者,更好的是,完全去掉标签,使用工具栏。这太完美了!我可以拿起窗口的大小,改变它,改变隐藏元素的宽度。然后,I选项卡将始终紧靠右侧框