子窗口不关闭 主窗口不可操作
self.setWindowModality(Qt.ApplicationModal)
窗口图标, 将图片读成字节,解决打包后不能显示图标
img_io = io.BytesIO(ico_bytes)
img = Image.open(img_io)
pix = img.toqpixmap()
self.setWindowIcon(QIcon(pix)) # 图标
QLineEdit设置不可编辑
self.line = QLineEdit(self)
self.line.setFocusPolicy(QtCore.Qt.NoFocus)
QLineEdit 焦点
self.line = QLineEdit(self)
self.line.installEventFilter(self)
# 可设置多个QLineEdit
# 判断obj 做出相应的操作
def eventFilter(self, obj, event):
if obj == self.line:
if event.type() == QEvent.FocusIn:
# 获取焦点
pass
elif event.type() == QEvent.FocusOut:
# 失去焦点
pass
else:
pass
return False
return False
QTableWidget 设置不可编辑
self.tablewidget= QTableWidget(self)
self.tablewidget.setGeoQTableWidget
self.tablewidget.setEditTriggers(QtWidgets.QAbstractItemView.NoEditTriggers) # 设置不可编辑
self.tablewidget.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch) # 设置可自适应宽度
self.tablewidget.setColumnWidth(0, 120) # 单列设置宽度 (列, 宽度)
QTableWidget 编辑右键菜单
self.tablewidget.setContextMenuPolicy(Qt.CustomContextMenu) # 允许右键产生子菜单
self.tablewidget.customContextMenuRequested.connect(self.generateMenu) # 右键菜单
def generateMenu(self, pos):
# 编辑菜单和操作
contents = self.tablewidget.selectedItems()[0].text() # 获取选中文本内容
menu = QMenu()
item1 = menu.addAction(u"删除")
item2 = menu.addAction(u"刷新")
action = menu.exec_(self.value_list_browser.mapToGlobal(pos))
if action == item1:
pass
if action == item2:
pass
QComboBox 下拉框绑定事件
self.combobox = QComboBox(self)
self.combobox.addItems(['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15'])
# 点击下拉列表,触发对应事件
self.combobox.currentIndexChanged.connect(lambda: self.WrittingNotOfOther(self.combobox.currentIndex()))
def WrittingNotOfOther(self, tag):
# 操作
print(tag)
pass
pyqt 弹窗
# 主窗口
self.add_win = AddWin() # 初始化 弹窗
self.add_win._signal.connect(self.win_sign) # 链接信号 self.win_sign 设置信号绑定
class AddWin(QDialog):
# 弹窗
_signal = pyqtSignal(str) # 主窗口设置信号
def __init__(self):
super(AddWin, self).__init__()
def initUI(self):
self.window_info() # 窗口信息
self.setWindowModality(Qt.ApplicationModal) # 设置弹窗不关闭不可操作主窗口
self.show()
def window_info(self):
"""
窗口主体
:return:
"""
self.setFixedSize(350, 400)
self.setWindowTitle('弹窗')
pyqt5:QTableWidget 设置不可编辑
setEditTriggers(QtWidgets.QAbstractItemView.NoEditTriggers)
链接输入下拉框
self.choice_box = QtWidgets.QComboBox(self)
self.choice_box.setGeometry(QtCore.QRect(670, 10, 120, 30))
self.choice_box.addItems(['1', '2', '3'])
self.choice_box.setFont(self.set_text_size(12, False))
# 下拉框信号信号
self.choice_box.currentIndexChanged[int].connect(self.print_value) # 条目发生改变,发射信号,传递条目索引
self.choice_box.highlighted[int].connect(self.print_value) # 在下拉列表中,鼠标移动到某个条目时发出信号,传递条目索引