【发布时间】:2015-04-15 10:56:10
【问题描述】:
我正在将两个小部件(两个按钮)之间的一条线绘制到一个图形视图中,并将它们的位置作为参考。但是这条线画错了地方。
我尝试使用 mapToGlobal 或 mapToParent 之类的函数得到不同的结果,但它仍然是错误的。在同一个类中,我有另一种用鼠标画线的方法,它工作正常。我把它当作参考,但似乎事件位置具有不同的坐标系。我不知道为什么会这样。
按钮和图形视图位于 Widget 内部,Widget 也位于窗口内部。
这是类:
from PyQt4 import QtGui, QtCore
class WiringGraphicsView(QtGui.QGraphicsView):
def __init__(self, parent):
QtGui.QGraphicsView.__init__(self, parent)
self.setScene(QtGui.QGraphicsScene(self))
#self.setSceneRect(QtCore.QRectF(self.viewport().rect()))
def mousePressEvent(self, event):
self._start = event.pos()
def mouseReleaseEvent(self, event):
start = QtCore.QPointF(self.mapToScene(self._start))
end = QtCore.QPointF(self.mapToScene(event.pos()))
brush = QtGui.QBrush(QtGui.QColor(255, 0, 0) )
pen = QtGui.QPen(brush, 2)
line = QtGui.QGraphicsLineItem(QtCore.QLineF(start, end))
line.setPen(pen)
self.scene().addItem( line )
def paintWire(self, start_widget, end_widget):
start_position = QtCore.QPointF(self.mapToScene(start_widget.pos()))
end_position = QtCore.QPointF(self.mapToScene(end_widget.pos()))
brush = QtGui.QBrush(QtGui.QColor(255, 0, 0) )
pen = QtGui.QPen(brush, 2)
line = QtGui.QGraphicsLineItem(QtCore.QLineF(start_position, end_position))
line.setPen(pen)
self.scene().addItem( line )
更新:此时我已经尝试了几件事:由于按钮包含在 QWidget 对象中,因此我将它们从那里取出。我将它们放在 GroupBox 中。也试过没有容器。我没有得到满意的结果。老实说,考虑到我正在使用 Qt 设计器并为“升级”小部件(在本例中是 GraphicsView)创建类文件并使用 UpdateUi 方法设置一些属性,我不知道如何正确执行此操作文件
更新 2:这是加载应用程序的文件:
from PyQt4.QtCore import *
from PyQt4.QtGui import *
import ui_wolfsonmixerwindow
class WolfsonMixerWindow(QMainWindow, ui_wolfsonmixerwindow.Ui_WolfsonMixerWindow):
def __init__(self, parent=None):
super(WolfsonMixerWindow, self).__init__(parent)
self.setupUi(self)
self.updateUi()
def updateUi(self):
#self.btn_AIF1RX1.setText("Hola")
menu_plugin = QMenu()
menu_unplug = QMenu()
menu_plugin.addAction('Action 1', self.plugin )
self.btn_AIF1RX1_2.setMenu(menu_plugin)
self.btn_AIF1TX1_5.setAllowDrag(False)
self.btn_AIF1TX1_5.setMenu(menu_unplug)
start = self.btn_AIF1RX1_2
end = self.btn_AIF1TX1_5
#self.graphicsView.scene().addWidget(self.btn_AIF1RX1_2)
#self.graphicsView.scene().addWidget(self.btn_AIF1TX1_5)
#self.graphicsView.setWidgets(start, end)
#HERE I CALL THE PAINTWIRE METHOD
self.graphicsView.paintWire(start, end)
if __name__ == "__main__":
import sys
app = QApplication(sys.argv)
form = WolfsonMixerWindow()
form.show()
app.exec_()
还有uic文件:
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'ui_wolfsonmixerwindow.ui'
#
# Created: Thu Feb 19 21:51:35 2015
# by: PyQt4 UI code generator 4.11.3
#
# WARNING! All changes made in this file will be lost!
from PyQt4 import QtCore, QtGui
try:
_fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
def _fromUtf8(s):
return s
try:
_encoding = QtGui.QApplication.UnicodeUTF8
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig, _encoding)
except AttributeError:
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig)
class Ui_WolfsonMixerWindow(object):
def setupUi(self, WolfsonMixerWindow):
WolfsonMixerWindow.setObjectName(_fromUtf8("WolfsonMixerWindow"))
WolfsonMixerWindow.resize(562, 480)
self.centralwidget = QtGui.QWidget(WolfsonMixerWindow)
self.centralwidget.setObjectName(_fromUtf8("centralwidget"))
self.gridLayoutWidget = QtGui.QWidget(self.centralwidget)
self.gridLayoutWidget.setGeometry(QtCore.QRect(200, 10, 241, 101))
self.gridLayoutWidget.setLocale(QtCore.QLocale(QtCore.QLocale.English, QtCore.QLocale.UnitedStates))
self.gridLayoutWidget.setObjectName(_fromUtf8("gridLayoutWidget"))
self.gridLayout = QtGui.QGridLayout(self.gridLayoutWidget)
self.gridLayout.setSizeConstraint(QtGui.QLayout.SetMaximumSize)
self.gridLayout.setMargin(0)
self.gridLayout.setObjectName(_fromUtf8("gridLayout"))
self.QHBox_Playback = QtGui.QHBoxLayout()
self.QHBox_Playback.setObjectName(_fromUtf8("QHBox_Playback"))
self.verticalLayout = QtGui.QVBoxLayout()
self.verticalLayout.setObjectName(_fromUtf8("verticalLayout"))
self.label_2 = QtGui.QLabel(self.gridLayoutWidget)
self.label_2.setLocale(QtCore.QLocale(QtCore.QLocale.English, QtCore.QLocale.UnitedStates))
self.label_2.setAlignment(QtCore.Qt.AlignCenter)
self.label_2.setObjectName(_fromUtf8("label_2"))
self.verticalLayout.addWidget(self.label_2)
self.label = QtGui.QLabel(self.gridLayoutWidget)
self.label.setLocale(QtCore.QLocale(QtCore.QLocale.English, QtCore.QLocale.UnitedStates))
self.label.setAlignment(QtCore.Qt.AlignCenter)
self.label.setObjectName(_fromUtf8("label"))
self.verticalLayout.addWidget(self.label)
self.btn_AIF1RX1 = DragButton(self.gridLayoutWidget)
self.btn_AIF1RX1.setBaseSize(QtCore.QSize(0, 0))
self.btn_AIF1RX1.setMouseTracking(True)
self.btn_AIF1RX1.setLocale(QtCore.QLocale(QtCore.QLocale.English, QtCore.QLocale.UnitedStates))
self.btn_AIF1RX1.setText(_fromUtf8(""))
icon = QtGui.QIcon()
icon.addPixmap(QtGui.QPixmap(_fromUtf8(":/audio-input-line.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off)
self.btn_AIF1RX1.setIcon(icon)
self.btn_AIF1RX1.setAutoDefault(False)
self.btn_AIF1RX1.setDefault(False)
self.btn_AIF1RX1.setFlat(True)
self.btn_AIF1RX1.setObjectName(_fromUtf8("btn_AIF1RX1"))
self.verticalLayout.addWidget(self.btn_AIF1RX1)
self.QHBox_Playback.addLayout(self.verticalLayout)
self.verticalLayout_2 = QtGui.QVBoxLayout()
self.verticalLayout_2.setObjectName(_fromUtf8("verticalLayout_2"))
self.label_3 = QtGui.QLabel(self.gridLayoutWidget)
self.label_3.setLocale(QtCore.QLocale(QtCore.QLocale.English, QtCore.QLocale.UnitedStates))
self.label_3.setAlignment(QtCore.Qt.AlignCenter)
self.label_3.setObjectName(_fromUtf8("label_3"))
self.verticalLayout_2.addWidget(self.label_3)
self.label_4 = QtGui.QLabel(self.gridLayoutWidget)
self.label_4.setLocale(QtCore.QLocale(QtCore.QLocale.English, QtCore.QLocale.UnitedStates))
self.label_4.setAlignment(QtCore.Qt.AlignCenter)
self.label_4.setObjectName(_fromUtf8("label_4"))
self.verticalLayout_2.addWidget(self.label_4)
self.btn_AIF1RX2 = QtGui.QPushButton(self.gridLayoutWidget)
self.btn_AIF1RX2.setBaseSize(QtCore.QSize(0, 0))
self.btn_AIF1RX2.setMouseTracking(True)
self.btn_AIF1RX2.setLocale(QtCore.QLocale(QtCore.QLocale.English, QtCore.QLocale.UnitedStates))
self.btn_AIF1RX2.setText(_fromUtf8(""))
self.btn_AIF1RX2.setIcon(icon)
self.btn_AIF1RX2.setAutoDefault(False)
self.btn_AIF1RX2.setDefault(False)
self.btn_AIF1RX2.setFlat(True)
self.btn_AIF1RX2.setObjectName(_fromUtf8("btn_AIF1RX2"))
self.verticalLayout_2.addWidget(self.btn_AIF1RX2)
self.QHBox_Playback.addLayout(self.verticalLayout_2)
self.gridLayout.addLayout(self.QHBox_Playback, 1, 0, 1, 1)
self.horizontalLayout_3 = QtGui.QHBoxLayout()
self.horizontalLayout_3.setSizeConstraint(QtGui.QLayout.SetDefaultConstraint)
self.horizontalLayout_3.setContentsMargins(-1, -1, 0, -1)
self.horizontalLayout_3.setObjectName(_fromUtf8("horizontalLayout_3"))
self.verticalLayout_3 = QtGui.QVBoxLayout()
self.verticalLayout_3.setObjectName(_fromUtf8("verticalLayout_3"))
self.label_6 = QtGui.QLabel(self.gridLayoutWidget)
self.label_6.setLocale(QtCore.QLocale(QtCore.QLocale.English, QtCore.QLocale.UnitedStates))
self.label_6.setAlignment(QtCore.Qt.AlignCenter)
self.label_6.setObjectName(_fromUtf8("label_6"))
self.verticalLayout_3.addWidget(self.label_6)
self.label_5 = QtGui.QLabel(self.gridLayoutWidget)
self.label_5.setLocale(QtCore.QLocale(QtCore.QLocale.English, QtCore.QLocale.UnitedStates))
self.label_5.setAlignment(QtCore.Qt.AlignCenter)
self.label_5.setObjectName(_fromUtf8("label_5"))
self.verticalLayout_3.addWidget(self.label_5)
self.horizontalLayout = QtGui.QHBoxLayout()
self.horizontalLayout.setSpacing(0)
self.horizontalLayout.setSizeConstraint(QtGui.QLayout.SetDefaultConstraint)
self.horizontalLayout.setObjectName(_fromUtf8("horizontalLayout"))
self.btn_AIF1TX1_1 = QtGui.QPushButton(self.gridLayoutWidget)
self.btn_AIF1TX1_1.setMouseTracking(False)
self.btn_AIF1TX1_1.setFocusPolicy(QtCore.Qt.StrongFocus)
self.btn_AIF1TX1_1.setAcceptDrops(True)
self.btn_AIF1TX1_1.setLocale(QtCore.QLocale(QtCore.QLocale.English, QtCore.QLocale.UnitedStates))
self.btn_AIF1TX1_1.setText(_fromUtf8(""))
icon1 = QtGui.QIcon()
icon1.addPixmap(QtGui.QPixmap(_fromUtf8(":/input_small.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off)
self.btn_AIF1TX1_1.setIcon(icon1)
self.btn_AIF1TX1_1.setFlat(True)
self.btn_AIF1TX1_1.setObjectName(_fromUtf8("btn_AIF1TX1_1"))
self.horizontalLayout.addWidget(self.btn_AIF1TX1_1)
self.btn_AIF1TX1_2 = QtGui.QPushButton(self.gridLayoutWidget)
self.btn_AIF1TX1_2.setAcceptDrops(True)
self.btn_AIF1TX1_2.setLocale(QtCore.QLocale(QtCore.QLocale.English, QtCore.QLocale.UnitedStates))
self.btn_AIF1TX1_2.setText(_fromUtf8(""))
self.btn_AIF1TX1_2.setIcon(icon1)
self.btn_AIF1TX1_2.setFlat(True)
self.btn_AIF1TX1_2.setObjectName(_fromUtf8("btn_AIF1TX1_2"))
self.horizontalLayout.addWidget(self.btn_AIF1TX1_2)
self.btn_AIF1TX1_3 = QtGui.QPushButton(self.gridLayoutWidget)
self.btn_AIF1TX1_3.setAcceptDrops(True)
self.btn_AIF1TX1_3.setLocale(QtCore.QLocale(QtCore.QLocale.English, QtCore.QLocale.UnitedStates))
self.btn_AIF1TX1_3.setText(_fromUtf8(""))
self.btn_AIF1TX1_3.setIcon(icon1)
self.btn_AIF1TX1_3.setFlat(True)
self.btn_AIF1TX1_3.setObjectName(_fromUtf8("btn_AIF1TX1_3"))
self.horizontalLayout.addWidget(self.btn_AIF1TX1_3)
self.btn_AIF1TX1_4 = QtGui.QPushButton(self.gridLayoutWidget)
self.btn_AIF1TX1_4.setAcceptDrops(True)
self.btn_AIF1TX1_4.setLocale(QtCore.QLocale(QtCore.QLocale.English, QtCore.QLocale.UnitedStates))
self.btn_AIF1TX1_4.setText(_fromUtf8(""))
self.btn_AIF1TX1_4.setIcon(icon1)
self.btn_AIF1TX1_4.setFlat(True)
self.btn_AIF1TX1_4.setObjectName(_fromUtf8("btn_AIF1TX1_4"))
self.horizontalLayout.addWidget(self.btn_AIF1TX1_4)
self.verticalLayout_3.addLayout(self.horizontalLayout)
self.horizontalLayout_3.addLayout(self.verticalLayout_3)
self.verticalLayout_4 = QtGui.QVBoxLayout()
self.verticalLayout_4.setObjectName(_fromUtf8("verticalLayout_4"))
self.label_7 = QtGui.QLabel(self.gridLayoutWidget)
self.label_7.setLocale(QtCore.QLocale(QtCore.QLocale.English, QtCore.QLocale.UnitedStates))
self.label_7.setAlignment(QtCore.Qt.AlignCenter)
self.label_7.setObjectName(_fromUtf8("label_7"))
self.verticalLayout_4.addWidget(self.label_7)
self.label_8 = QtGui.QLabel(self.gridLayoutWidget)
self.label_8.setLocale(QtCore.QLocale(QtCore.QLocale.English, QtCore.QLocale.UnitedStates))
self.label_8.setAlignment(QtCore.Qt.AlignCenter)
self.label_8.setObjectName(_fromUtf8("label_8"))
self.verticalLayout_4.addWidget(self.label_8)
self.horizontalLayout_2 = QtGui.QHBoxLayout()
self.horizontalLayout_2.setSpacing(1)
self.horizontalLayout_2.setSizeConstraint(QtGui.QLayout.SetDefaultConstraint)
self.horizontalLayout_2.setObjectName(_fromUtf8("horizontalLayout_2"))
self.btn_AIF1TX2_1 = QtGui.QPushButton(self.gridLayoutWidget)
self.btn_AIF1TX2_1.setAcceptDrops(True)
self.btn_AIF1TX2_1.setLocale(QtCore.QLocale(QtCore.QLocale.English, QtCore.QLocale.UnitedStates))
self.btn_AIF1TX2_1.setText(_fromUtf8(""))
self.btn_AIF1TX2_1.setIcon(icon1)
self.btn_AIF1TX2_1.setFlat(True)
self.btn_AIF1TX2_1.setObjectName(_fromUtf8("btn_AIF1TX2_1"))
self.horizontalLayout_2.addWidget(self.btn_AIF1TX2_1)
self.btn_AIF1TX2_2 = QtGui.QPushButton(self.gridLayoutWidget)
self.btn_AIF1TX2_2.setAcceptDrops(True)
self.btn_AIF1TX2_2.setLocale(QtCore.QLocale(QtCore.QLocale.English, QtCore.QLocale.UnitedStates))
self.btn_AIF1TX2_2.setText(_fromUtf8(""))
self.btn_AIF1TX2_2.setIcon(icon1)
self.btn_AIF1TX2_2.setFlat(True)
self.btn_AIF1TX2_2.setObjectName(_fromUtf8("btn_AIF1TX2_2"))
self.horizontalLayout_2.addWidget(self.btn_AIF1TX2_2)
self.btn_AIF1TX2_3 = QtGui.QPushButton(self.gridLayoutWidget)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Minimum)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.btn_AIF1TX2_3.sizePolicy().hasHeightForWidth())
self.btn_AIF1TX2_3.setSizePolicy(sizePolicy)
self.btn_AIF1TX2_3.setAcceptDrops(True)
self.btn_AIF1TX2_3.setLocale(QtCore.QLocale(QtCore.QLocale.English, QtCore.QLocale.UnitedStates))
self.btn_AIF1TX2_3.setText(_fromUtf8(""))
self.btn_AIF1TX2_3.setIcon(icon1)
self.btn_AIF1TX2_3.setFlat(True)
self.btn_AIF1TX2_3.setObjectName(_fromUtf8("btn_AIF1TX2_3"))
self.horizontalLayout_2.addWidget(self.btn_AIF1TX2_3)
self.btn_AIF1TX2_4 = QtGui.QPushButton(self.gridLayoutWidget)
self.btn_AIF1TX2_4.setAcceptDrops(True)
self.btn_AIF1TX2_4.setLocale(QtCore.QLocale(QtCore.QLocale.English, QtCore.QLocale.UnitedStates))
self.btn_AIF1TX2_4.setText(_fromUtf8(""))
self.btn_AIF1TX2_4.setIcon(icon1)
self.btn_AIF1TX2_4.setFlat(True)
self.btn_AIF1TX2_4.setObjectName(_fromUtf8("btn_AIF1TX2_4"))
self.horizontalLayout_2.addWidget(self.btn_AIF1TX2_4)
self.verticalLayout_4.addLayout(self.horizontalLayout_2)
self.horizontalLayout_3.addLayout(self.verticalLayout_4)
self.gridLayout.addLayout(self.horizontalLayout_3, 1, 1, 1, 1)
self.lbl_playback = QtGui.QLabel(self.gridLayoutWidget)
self.lbl_playback.setLocale(QtCore.QLocale(QtCore.QLocale.English, QtCore.QLocale.UnitedStates))
self.lbl_playback.setTextFormat(QtCore.Qt.AutoText)
self.lbl_playback.setObjectName(_fromUtf8("lbl_playback"))
self.gridLayout.addWidget(self.lbl_playback, 0, 0, 1, 1)
self.label_9 = QtGui.QLabel(self.gridLayoutWidget)
self.label_9.setLocale(QtCore.QLocale(QtCore.QLocale.English, QtCore.QLocale.UnitedStates))
self.label_9.setAlignment(QtCore.Qt.AlignCenter)
self.label_9.setObjectName(_fromUtf8("label_9"))
self.gridLayout.addWidget(self.label_9, 0, 1, 1, 1)
self.dial = QtGui.QDial(self.centralwidget)
self.dial.setGeometry(QtCore.QRect(30, 360, 50, 64))
self.dial.setObjectName(_fromUtf8("dial"))
self.label_10 = QtGui.QLabel(self.centralwidget)
self.label_10.setGeometry(QtCore.QRect(20, 320, 52, 15))
self.label_10.setObjectName(_fromUtf8("label_10"))
self.widget = QtGui.QWidget(self.centralwidget)
self.widget.setGeometry(QtCore.QRect(160, 400, 331, 21))
self.widget.setObjectName(_fromUtf8("widget"))
self.groupBox = QtGui.QGroupBox(self.centralwidget)
self.groupBox.setGeometry(QtCore.QRect(130, 130, 361, 271))
self.groupBox.setObjectName(_fromUtf8("groupBox"))
self.graphicsView = WiringGraphicsView(self.groupBox)
self.graphicsView.setGeometry(QtCore.QRect(40, 30, 291, 241))
self.graphicsView.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
self.graphicsView.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
brush = QtGui.QBrush(QtGui.QColor(0, 0, 0))
brush.setStyle(QtCore.Qt.NoBrush)
self.graphicsView.setBackgroundBrush(brush)
self.graphicsView.setObjectName(_fromUtf8("graphicsView"))
self.btn_AIF1RX1_2 = DragButton(self.groupBox)
self.btn_AIF1RX1_2.setGeometry(QtCore.QRect(50, 50, 51, 31))
self.btn_AIF1RX1_2.setBaseSize(QtCore.QSize(0, 0))
self.btn_AIF1RX1_2.setMouseTracking(True)
self.btn_AIF1RX1_2.setLocale(QtCore.QLocale(QtCore.QLocale.English, QtCore.QLocale.UnitedStates))
self.btn_AIF1RX1_2.setText(_fromUtf8(""))
self.btn_AIF1RX1_2.setIcon(icon)
self.btn_AIF1RX1_2.setAutoDefault(False)
self.btn_AIF1RX1_2.setDefault(False)
self.btn_AIF1RX1_2.setFlat(True)
self.btn_AIF1RX1_2.setObjectName(_fromUtf8("btn_AIF1RX1_2"))
self.btn_AIF1TX1_5 = DragButton(self.groupBox)
self.btn_AIF1TX1_5.setGeometry(QtCore.QRect(270, 150, 41, 31))
self.btn_AIF1TX1_5.setMouseTracking(False)
self.btn_AIF1TX1_5.setFocusPolicy(QtCore.Qt.StrongFocus)
self.btn_AIF1TX1_5.setAcceptDrops(True)
self.btn_AIF1TX1_5.setLocale(QtCore.QLocale(QtCore.QLocale.English, QtCore.QLocale.UnitedStates))
self.btn_AIF1TX1_5.setText(_fromUtf8(""))
self.btn_AIF1TX1_5.setIcon(icon1)
self.btn_AIF1TX1_5.setFlat(True)
self.btn_AIF1TX1_5.setObjectName(_fromUtf8("btn_AIF1TX1_5"))
self.btn_AIF1RX1_3 = DragButton(self.groupBox)
self.btn_AIF1RX1_3.setGeometry(QtCore.QRect(60, 110, 51, 27))
self.btn_AIF1RX1_3.setBaseSize(QtCore.QSize(0, 0))
self.btn_AIF1RX1_3.setMouseTracking(True)
self.btn_AIF1RX1_3.setAcceptDrops(False)
self.btn_AIF1RX1_3.setLocale(QtCore.QLocale(QtCore.QLocale.English, QtCore.QLocale.UnitedStates))
self.btn_AIF1RX1_3.setText(_fromUtf8(""))
self.btn_AIF1RX1_3.setIcon(icon)
self.btn_AIF1RX1_3.setAutoDefault(False)
self.btn_AIF1RX1_3.setDefault(False)
self.btn_AIF1RX1_3.setFlat(True)
self.btn_AIF1RX1_3.setObjectName(_fromUtf8("btn_AIF1RX1_3"))
WolfsonMixerWindow.setCentralWidget(self.centralwidget)
self.menubar = QtGui.QMenuBar(WolfsonMixerWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 562, 23))
self.menubar.setObjectName(_fromUtf8("menubar"))
WolfsonMixerWindow.setMenuBar(self.menubar)
self.statusbar = QtGui.QStatusBar(WolfsonMixerWindow)
self.statusbar.setObjectName(_fromUtf8("statusbar"))
WolfsonMixerWindow.setStatusBar(self.statusbar)
self.retranslateUi(WolfsonMixerWindow)
QtCore.QObject.connect(self.dial, QtCore.SIGNAL(_fromUtf8("valueChanged(int)")), self.label_10.setNum)
QtCore.QMetaObject.connectSlotsByName(WolfsonMixerWindow)
def retranslateUi(self, WolfsonMixerWindow):
WolfsonMixerWindow.setWindowTitle(_translate("WolfsonMixerWindow", "Wolfson Mixer", None))
self.label_2.setText(_translate("WolfsonMixerWindow", "AIF1RX1", None))
self.label.setText(_translate("WolfsonMixerWindow", "L", None))
self.label_3.setText(_translate("WolfsonMixerWindow", "AIF1RX2", None))
self.label_4.setText(_translate("WolfsonMixerWindow", "R", None))
self.label_6.setText(_translate("WolfsonMixerWindow", "AIF1TX1", None))
self.label_5.setText(_translate("WolfsonMixerWindow", "L", None))
self.label_7.setText(_translate("WolfsonMixerWindow", "AIF1TX2", None))
self.label_8.setText(_translate("WolfsonMixerWindow", "R", None))
self.lbl_playback.setText(_translate("WolfsonMixerWindow", "<html><head/><body><p><span style=\" font-weight:600;\">Playback (from RPi)</span></p></body></html>", None))
self.label_9.setText(_translate("WolfsonMixerWindow", "<html><head/><body><p><span style=\" font-weight:600;\">Record (to RPi)</span></p></body></html>", None))
self.label_10.setText(_translate("WolfsonMixerWindow", "TextLabel", None))
self.groupBox.setTitle(_translate("WolfsonMixerWindow", "GroupBox", None))
from wiringgraphicsview import WiringGraphicsView
from dragbutton import DragButton
import icons_rc
【问题讨论】:
-
您提供了错误的示例代码。用鼠标画线的类正在工作(如你所说)。但这对两个小部件之间的界限没有帮助。你能出示这段代码吗?
-
我不知道到底出了什么问题,因为没有图片说明这条线有多错误,也没有示例代码产生错误的线,但我发布了一个在两个小部件之间画线的工作示例图形视图作为答案。
-
@Trilarion 忽略鼠标事件,我使用的方法是
paintWire。如您所见,它接收两个参数,start_widget 和 end_widget(临时名称),因此这些按钮将接收并在它们之间画线。 -
你能显示你调用
paintWire的代码吗?你能显示uic文件吗?您是否尝试过使用 pdb 进行调试?您能否在paintWire期间围绕每个对象(用于测试目的)绘制rects,以便您可以看到边界框(以及每个对象的默认原点)? -
@g19fanatic 我刚刚添加了整个 uic 文件和我调用paintWire 的主文件。我从来没有用过 pdb,但我用的是 eric6 IDE。
标签: python qt pyqt pyside qgraphicsview