Добавление рамки на экран после нажатия на кнопку
Как добавить рамку на экран после нажатия на кнопку?
Чтобы из этого
после нажатия на кнопку получить это
from PyQt5 import QtCore, QtGui, QtWidgets
font = QtGui.QFont()
font.setFamily('Montserrat')
font.setPointSize(12)
font.setBold(True)
font.setWeight(75)
class Ui_Window3(object):
def setupUi(self, Window3):
Window3.setObjectName('Window3')
Window3.resize(450, 336)
Window3.setWindowTitle(' ')
icon = QtGui.QIcon()
icon.addPixmap(QtGui.QPixmap('icon.png'), QtGui.QIcon.Normal, QtGui.QIcon.Off)
Window3.setWindowIcon(icon)
Window3.setStyleSheet('background-color: #fefff7')
self.Main3 = QtWidgets.QWidget(Window3)
self.Main3.setObjectName('Main3')
self.but_5 = QtWidgets.QPushButton(self.Main3)
self.but_5.setGeometry(QtCore.QRect(0, 276, 450, 60))
self.but_5.setFont(font)
self.but_5.setStyleSheet('QPushButton {color: #000000; background-color: #c7dcd0; border-radius: 0;} QPushButton: pressed {background-color: #9babb2;}')
self.but_5.setObjectName('but_5')
Window3.setCentralWidget(self.Main3)
self.retranslateUi(Window3)
QtCore.QMetaObject.connectSlotsByName(Window3)
self.but_5.clicked.connect(self.results)
def retranslateUi(self, Window3):
_translate = QtCore.QCoreApplication.translate
self.but_5.setText(_translate('Window3', 'КНОПКА'))
def results(self):
#рамка которую нужно добавить на экран после нажатие на кнопку
self.text_3 = QtWidgets.QLabel(self.Main3)
self.text_3.setGeometry(QtCore.QRect(0, 138, 450, 60))
self.text_3.setFont(font)
self.text_3.setStyleSheet('background-color: #c7dcd0; border:2px solid#9babb2; color:#000000')
self.text_3.setText('РАМКА')
self.text_3.setAlignment(QtCore.Qt.AlignCenter)
self.text_3.setObjectName('text_3')
if __name__ == '__main__':
import sys
app = QtWidgets.QApplication(sys.argv)
Window3 = QtWidgets.QMainWindow()
ui = Ui_Window3()
ui.setupUi(Window3)
Window3.show()
sys.exit(app.exec_())
Ответы (1 шт):
Автор решения: S. Nick
→ Ссылка
Не изменяйте код, сгенерированный Qt Designer. Создайте другой класс, который наследуется от соответствующего виджета, и используйте созданный класс для его заполнения.
void QWidget::show()
Показывает виджет и его дочерние виджеты.
from PyQt5 import QtCore, QtGui, QtWidgets
font = QtGui.QFont()
font.setFamily('Montserrat')
font.setPointSize(12)
font.setBold(True)
font.setWeight(75)
class Ui_Window3(object):
def setupUi(self, Window3):
Window3.setObjectName('Window3')
Window3.resize(450, 336)
Window3.setWindowTitle(' ')
icon = QtGui.QIcon()
icon.addPixmap(QtGui.QPixmap('icon.png'), QtGui.QIcon.Normal, QtGui.QIcon.Off)
Window3.setWindowIcon(icon)
Window3.setStyleSheet('background-color: #fefff7')
self.Main3 = QtWidgets.QWidget(Window3)
self.Main3.setObjectName('Main3')
self.but_5 = QtWidgets.QPushButton(self.Main3)
self.but_5.setGeometry(QtCore.QRect(0, 276, 450, 60))
self.but_5.setFont(font)
self.but_5.setStyleSheet('QPushButton {color: #000000; background-color: #c7dcd0; border-radius: 0;} QPushButton: pressed {background-color: #9babb2;}')
self.but_5.setObjectName('but_5')
Window3.setCentralWidget(self.Main3)
self.retranslateUi(Window3)
QtCore.QMetaObject.connectSlotsByName(Window3)
def retranslateUi(self, Window3):
_translate = QtCore.QCoreApplication.translate
self.but_5.setText(_translate('Window3', 'КНОПКА'))
class MainWindow(QtWidgets.QMainWindow, Ui_Window3):
def __init__(self):
super().__init__()
self.setupUi(self)
self.but_5.clicked.connect(self.results)
def results(self):
#рамка которую нужно добавить на экран после нажатие на кнопку
self.text_3 = QtWidgets.QLabel(self.Main3)
self.text_3.setGeometry(QtCore.QRect(0, 138, 450, 60))
self.text_3.setFont(font)
self.text_3.setStyleSheet('''
background-color: #c7dcd0;
border:2px solid #9babb2;
color: #000000;
''')
self.text_3.setText('РАМКА')
self.text_3.setAlignment(QtCore.Qt.AlignCenter)
self.text_3.setObjectName('text_3')
self.text_3.show() # +++
if __name__ == '__main__':
import sys
app = QtWidgets.QApplication(sys.argv)
w = MainWindow()
w.show()
sys.exit(app.exec_())


