PyQt5 – 在鼠标悬停时将背景颜色设置为不可编辑 ComboBox 的 lineedit
在本文中,我们将看到当鼠标悬停在不可编辑组合框的行编辑部分时,如何设置背景颜色,组合框的行编辑部分是显示和编辑文本的位置。
注意:当我们将行编辑对象添加到组合框时,它会使组合框可编辑,因此需要使行编辑不可编辑。
In order to add background color to the line edit part of the combo box when mouse hover over it, do the following –
1. Create a combo box
2. Create a line edit widget
3. Change background color of the line edit widget for mouse hover over it
4. Make line edit non editable
5. Add line edit widget to the combo box
句法 :
# creating line edit widget
line_edit = QLineEdit()
# setting background color to the line edit widget
line_edit.setStyleSheet("QLineEdit::hover"
"{"
"background : lightblue;"
"}")
# making line edit non editable
line_edit.setReadOnly(True)
# adding line edit widget to combo box
self.combo_box.setLineEdit(line_edit)
下面是实现
# importing libraries
from PyQt5.QtWidgets import *
from PyQt5 import QtCore, QtGui
from PyQt5.QtGui import *
from PyQt5.QtCore import *
import sys
class Window(QMainWindow):
def __init__(self):
super().__init__()
# setting title
self.setWindowTitle("Python ")
# setting geometry
self.setGeometry(100, 100, 600, 400)
# calling method
self.UiComponents()
# showing all the widgets
self.show()
# method for widgets
def UiComponents(self):
# creating a combo box widget
self.combo_box = QComboBox(self)
# setting geometry of combo box
self.combo_box.setGeometry(200, 150, 150, 30)
# making combo box editable
self.combo_box.setEditable(True)
# geek list
geek_list = ["Sayian", "Super Sayian", "Super Sayian 2", "Super Sayian B"]
# adding list of items to combo box
self.combo_box.addItems(geek_list)
# creating line edit widget
line_edit = QLineEdit()
# setting background color to the line edit widget
# when mouse hover over it
line_edit.setStyleSheet("QLineEdit"
"{"
"background : lightblue;"
"}")
# making line edit non editable
line_edit.setReadOnly(True)
# adding line edit widget to combo box
self.combo_box.setLineEdit(line_edit)
# create pyqt5 app
App = QApplication(sys.argv)
# create the instance of our Window
window = Window()
# start the app
sys.exit(App.exec())
输出 :