Кнопка в кнопке, PyQt
Ответы (1 шт):
Автор решения: S. Nick
→ Ссылка
Сделайте родителем второй кнопки первую кнопку и установите ее (вторую кнопку) куда вам надо.
import sys
from PyQt5 import QtWidgets, QtGui, QtCore
from PyQt5.Qt import *
class PushButton(QtWidgets.QPushButton):
def __init__(self, *args, **kwargs):
super(PushButton, self).__init__(*args, **kwargs)
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("NCM manager")
self.setWindowIcon(QIcon('im.png'))
self.setStyleSheet("background-color: rgb(42, 42, 40);")
self.centralWidget = QWidget()
self.setCentralWidget(self.centralWidget)
self.pushButton_1 = PushButton('Button 1', size=QSize(620, 300)) # !!!
self.pushButton_1.setStyleSheet(
"background-color: #238b45; color: #edf8fb;")
self.pushButton_1.clicked.connect(self.a)
self.pushButton_1.setMinimumHeight(43)
self.pushButton_1.setMinimumWidth(280)
# ------------------------------------------------> vvvvvvvvvvvvvvvvv <--------
self.pushButton_2 = QPushButton('Button 2', self.pushButton_1) # !!!
self.pushButton_2.setStyleSheet(
"background-color: rgb(242, 142, 140); ; color: #005824;")
self.pushButton_2.clicked.connect(self.b)
layout = QVBoxLayout(self.centralWidget)
layout.addWidget(self.pushButton_1)
def a(self):
print(f'clicked Button 1 {self.pushButton_1}')
def b(self):
print(f'clicked Button 2 {self.pushButton_2}')
def resizeEvent(self, event):
self.pushButton_2.move(self.pushButton_1.rect().width()-90, 10) # !!!
if __name__ == '__main__':
app = QApplication(sys.argv)
w = MainWindow()
w.resize(640, 300)
w.show()
sys.exit(app.exec_())

