从单独的ui文件加载到主窗口的停靠小部件

我正在使用PySide构建应用程序,并且希望能够从单独的.ui文件加载窗口小部件。以下是我已经尝试过的一些代码,但是它无法让我将分别从主窗口加载的停靠小部件停靠在主窗口中。主窗口ui文件包含一个简单的主窗口和一些已经停靠在其中的项目,dock_widget ui包含一个停靠小部件和内部的一些按钮。当我双击停靠小部件的栏后,一旦它加载,似乎就没有“停靠”,当我将其拖动到主窗口上时,它也不会停靠。主窗口肯定会接受停靠窗口小部件,因为其中定义了一些正常工作的窗口小部件。


#!/usr/bin/python


# Import PySide classes

import sys

from PySide.QtGui import *

from PySide.QtCore import *

from PySide.QtUiTools import QUiLoader



def load_ui(ui_file, parent=None):

    loader = QUiLoader()

    file = QFile(ui_file)

    file.open(QFile.ReadOnly)

    myWidget = loader.load(file, None)

    myWidget.show()

    file.close()

    myWidget.show()

    return myWidget


# Create a Qt application

app = QApplication(sys.argv)



# Create a Label and show it

main_window = load_ui("ui/main_window.ui")

dock_widget = load_ui("ui/console.ui", main_window)


# Enter Qt application main loop

app.exec_()

sys.exit()

console.ui


<?xml version="1.0" encoding="UTF-8"?>

<ui version="4.0">

 <class>DockWidget</class>

 <widget class="QDockWidget" name="DockWidget">

  <property name="geometry">

   <rect>

    <x>0</x>

    <y>0</y>

    <width>542</width>

    <height>261</height>

   </rect>

  </property>

  <property name="contextMenuPolicy">

   <enum>Qt::DefaultContextMenu</enum>

  </property>

  <property name="windowTitle">

   <string>DockWidget</string>

  </property>

  <widget class="QWidget" name="dockWidgetContents">

   <layout class="QVBoxLayout" name="verticalLayout">

    <item>

     <widget class="QTextEdit" name="textEdit_2"/>

    </item>

    <item>

     <widget class="QTextEdit" name="textEdit"/>

    </item>

   </layout>

  </widget>

 </widget>

 <resources/>

 <connections/>

</ui>

关于我应该做些什么的任何想法


www说
浏览 311回答 2
2回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python