ListView禁止点击与代码中取消分隔符

本文介绍了BaseAdapter中的两个关键方法areAllItemsEnabled与isEnabled,并通过具体实例展示了如何重写这两个方法来实现去除列表分隔符及设置特定项不可点击的功能。

一、先了解BaseAdapter两个方法


转载请注明出处:http://blog.youkuaiyun.com/u014720313/article/details/52945216


1.此方法返回true有分隔符,否则没有分隔符

		@Override
		public boolean areAllItemsEnabled() {
			// TODO Auto-generated method stub
			return true;
		}

2.此方法返回true可以点击,否则不可以点击 

		public boolean isEnabled(int position) {
			// TODO Auto-generated method stub
			return true;

		}


二、实例BaseAdapter重写两个方法

功能:去除分隔符

    position为0是不能点击

		/**
		 * 去除分隔符
		 */
		@Override
		public boolean areAllItemsEnabled() {
			// TODO Auto-generated method stub
			return true;
		}

		/**
		 * 当position为0时不能点击
		 */
		@Override
		public boolean isEnabled(int position) {
			// TODO Auto-generated method stub
			if (position == 0) {
				return true;
			} else {
				return false;
			}

		}

def OpenFileDialog(self): # 创建QFileDialog,设置初始标题、默认打开路径等信息 default_dir = self.get_prev_path() self.select_shots_dialog = QFileDialog(self, u'Open...', default_dir, '') # 设置为只能选择目录(文件夹) self.select_shots_dialog.setFileMode(QFileDialog.Directory) self.select_shots_dialog.setOption(QFileDialog.DontUseNativeDialog, True) # 设置对话框不使用本地样式 self.select_shots_dialog.setOption(QFileDialog.ShowDirsOnly, True) # 这里再次强调只显示目录,虽然前面设置了选择模式为目录,但这样更明确 # 设置默认文件名,可以根据你的需求修改这里的默认文件名 self.default_file_name = "untitle.mov" current_file_path = cmds.file(q=True, sceneName=True) #if current_file_path != "": # self.default_file_name = (current_file_path.split("/")[-1]).split(".")[0] + ".mov" if current_file_path != "": if self.rename_id == 1: self.default_file_name = (current_file_path.split("/")[-1]).split(".")[0] + ".mov" elif self.rename_id == 2: self.default_file_name = rename_by_shotPath(current_file_path) + ".mov" # self.select_shots_dialog.selectFile(self.default_file_name) file_view = self.select_shots_dialog.findChild(QListView, 'listView') if file_view: file_view.setSelectionMode(QAbstractItemView.SingleSelection) f_tree_view = self.select_shots_dialog.findChild(QTreeView) if f_tree_view: f_tree_view.setSelectionMode(QAbstractItemView.SingleSelection) if self.select_shots_dialog.exec_() == QDialog.Accepted: selected_folder = self.select_shots_dialog.selectedFiles()[0] self.set_prev_path(selected_folder) # final_path = selected_folder + "/" + self.default_file_name if selected_folder.endswith("/") \ # else selected_folder + "/" + self.default_file_name final_path = selected_folder + "/" + self.default_file_name print(final_path) return final_path else: return "",从 file_view = self.select_shots_dialog.findChild(QListView, 'listView')开始逐行分析
最新发布
11-06
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值