我有一个用Qt Designer制作的表单。我希望当您单击lineEdit
或 时textEdit
,它们会出现toolButton
,
但直到用户单击它们时,它们才可见。
如何做到这一点?
main.py:
from PyQt6 import QtCore, QtGui, QtWidgets
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(800, 480)
MainWindow.setStyleSheet("QLineEdit{\n"
" min-width: 100px;\n"
" min-height: 35px;\n"
" background-color: white;\n"
" border: 1px solid gray;\n"
" border-radius: 10px;\n"
" \n"
" font: 14pt \"Segoe UI Variable\";\n"
"}\n"
"\n"
"QTextEdit{\n"
" max-width: 800px;\n"
" max-height: 100px;\n"
" background-color: white;\n"
" border: 1px solid gray;\n"
" border-radius: 10px;\n"
"\n"
" \n"
" font: 12pt \"Segoe UI Variable\";\n"
"}\n"
"\n"
"QToolButton{\n"
" background-color: white;\n"
" border: 1px solid gray;\n"
" border-radius: 10px;\n"
"}\n"
"\n"
"QGroupBox{\n"
" background-color: white;\n"
" border: 1px solid gray;\n"
" border-radius: 10px;\n"
"}")
self.centralwidget = QtWidgets.QWidget(parent=MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.gridLayout = QtWidgets.QGridLayout(self.centralwidget)
self.gridLayout.setObjectName("gridLayout")
self.groupBox = QtWidgets.QGroupBox(parent=self.centralwidget)
self.groupBox.setTitle("")
self.groupBox.setObjectName("groupBox")
self.gridLayout_2 = QtWidgets.QGridLayout(self.groupBox)
self.gridLayout_2.setObjectName("gridLayout_2")
self.lineEdit = QtWidgets.QLineEdit(parent=self.groupBox)
self.lineEdit.setObjectName("lineEdit")
self.gridLayout_2.addWidget(self.lineEdit, 0, 0, 1, 1)
self.horizontalLayout = QtWidgets.QHBoxLayout()
self.horizontalLayout.setObjectName("horizontalLayout")
self.toolButton_2 = QtWidgets.QToolButton(parent=self.groupBox)
self.toolButton_2.setMinimumSize(QtCore.QSize(30, 0))
icon = QtGui.QIcon()
icon.addPixmap(QtGui.QPixmap("../../icon/format_bold_30dp_999999_FILL0_wght400_GRAD0_opsz24.png"), QtGui.QIcon.Mode.Normal, QtGui.QIcon.State.Off)
self.toolButton_2.setIcon(icon)
self.toolButton_2.setIconSize(QtCore.QSize(30, 30))
self.toolButton_2.setObjectName("toolButton_2")
self.horizontalLayout.addWidget(self.toolButton_2)
self.toolButton_4 = QtWidgets.QToolButton(parent=self.groupBox)
icon1 = QtGui.QIcon()
icon1.addPixmap(QtGui.QPixmap("../../icon/format_italic_30dp_999999_FILL0_wght400_GRAD0_opsz24.png"), QtGui.QIcon.Mode.Normal, QtGui.QIcon.State.Off)
self.toolButton_4.setIcon(icon1)
self.toolButton_4.setIconSize(QtCore.QSize(30, 30))
self.toolButton_4.setObjectName("toolButton_4")
self.horizontalLayout.addWidget(self.toolButton_4)
self.toolButton_3 = QtWidgets.QToolButton(parent=self.groupBox)
icon2 = QtGui.QIcon()
icon2.addPixmap(QtGui.QPixmap("../../icon/format_underlined_30dp_999999_FILL0_wght400_GRAD0_opsz24.png"), QtGui.QIcon.Mode.Normal, QtGui.QIcon.State.Off)
self.toolButton_3.setIcon(icon2)
self.toolButton_3.setIconSize(QtCore.QSize(30, 30))
self.toolButton_3.setObjectName("toolButton_3")
self.horizontalLayout.addWidget(self.toolButton_3)
self.toolButton_5 = QtWidgets.QToolButton(parent=self.groupBox)
icon3 = QtGui.QIcon()
icon3.addPixmap(QtGui.QPixmap("../../icon/link_30dp_999999_FILL0_wght400_GRAD0_opsz24.png"), QtGui.QIcon.Mode.Normal, QtGui.QIcon.State.Off)
self.toolButton_5.setIcon(icon3)
self.toolButton_5.setIconSize(QtCore.QSize(30, 30))
self.toolButton_5.setObjectName("toolButton_5")
self.horizontalLayout.addWidget(self.toolButton_5)
self.toolButton = QtWidgets.QToolButton(parent=self.groupBox)
icon4 = QtGui.QIcon()
icon4.addPixmap(QtGui.QPixmap("../../icon/format_clear_30dp_999999_FILL0_wght400_GRAD0_opsz24.png"), QtGui.QIcon.Mode.Normal, QtGui.QIcon.State.Off)
self.toolButton.setIcon(icon4)
self.toolButton.setIconSize(QtCore.QSize(30, 30))
self.toolButton.setObjectName("toolButton")
self.horizontalLayout.addWidget(self.toolButton)
spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Minimum)
self.horizontalLayout.addItem(spacerItem)
self.gridLayout_2.addLayout(self.horizontalLayout, 1, 0, 1, 1)
self.textEdit = QtWidgets.QTextEdit(parent=self.groupBox)
self.textEdit.setObjectName("textEdit")
self.gridLayout_2.addWidget(self.textEdit, 2, 0, 1, 1)
self.horizontalLayout_2 = QtWidgets.QHBoxLayout()
self.horizontalLayout_2.setObjectName("horizontalLayout_2")
self.toolButton_12 = QtWidgets.QToolButton(parent=self.groupBox)
self.toolButton_12.setIcon(icon)
self.toolButton_12.setIconSize(QtCore.QSize(30, 30))
self.toolButton_12.setObjectName("toolButton_12")
self.horizontalLayout_2.addWidget(self.toolButton_12)
self.toolButton_11 = QtWidgets.QToolButton(parent=self.groupBox)
self.toolButton_11.setIcon(icon1)
self.toolButton_11.setIconSize(QtCore.QSize(30, 30))
self.toolButton_11.setObjectName("toolButton_11")
self.horizontalLayout_2.addWidget(self.toolButton_11)
self.toolButton_10 = QtWidgets.QToolButton(parent=self.groupBox)
self.toolButton_10.setIcon(icon2)
self.toolButton_10.setIconSize(QtCore.QSize(30, 30))
self.toolButton_10.setObjectName("toolButton_10")
self.horizontalLayout_2.addWidget(self.toolButton_10)
self.toolButton_9 = QtWidgets.QToolButton(parent=self.groupBox)
self.toolButton_9.setIcon(icon3)
self.toolButton_9.setIconSize(QtCore.QSize(30, 30))
self.toolButton_9.setObjectName("toolButton_9")
self.horizontalLayout_2.addWidget(self.toolButton_9)
self.toolButton_8 = QtWidgets.QToolButton(parent=self.groupBox)
icon5 = QtGui.QIcon()
icon5.addPixmap(QtGui.QPixmap("../../icon/format_list_numbered_30dp_999999_FILL0_wght400_GRAD0_opsz24.png"), QtGui.QIcon.Mode.Normal, QtGui.QIcon.State.Off)
self.toolButton_8.setIcon(icon5)
self.toolButton_8.setIconSize(QtCore.QSize(30, 30))
self.toolButton_8.setObjectName("toolButton_8")
self.horizontalLayout_2.addWidget(self.toolButton_8)
self.toolButton_7 = QtWidgets.QToolButton(parent=self.groupBox)
icon6 = QtGui.QIcon()
icon6.addPixmap(QtGui.QPixmap("../../icon/format_list_bulleted_30dp_999999_FILL0_wght400_GRAD0_opsz24.png"), QtGui.QIcon.Mode.Normal, QtGui.QIcon.State.Off)
self.toolButton_7.setIcon(icon6)
self.toolButton_7.setIconSize(QtCore.QSize(30, 30))
self.toolButton_7.setObjectName("toolButton_7")
self.horizontalLayout_2.addWidget(self.toolButton_7)
self.toolButton_6 = QtWidgets.QToolButton(parent=self.groupBox)
self.toolButton_6.setIcon(icon4)
self.toolButton_6.setIconSize(QtCore.QSize(30, 30))
self.toolButton_6.setObjectName("toolButton_6")
self.horizontalLayout_2.addWidget(self.toolButton_6)
spacerItem1 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Minimum)
self.horizontalLayout_2.addItem(spacerItem1)
self.gridLayout_2.addLayout(self.horizontalLayout_2, 3, 0, 1, 1)
self.gridLayout.addWidget(self.groupBox, 0, 0, 1, 1)
spacerItem2 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Policy.Minimum, QtWidgets.QSizePolicy.Policy.Expanding)
self.gridLayout.addItem(spacerItem2, 1, 0, 1, 1)
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(parent=MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 22))
self.menubar.setObjectName("menubar")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(parent=MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
self.lineEdit.setPlaceholderText(_translate("MainWindow", "Новая форма"))
self.toolButton_2.setText(_translate("MainWindow", "..."))
self.toolButton_4.setText(_translate("MainWindow", "..."))
self.toolButton_3.setText(_translate("MainWindow", "..."))
self.toolButton_5.setText(_translate("MainWindow", "..."))
self.toolButton.setText(_translate("MainWindow", "..."))
self.textEdit.setPlaceholderText(_translate("MainWindow", "Описание"))
self.toolButton_12.setText(_translate("MainWindow", "..."))
self.toolButton_11.setText(_translate("MainWindow", "..."))
self.toolButton_10.setText(_translate("MainWindow", "..."))
self.toolButton_9.setText(_translate("MainWindow", "..."))
self.toolButton_8.setText(_translate("MainWindow", "..."))
self.toolButton_7.setText(_translate("MainWindow", "..."))
self.toolButton_6.setText(_translate("MainWindow", "..."))
调用setVisible(False)或hide()明确隐藏该小部件。
请注意,我已经向它们添加了小部件
self.frame_1
和水平布局管理器。self.frame_2
我看到你的任务是这样的:
好的.png