1
我用Qt Designer
創建一個子控件(佈局) - tree_view_widget_ui.py
PyQt的 - 從Qt設計位置子部件附近父
class Ui_Form(object):
def setupUi(self, Form, parent = None):
Form.setObjectName(_fromUtf8("Form"))
Form.setEnabled(True)
Form.resize(200, 300)
Form.setMinimumSize(QtCore.QSize(200, 300))
self.gridLayout = QtGui.QGridLayout(Form)
self.gridLayout.setObjectName(_fromUtf8("gridLayout"))
self.treeWidget = QtGui.QTreeWidget(Form)
self.treeWidget.setEnabled(True)
self.treeWidget.setMinimumSize(QtCore.QSize(200, 300))
font = QtGui.QFont()
self.treeWidget.setFont(font)
self.treeWidget.setDragDropMode(QtGui.QAbstractItemView.DragDrop)
self.treeWidget.setObjectName(_fromUtf8("treeWidget"))
self.treeWidget.headerItem().setText(0, _fromUtf8("1"))
self.gridLayout.addWidget(self.treeWidget, 0, 0, 1, 1)
self.retranslateUi(Form)
QtCore.QMetaObject.connectSlotsByName(Form)
def retranslateUi(self, Form):
Form.setWindowTitle(_translate("Form", "Tree View", None))
self.treeWidget.setSortingEnabled(True)
,我初始化tree_view_widget.py
from tree_view_widget_ui import Ui_Form
class TreeViewWidget(QWidget):
def __init__(self, parent=None, flags=0):
super(TreeViewWidget, self).__init__(parent)
self.ui = Ui_Form()
self.ui.setupUi(self, parent = parent)
而且孩子的用戶界面子控件從父main.py
初始化並用信號打開:
# tree widget
from tree_view_widget.tree_view_widget import TreeViewWidget
class MainWindow(QtGui.QMainWindow):
def __init__(self):
super(MainWindow, self).__init__()
self.flags = QtCore.Qt.Window
# tree view widget
self.TreeViewWidget = TreeViewWidget(parent=self)
self.TreeViewWidget.setWindowFlags(self.flags)
self.TreeViewWidget.show()
我的問題是:我怎樣才能定位父窗口小部件附近的頂部左/右角將重合,而不是修改文件tree_view_widget_ui.py
,因爲此代碼是從Qt Designer
自動生成的。我設法將子窗口小部件定位到目標位置,但僅在修改文件tree_view_widget_ui.py
時纔有效,但如果可能,我想避免這種情況。
我tried'move'在'tree_view_widget.py',它不能正常工作。正如你所建議的,我在'class MainWindow'中使用了'move',因爲widget的幾何體是在'tree_view_widget_ui.py'中定義的。有用! – avstenit