Qt QListWidget QTreeWidget QComboBox等控件中,禁用滚动条的右键菜单

有时候在开发新控件的时候,会偶然点到滚动条的右键菜单,出现之后很难看
那么怎么去掉呢?
Qt QListWidget QTreeWidget QComboBox等控件中,禁用滚动条的右键菜单_第1张图片

其实很简单,如果是QListWidget ,QTreeWidget控件,

	//记得包含头文件
	#include 
	...
	
	//禁止滚动条右键菜单
	//QListWidget 
	ui.TreeWidget->verticalScrollBar()->setContextMenuPolicy(Qt::NoContextMenu); 

	//QTreeWidget
	ui.listWidget->verticalScrollBar()->setContextMenuPolicy(Qt::NoContextMenu); 	

	//QComboBox 
	//1 View/model 模式
	QListWidget *m_pListWidgetAccount = new QListWidget(this);
	m_pListWidgetAccount->verticalScrollBar()->setContextMenuPolicy(Qt::NoContextMenu); 
	
	ui.comboBox->setModel(m_pListWidgetAccount->model());
	ui.comboBox->setView(m_pListWidgetAccount);
	
	//2  普通模式
	ui.comboBox->view()->verticalScrollBar()->setContextMenuPolicy(Qt::NoContextMenu); 

其中 QComboBox 的普通模式,我纠结了好久,没有实现。想着去禁用掉comboBox的整个右键点击,也无法生效到下拉菜单,原来下拉菜单就是一个 QListWidget ,就是QComboBox 的 view。明白这个之后就很简单了。

你可能感兴趣的:(QT,问题记录)