2016-11-14 2 views
1

Я использую QtCreator, но я не могу найти QSplitter в построителе пользовательского интерфейса, поэтому, я думаю, он добавлен позже с остальной частью кода. Мой вопрос:Реализация сплиттера с PyQt (созданный файл QtCreator)

Как добавить QSplitter без завинчивания моего GUI?

Это основа макет внешний вид моего главного окна: Layout

мне нужно иметь разветвитель между tabWidget и QlistWidget слева. Мне нужны только те два элемента, которые будут затронуты. Я узнал, что они должны быть на отдельном макете (они есть), но как добавить Qsplitter и не влиять на других. Также, когда я добавляю их в разделитель, должен ли он быть перед добавлением их в родительский макет после. Для того, чтобы сделать его более ясным это сгенерированный код на скриншоте:

def setupUi(self, MainWindow): 
    MainWindow.setObjectName("MainWindow") 
    MainWindow.resize(1135, 640) 
    self.centralwidget = QtWidgets.QWidget(MainWindow) 
    self.centralwidget.setObjectName("centralwidget") 
    self.verticalLayout = QtWidgets.QVBoxLayout(self.centralwidget) 
    self.verticalLayout.setObjectName("verticalLayout") 
    self.horizontalLayout_3 = QtWidgets.QHBoxLayout() 
    self.horizontalLayout_3.setObjectName("horizontalLayout_3") 
    self.verticalLayout_3 = QtWidgets.QVBoxLayout() 
    self.verticalLayout_3.setObjectName("verticalLayout_3") 
    self.label = QtWidgets.QLabel(self.centralwidget) 
    self.label.setObjectName("label") 
    self.verticalLayout_3.addWidget(self.label) 
    self.horizontalSlider_2 = QtWidgets.QSlider(self.centralwidget) 
    self.horizontalSlider_2.setOrientation(QtCore.Qt.Horizontal) 
    self.horizontalSlider_2.setObjectName("horizontalSlider_2") 
    self.verticalLayout_3.addWidget(self.horizontalSlider_2) 
    self.horizontalLayout_4 = QtWidgets.QHBoxLayout() 
    self.horizontalLayout_4.setObjectName("horizontalLayout_4") 
    self.pushButton_4 = QtWidgets.QPushButton(self.centralwidget) 
    self.pushButton_4.setObjectName("pushButton_4") 
    self.horizontalLayout_4.addWidget(self.pushButton_4) 
    self.pushButton_6 = QtWidgets.QPushButton(self.centralwidget) 
    self.pushButton_6.setObjectName("pushButton_6") 
    self.horizontalLayout_4.addWidget(self.pushButton_6) 
    self.pushButton_5 = QtWidgets.QPushButton(self.centralwidget) 
    self.pushButton_5.setObjectName("pushButton_5") 
    self.horizontalLayout_4.addWidget(self.pushButton_5) 
    self.pushButton_7 = QtWidgets.QPushButton(self.centralwidget) 
    self.pushButton_7.setObjectName("pushButton_7") 
    self.horizontalLayout_4.addWidget(self.pushButton_7) 
    self.pushButton_8 = QtWidgets.QPushButton(self.centralwidget) 
    self.pushButton_8.setObjectName("pushButton_8") 
    self.horizontalLayout_4.addWidget(self.pushButton_8) 
    self.verticalLayout_3.addLayout(self.horizontalLayout_4) 
    self.horizontalLayout_3.addLayout(self.verticalLayout_3) 
    self.verticalLayout_4 = QtWidgets.QVBoxLayout() 
    self.verticalLayout_4.setObjectName("verticalLayout_4") 
    self.horizontalLayout_5 = QtWidgets.QHBoxLayout() 
    self.horizontalLayout_5.setObjectName("horizontalLayout_5") 
    self.label_3 = QtWidgets.QLabel(self.centralwidget) 
    self.label_3.setObjectName("label_3") 
    self.horizontalLayout_5.addWidget(self.label_3) 
    self.label_2 = QtWidgets.QLabel(self.centralwidget) 
    self.label_2.setObjectName("label_2") 
    self.horizontalLayout_5.addWidget(self.label_2) 
    self.verticalLayout_4.addLayout(self.horizontalLayout_5) 
    self.horizontalSlider_3 = QtWidgets.QSlider(self.centralwidget) 
    self.horizontalSlider_3.setOrientation(QtCore.Qt.Horizontal) 
    self.horizontalSlider_3.setObjectName("horizontalSlider_3") 
    self.verticalLayout_4.addWidget(self.horizontalSlider_3) 
    self.horizontalLayout_3.addLayout(self.verticalLayout_4) 
    self.verticalLayout.addLayout(self.horizontalLayout_3) 
    self.horizontalLayout_2 = QtWidgets.QHBoxLayout() 
    self.horizontalLayout_2.setObjectName("horizontalLayout_2") 
    self.listWidget = QtWidgets.QListWidget(self.centralwidget) 
    self.listWidget.setObjectName("listWidget") 
    self.horizontalLayout_2.addWidget(self.listWidget) 
    self.tabWidget = QtWidgets.QTabWidget(self.centralwidget) 
    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.horizontalLayout_2.addWidget(self.tabWidget) 
    self.verticalLayout.addLayout(self.horizontalLayout_2) 
    self.horizontalLayout = QtWidgets.QHBoxLayout() 
    self.horizontalLayout.setObjectName("horizontalLayout") 
    self.pushButton_2 = QtWidgets.QPushButton(self.centralwidget) 
    self.pushButton_2.setObjectName("pushButton_2") 
    self.horizontalLayout.addWidget(self.pushButton_2) 
    self.pushButton = QtWidgets.QPushButton(self.centralwidget) 
    self.pushButton.setObjectName("pushButton") 
    self.horizontalLayout.addWidget(self.pushButton) 
    self.pushButton_3 = QtWidgets.QPushButton(self.centralwidget) 
    self.pushButton_3.setObjectName("pushButton_3") 
    self.horizontalLayout.addWidget(self.pushButton_3) 
    spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) 
    self.horizontalLayout.addItem(spacerItem) 
    self.horizontalSlider = QtWidgets.QSlider(self.centralwidget) 
    self.horizontalSlider.setOrientation(QtCore.Qt.Horizontal) 
    self.horizontalSlider.setObjectName("horizontalSlider") 
    self.horizontalLayout.addWidget(self.horizontalSlider) 
    self.verticalLayout.addLayout(self.horizontalLayout) 
    MainWindow.setCentralWidget(self.centralwidget) 
    self.menubar = QtWidgets.QMenuBar(MainWindow) 
    self.menubar.setGeometry(QtCore.QRect(0, 0, 1135, 23)) 
    self.menubar.setObjectName("menubar") 
    MainWindow.setMenuBar(self.menubar) 
    self.statusbar = QtWidgets.QStatusBar(MainWindow) 
    self.statusbar.setObjectName("statusbar") 
    MainWindow.setStatusBar(self.statusbar) 

    self.retranslateUi(MainWindow) 
    QtCore.QMetaObject.connectSlotsByName(MainWindow) 

ответ

2

QSplitter класс макет и доступен в Qt Designer.

Вам необходимо заменить горизонтальный макет, который в настоящее время содержит виджет списка и виджет с горизонтальным разделителем. Шаги, чтобы сделать это:

  1. правой кнопкой мыши главное-окно и выбрать Выложите ->Перерыв макет из меню.

  2. правой кнопкой мыши на вкладку-виджет (или список-виджет) и выберите Выложите ->Перерыв макет снова.

  3. Выберите как вкладки-виджет и список-виджет и выберите Выложите ->Lay Out Горизонтален в Splitter из меню правой кнопки мыши.

  4. правой кнопкой мыши главное-окно и выбрать Выложите ->Lay вертикально из меню.

  5. Нажмите на центральном-виджета (в дереве объектов), а затем прокрутите вниз до нижней части редактора свойств, и изменить layoutStretch в 0,1,0.

+0

работал отлично. Спасибо за хорошее объяснение. – nephilimrising

Смежные вопросы