Python 2.7 在QGroupBox的上角放置一个按钮
我有以下QGroupBox: 我想在右上角添加一个按钮,如下所示:Python 2.7 在QGroupBox的上角放置一个按钮,python-2.7,pyqt,pyside,Python 2.7,Pyqt,Pyside,我有以下QGroupBox: 我想在右上角添加一个按钮,如下所示: 以便用户可以删除QGroupBox。这可能吗?如果没有,我可以使用哪些备选选项?下面的代码做了类似的事情,而不是直接在分组框的边框上绘制 import sys from PyQt4 import QtGui from PyQt4 import QtCore class GROUPBOX (QtGui.QWidget): def __init__(self): super(GROUPBOX, sel
以便用户可以删除QGroupBox。这可能吗?如果没有,我可以使用哪些备选选项?下面的代码做了类似的事情,而不是直接在分组框的边框上绘制
import sys
from PyQt4 import QtGui
from PyQt4 import QtCore
class GROUPBOX (QtGui.QWidget):
def __init__(self):
super(GROUPBOX, self).__init__()
self.initUI()
def initUI(self):
self.pushButton = QtGui.QPushButton(self)
self.pushButton.setGeometry(QtCore.QRect(480, 10, 50, 20))
self.pushButton.setObjectName ('pushButton')
self.pushButton.setText ('Delete')
self.pushButton.clicked.connect (self.delete)
self.createGroupBox ()
self.resize(586, 335)
self.show()
def createGroupBox (self) :
self.groupBox = QtGui.QGroupBox(self)
self.groupBox.setGeometry(QtCore.QRect(25, 25, 500, 300))
self.groupBox.setObjectName ('groupBox')
self.groupBox.setTitle ('Group Box')
self.groupBox.show ()
def delete (self) :
currentGroupBox = self.findChildren (QtGui.QGroupBox)
if currentGroupBox :
for eachGroupBox in currentGroupBox :
eachGroupBox.deleteLater()
self.pushButton.setText ('Create')
else :
self.createGroupBox ()
self.pushButton.setText ('Delete')
def main():
app = QtGui.QApplication(sys.argv)
ex = GROUPBOX()
sys.exit(app.exec_())
if __name__ == '__main__':
main()
我想出了如何使用QCheckBox实现非常接近我想要的东西: 无悬停: 悬停: 我这样做是通过重新设定QCheckBox的用途,如下所示:
import sys
from PySide import QtGui, QtCore
class DeleteButtonExample(QtGui.QWidget):
def __init__(self):
super(DeleteButtonExample, self).__init__()
delete_gb = QtGui.QGroupBox('QGroupBox with Delete Button')
group_box_vbl = QtGui.QVBoxLayout()
group_box_vbl.setAlignment(QtCore.Qt.AlignTop)
group_box_vbl.addSpacing(-14)
delete_button_hbl = QtGui.QHBoxLayout()
delete_button_cb = QtGui.QCheckBox()
delete_button_cb.clicked.connect(self.delete_event)
delete_button_cb.setStyleSheet('QCheckBox::indicator:hover {image: url(del_btn_hover.png);}'
'QCheckBox::indicator:!hover {image: url(del_btn_no_hover.png);}')
delete_button_hbl.setAlignment(QtCore.Qt.AlignRight)
delete_button_hbl.addWidget(delete_button_cb)
delete_button_hbl.addSpacing(-13)
group_box_vbl.addLayout(delete_button_hbl)
delete_gb.setLayout(group_box_vbl)
window_vbl = QtGui.QVBoxLayout()
window_vbl.addWidget(delete_gb)
self.setLayout(window_vbl)
self.setGeometry(300, 300, 250, 150)
self.setWindowTitle('QGroupBox with Delete Button')
self.show()
# @QtCore.Slot()
def delete_event(self):
msg = "Define the code to delete the QGroupBox here!"
QtGui.QMessageBox().information(self, "Trying to delete the QGroupBox", msg)
if __name__ == '__main__':
app = QtGui.QApplication(sys.argv)
example = DeleteButtonExample()
sys.exit(app.exec_())
导致
两个图标悬停和不悬停的位置是:
及