Можно ли расположить несколько элементов в названии QGroupBox?
Можно ли расположить несколько элементов в названии QGroupBox
?
Причём разного типа, т.е. не только строка.
Должно быть примерно так: "<=
GroupBoxName =>
"
from PySide6.QtWidgets import Widget,QLabel,QApplication,QVBoxLayout,QGroupBox,QPushButton
class GroupboxTest(QWidget):
def __init__(self, parent=None):
super(GroupboxTest, self).__init__(parent)
groupbox_name = 'GroupboxName'
groupbox_button_to_left = QPushButton('<=') # 1
groupbox_button_to_right = QPushButton('=>') # 2
groupbox = QGroupBox(groupbox_name)
vbox = QVBoxLayout()
label1 = QLabel('111')
label2 = QLabel('222')
label3 = QLabel('333')
vbox.addWidget(label1)
vbox.addWidget(label2)
vbox.addWidget(label3)
groupbox.setLayout(vbox)
vbox1 = QVBoxLayout()
vbox1.addWidget(groupbox)
self.setLayout(vbox1)
if __name__ == '__main__':
import sys
app = QApplication(sys.argv)
w = GroupboxTest()
w.show()
sys.exit(app.exec())
Ответы (1 шт):
Автор решения: S. Nick
→ Ссылка
Попробуйте так:
from PyQt5.QtWidgets import (QWidget, QLabel, QApplication, QVBoxLayout,
QGroupBox, QPushButton, QToolButton)
from PyQt5.QtCore import Qt, QSize
from PyQt5.QtGui import QFont, QIcon
class GroupboxTest(QWidget):
def __init__(self, parent=None):
super(GroupboxTest, self).__init__(parent)
groupbox_name = ' GroupboxName '
self.groupbox = QGroupBox(title=groupbox_name, alignment=Qt.AlignHCenter)
self.button_to_left = QToolButton(self.groupbox, text='left') # 1
self.button_to_left.setToolButtonStyle(Qt.ToolButtonIconOnly)
self.button_to_left.setIcon(QIcon("img/left.png"))
self.button_to_left.setIconSize(QSize(22, 22))
self.button_to_left.setFixedSize(QSize(25, 25))
self.button_to_left.clicked.connect(
lambda: print(self.button_to_left.text()))
self.button_to_right = QToolButton(self.groupbox, text='right') # 2
self.button_to_right.setIcon(QIcon("img/right.png"))
self.button_to_right.setIconSize(QSize(22, 22))
self.button_to_right.setFixedSize(QSize(25, 25))
self.button_to_right.clicked.connect(
lambda: print(self.button_to_right.text()))
label1 = QLabel('111')
label2 = QLabel('222')
label3 = QLabel('333')
vbox = QVBoxLayout(self.groupbox)
vbox.addWidget(label1)
vbox.addWidget(label2)
vbox.addWidget(label3)
vbox1 = QVBoxLayout(self)
vbox1.addWidget(self.groupbox)
def resizeEvent(self, event):
w = self.groupbox.size().width()
x = (w - 182) / 2
self.button_to_left.move(x, -1)
x = (w - 182) / 2 + 157
self.button_to_right.move(x, -1)
QSS = '''
QToolButton {
background-color: transparent;
border: none
}
QToolButton::hover {
background-color: rgb(214, 222, 246)
}
'''
if __name__ == '__main__':
import sys
app = QApplication(sys.argv)
# app.setStyle("Fusion") # <--- попробуйте
app.setStyleSheet(QSS)
app.setFont(QFont("Bahnschrift SemiBold", 12, QFont.Bold))
w = GroupboxTest()
w.show()
sys.exit(app.exec())
left.png
right.png