2017-02-25 38 views
0

Hello World我正在寻找在我的gui上创建Qtab布局,并且我一直在四处寻找以查看如何将标签更改为在我的屏幕底部注册,如红色的笔在我的形象。留下蓝色笔标记的位置,我可以关于该程序的信息,当您点击一个新标签时,该程序不会改变。Python pyqt更改Qtabs的位置

enter image description here

回答

0

您需要使用QVBoxLayout为您的顶级部件。然后将两个控件添加到布局。

这会按照您要求的方式自动堆叠这两个小部件。

如果你想要额外的布局,那么你添加更多的布局。

例如,表格的上半部分一分为二,而不是:你需要阅读basics of Qt's layout.

+0

我已经用评论修改了我的答案。 – Alan

+0

如果你碰巧是一个低估了我这个答案的人,你能解释一下为什么? – Alan

-1

这里有一个

add a QVBoxLayout as the top control, then add a QHBoxLayout and a QTabWidget. Then add your picture widget and a QTextEdit to the QHBoxLayout. 

adding a QVBoxLayout as the top control, then adding a QTextEdit and a QTabWidget control 

做到这一点布局应该指向正确的方向。它使用Qt Designer工具构建,并使用pyuic5转换为.py:

class Ui_MainWindow(object): 
    def setupUi(self, MainWindow): 
     MainWindow.setObjectName("MainWindow") 
     MainWindow.resize(800, 600) 
     self.centralwidget = QtWidgets.QWidget(MainWindow) 
     self.centralwidget.setObjectName("centralwidget") 
     self.verticalLayoutWidget = QtWidgets.QWidget(self.centralwidget) 
     self.verticalLayoutWidget.setGeometry(QtCore.QRect(0, 0, 791, 551)) 
     self.verticalLayoutWidget.setObjectName("verticalLayoutWidget") 
     self.verticalLayout = QtWidgets.QVBoxLayout(self.verticalLayoutWidget) 
     self.verticalLayout.setObjectName("verticalLayout") 
     self.textBrowser = QtWidgets.QTextBrowser(self.verticalLayoutWidget) 
     self.textBrowser.setObjectName("textBrowser") 
     self.verticalLayout.addWidget(self.textBrowser) 
     self.tabWidget = QtWidgets.QTabWidget(self.verticalLayoutWidget) 
     self.tabWidget.setObjectName("tabWidget") 
     self.tab = QtWidgets.QWidget() 
     self.tab.setObjectName("tab") 
     self.tabWidget.addTab(self.tab, "") 
     self.tab_2 = QtWidgets.QWidget() 
     self.tab_2.setObjectName("tab_2") 
     self.tabWidget.addTab(self.tab_2, "") 
     self.verticalLayout.addWidget(self.tabWidget) 
     MainWindow.setCentralWidget(self.centralwidget) 

     self.retranslateUi(MainWindow) 
     self.tabWidget.setCurrentIndex(0) 
     QtCore.QMetaObject.connectSlotsByName(MainWindow) 

    def retranslateUi(self, MainWindow): 
     _translate = QtCore.QCoreApplication.translate 
     MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow")) 
     self.textBrowser.setHtml(_translate("MainWindow", "Here's some text that won't change based on the tabs")) 
     self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab), _translate("MainWindow", "Tab 1")) 
     self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_2), _translate("MainWindow", "Tab 2"))