在Qt的开发过程中,时常会用到表单(QTableWidget)这个控件,网上的资料不少,但是都是最基本的,有一些比较经常遇到的问题也说得不太清楚。所以,今天就在这里总结一下!
table_widget->setHorizontalHeaderLabels(header);
//设置表头字体加粗
QFont font = this->horizontalHeader()->font(); font.setBold(true); table_widget->horizontalHeader()->setFont(font);
table_widget->horizontalHeader()->setStretchLastSection(true); //设置充满表宽度 table_widget->verticalHeader()->setResizeMode(QHeaderView::ResizeToContents); table_widget->verticalHeader()->setDefaultSectionSize(10); //设置行距 table_widget->setFrameShape(QFrame::NoFrame); //设置无边框 table_widget->setShowGrid(false); //设置不显示格子线 table_widget->verticalHeader()->setVisible(false); //设置垂直头不可见 table_widget->setSelectionMode(QAbstractItemView::ExtendedSelection); //可多选(Ctrl、Shift、 Ctrl+A都可以) table_widget->setSelectionBehavior(QAbstractItemView::SelectRows); //设置选择行为时每次选择一行 table_widget->setEditTriggers(QAbstractItemView::NoEditTriggers); //设置不可编辑 table_widget->horizontalHeader()->resizeSection(0,150); //设置表头第一列的宽度为150 table_widget->horizontalHeader()->setFixedHeight(25); //设置表头的高度
table_widget->setStyleSheet("selection-background-color:lightblue;"); //设置选中背景色
table_widget->horizontalHeader()->setStyleSheet("QHeaderView::section{background:skyblue;}"); //设置表头背景色
//设置水平、垂直滚动条样式
table_widget->horizontalScrollBar()->setStyleSheet("QScrollBar{background:transparent; height:10px;}" "QScrollBar::handle{background:lightgray; border:2px solid transparent; border-radius:5px;}" "QScrollBar::handle:hover{background:gray;}" "QScrollBar::sub-line{background:transparent;}" "QScrollBar::add-line{background:transparent;}");
table_widget->verticalScrollBar()->setStyleSheet("QScrollBar{background:transparent; width: 10px;}" "QScrollBar::handle{background:lightgray; border:2px solid transparent; border-radius:5px;}" "QScrollBar::handle:hover{background:gray;}" "QScrollBar::sub-line{background:transparent;}" "QScrollBar::add-line{background:transparent;}");
好了,样式设置完成,效果如下所示:
问题一: 鼠标点击的选项会出现虚框,在Qt官网找到一篇博客专门介绍的,直接上代码!
(1)实现如下一个类
#include "no_focus_delegate.h"
void NoFocusDelegate::paint(QPainter* painter, const QStyleOptionViewItem & option, const QModelIndex &index) const { QStyleOptionViewItem itemOption(option); if (itemOption.state & QStyle::State_HasFocus) { itemOption.state = itemOption.state ^ QStyle::State_HasFocus; }
QStyledItemDelegate::paint(painter, itemOption, index); }
(2)表格构造中添加如下代码
table_widget->setItemDelegate(new NoFocusDelegate());
OK,虚线边框去除
问题二: 当表格只有一行的时候,则表头会出现塌陷问题
摸索了很长时间,才得以解决:
//点击表时不对表头行光亮(获取焦点) table_widget->horizontalHeader()->setHighlightSections(false);
二、操作表单(添加、删除行等)
(1)动态插入行
int row_count = table_widget->rowCount(); //获取表单行数 table_widget->insertRow(row_count); //插入新行
QTableWidgetItem *item = new QTableWidgetItem(); QTableWidgetItem *item1 = new QTableWidgetItem(); QTableWidgetItem *item2 = new QTableWidgetItem(); QTableWidgetItem *item3 = new QTableWidgetItem();
//设置对应的图标、文件名称、最后更新时间、对应的类型、文件大小 item->setIcon(icon); //icon为调用系统的图标,以后缀来区分 item->setText(name); item1->setText(last_modify_time); item2->setText(type); //type为调用系统的类型,以后缀来区分
item3->setText(size);
table_widget->setItem(row_count, 0, item); table_widget->setItem(row_count, 1, item1); table_widget->setItem(row_count, 2, item2); table_widget->setItem(row_count, 3, item3);
//设置样式为灰色 QColor color("gray"); item1->setTextColor(color); item2->setTextColor(color); item3->setTextColor(color);
(2)在指定位置插入行
其实跟(1)相似,(1)的前提是获取到表格行数
table_widget->insertRow(row); //插入新行 row为插入的位置
三、单击表头触发的事件
(1)连接表头的信号和槽
connect(horizontalHeader(), SIGNAL(sectionClicked(int)), this, SLOT(onHeaderClicked(int)));
(2)实现槽函数
void TableWidget::onHeaderClicked(int column) { //column为所点击的表头的某列 }
四、打开某行进行编辑
既然模拟Window那么就模仿的像一点,Windows可以修改名称,那么Qt也必然可以实现
//获得当前节点并获取编辑名称 QTableWidgetItem *item = table_widget->item(edit_row, 0); //edit_row为想要编辑的行号 table_widget->setCurrentCell(edit_row, 0); table_widget->openPersistentEditor(item); //打开编辑项 table_widget->editItem(item);
//关闭编辑项
table_widget->closePersistentEditor(item);
OK,重命名完成,!
五、右键菜单
(1)创建菜单、菜单项
void TableWidget::createActions() { //创建菜单项 pop_menu = new QMenu(); action_name = new QAction(this); action_size = new QAction(this); action_type = new QAction(this); action_date = new QAction(this);
action_open = new QAction(this); action_download = new QAction(this); action_flush = new QAction(this);
action_delete = new QAction(this); action_rename = new QAction(this); action_create_folder = new QAction(this);
action_open->setText(QString("打开"));
action_download->setText(QString("下载"));
action_flush->setText(QString("刷新"));
action_delete->setText(QString("删除"));
action_rename->setText(QString("重命名"));
action_create_folder->setText(QString("新建文件夹"));
action_name->setText(QString("名称")); action_size->setText(QString("大小")); action_type->setText(QString("项目类型")); action_date->setText(QString("修改日期"));
//设置快捷键
action_flush->setShortcut(QKeySequence::Refresh);
//设置文件夹图标 action_create_folder->setIcon(icon);
QObject::connect(action_create_folder, SIGNAL(triggered()), this, SLOT(createFolder())); }
(2)重新实现contextMenuEvent
void TableWidget::contextMenuEvent(QContextMenuEvent *event) { pop_menu->clear(); //清除原有菜单 QPoint point = event->pos(); //得到窗口坐标
QTableWidgetItem *item = this->itemAt(point);
if(item != NULL)
{
pop_menu->addAction(action_download); pop_menu->addAction(action_flush); pop_menu->addSeparator(); pop_menu->addAction(action_delete); pop_menu->addAction(action_rename); pop_menu->addSeparator(); pop_menu->addAction(action_create_folder);
sort_style = pop_menu->addMenu("排序"); sort_style->addAction(action_name); sort_style->addAction(action_size); sort_style->addAction(action_type); sort_style->addAction(action_date);
//菜单出现的位置为当前鼠标的位置 pop_menu->exec(QCursor::pos()); event->accept();
}
}
OK,大功告成!
六、信号
void cellActivated(int row, int column) void cellChanged(int row, int column) void cellClicked(int row, int column) void cellDoubleClicked(int row, int column) void cellEntered(int row, int column) void cellPressed(int row, int column) void itemActivated(QTableWidgetItem *item) void itemChanged(QTableWidgetItem *item) void itemClicked(QTableWidgetItem *item) void itemDoubleClicked(QTableWidgetItem *item) void itemEntered(QTableWidgetItem *item) void itemPressed(QTableWidgetItem *item) void itemSelectionChanged()
void currentItemChanged(QTableWidgetItem *current, QTableWidgetItem *previous)
void currentCellChanged(int currentRow, int currentColumn, int previousRow, int previousColumn)
到这里,还有一点遗留问题,关于界面的文件(文件夹)图标和类型怎么显示的?又怎么区别什么时候显示什么样的图标呢?如果图标和类型写死的话必不可行,因为不同后缀的文件至少也有100种以上吧!这里提示一下,可以调用系统API获取当前系统的指定文件(通过后缀区分)对应的类型以及图标。。。
这些都是在接触Qt以来总结的一些小经验,希望对大家有用!
转自:http://blog.sina.com.cn/s/blog_a6fb6cc90101dd5u.html
转载于:https://www.cnblogs.com/veins/p/3209123.html
你可能感兴趣的:(QTableWidget详解(样式、右键菜单、表头塌陷、多选等)(转))
如何选择适合项目的自动化测试工具?
蚂蚁质量
测试管理 软件测试 测试工具 自动化 安全性测试
在软件开发过程中,选择适配项目的自动化测试工具至关重要,这需要全面考量众多因素,确保工具与团队及项目的实际需求完美契合。以下将详细阐述选择自动化测试工具的关键步骤与实用建议:精准剖析项目需求明晰测试类型:不同的项目需要不同类型的测试,准确识别项目所需的测试类型是关键。例如,功能测试用于验证软件功能是否符合预期;性能测试旨在评估系统在特定条件下的响应时间、吞吐量等性能指标;API测试专注于检验应用程
OCP 认证专家零基础小白
leegong23111
oracle 数据库
对于零基础的学习者而言,OCP专家认证是完全可以攻克的目标,而且其价值不可估量。从学习的角度来看,它为你提供了一套系统且全面的数据库知识体系。Oracle数据库作为行业内的领军者,其技术的深度和广度足以让你深入了解数据库的原理、架构、设计、管理与优化等各个关键环节。学习过程虽然充满挑战,但就像攀爬一座高峰,每一步的艰辛都伴随着知识积累的喜悦,当你逐渐掌握这些核心技能时,你会发现自己已经拥有了进入I
使用Node.js实现RESTful API
chiwan3432
json 开发工具 ruby
RESTful基础概念REST(RepresentationalStateTransfer)描述了一个架构样式的网络系统,它首次出现在2000年RoyFielding的博士论文中。在REST服务中,应用程序状态和功能可以分为各种资源。资源向客户端公开,客户端可以对资源进行增删改操作。资源的例子有:应用程序对象、数据库记录、算法等等。REST通过抽象资源,提供了一个非常容易理解和使用的API,它使用
STM32单片机USART串口打印和收发数据
TENET-
STM32单片机标准库 单片机 stm32 嵌入式硬件
文章目录1.串口通信1.1串口初始化1.2库函数2.串口打印2.1Serial.c2.2Serial.h2.3main.c3.串口收发数据3.1Serial.c3.2Serial.h3.3main.c1.串口通信对于串口通信的详细解析可以看下面这篇文章STM32单片机USART串口详解-CSDN博客STM32单片机USART串口收发数据包STM32单片机USART串口收发数据包-CSDN博客USA
Typora的Github主题美化
Huazzi_
效率工具 github Typora
[!note]Typora的Github主题进行一些自己喜欢的修改,主要包括:字体、代码块、表格样式美化前:美化后:一、字体更换之前便看上了「中文网字计划」的「朱雀仿宋」字体,于是一直想更换字体,奈何自己拖延症作祟,直到今天才开始行动。关于「中文网字计划」「中文网字计划」是一个致力于优化中文字体在互联网中应用的开源项目,通过WebFont技术为开发者提供便捷、免费的中文字体解决方案。其核心特点包括
传统 HTML 表单如何支持PUT DELETE 方法提交请求
xuTao667
SpringBoot html 前端
HiddenHttpMethodFilter在Spring应用中主要用于支持HTML表单提交时使用PUT、DELETE等HTTP方法。由于标准的HTML标签只支持GET和POST方法,因此如果想使用其他HTTP方法(如PUT或DELETE),可以通过在表单中添加一个隐藏字段_method来指定想要使用的HTTP方法,并让HiddenHttpMethodFilter处理这个请求。下面是一个具体的使用
运维案例之记一次Kubernetes集群证书过期或延期操作处理实践指南
全栈工程师修炼指南
云原生落地实用指南 kubernetes 运维 docker 容器 云原生
欢迎关注「WeiyiGeek」公众号点击下方卡片即可关注我哟!设为「星标⭐」每天带你基础入门到进阶实践再到放弃学习!涉及网络安全运维、应用开发、物联网IOT、学习路径、个人感悟等知识“花开堪折直须折,莫待无花空折枝。”作者主页:[https://www.weiyigeek.top]作者博客:[https://blog.weiyigeek.top]作者答疑学习交流群:
【系列专栏】信息系统安全研发策略和方法-09
静语金科媛
银行科技笔记 银行 研发风险
信息系统安全研发策略和方法在金融行业数字化转型的浪潮中,商业银行信息系统的安全稳定运行,已然成为保障金融秩序、维护客户权益以及推动业务持续增长的核心要素。随着网络攻击手段的日益复杂多样,数据泄露、系统瘫痪等安全威胁不断加剧,商业银行唯有构建一套严谨且高效的信息系统安全研发体系,才能有效抵御各类风险,确保金融服务的稳健性与可靠性。精准定位安全需求,筑牢系统安全根基商业银行信息系统的安全研发,起始于对
期权帮|做空股指期货是否会对股指产生影响?
qiquandongkh
区块链 大数据
锦鲤三三每日分享期权知识,帮助期权新手及时有效地掌握即市趋势与新资讯!做空股指期货是否会对股指产生影响?股指的计算:股指实时数值是根据计入大盘指数的全部标的股票价格、市值等综合计算出来的。这个值反映了股票市场的整体表现,与股指期货的数值没有直接关系。股指期货的本质:股指期货是股票指数期货的简称,是一种以股票价格指数作为标的物的金融期货合约。它的数值是市场对其未来值的预期,会受到多种因素的影响,包括
从中医到代码:用Java揭开《皇帝内经》的神秘面纱
guzhoumingyue
java java
《皇帝内经》是一部古代中国医学经典,主要涵盖了中医的理论和实践,而Java编程则是一种现代的编程语言,两者在本质上属于不同的领域。不过,我们可以从几个方面来探讨它们之间的关联:1.知识体系系统性:无论是《皇帝内经》还是Java编程,都有自己的知识体系。《皇帝内经》讲述的是中医学的基本理论、诊断方法及治疗原则;而Java编程则涉及面向对象编程、数据结构、算法等基础知识。2.学习与实践实践性:学习《皇
Elasticsearch补充(3) --Linux集群安装ES
erainm
大数据学习 elasticsearch
1安装Elasticsearch1.1创建普通用户ES不能使用root用户来启动,必须使用普通用户来安装启动。这里我们创建一个普通用户以及定义一些常规目录用于存放我们的数据文件以及安装包等。创建一个es专门的用户(必须)使用root用户在三台机器执行以下命令useradderainmpasswderainm注:这里我创建的是我的用户,第二个passwd用户名后会设置自己的密码1.2为普通用户era
java基本常识
Forworder
java 开发语言 jvm java-ee servlet
Java程序的结构由如下三个部分组成:类存在于源文件里面;方法存在于类中;语句存在于方法中。java程序编译过程JDKJREJVM三者关系JDK(JavaDevelopmentKit):Java开发工具包,提供给Java程序员使用,包含了JRE,同时还包含了编译器javac与自带的调试工具Jconsole、jstack等。JRE(JavaRuntimeEnvironment):Java运行时环境,
30 分钟从零开始入门 CSS
ngioig
HTML CSS JS 三件套 tensorflow 人工智能 python css 前端 开发语言
前言最近也是在复习,把之前没写的博客补起来,之前给大家介绍了html,现在是CSS咯。30分钟从零开始入门拿下HTML_html教程-CSDN博客一、CSS简介:给网页“化妆”的神器CSS(层叠样式表)就像“化妆“,能让HTML页面瞬间焕然一新。功能:控制网页元素的位置、颜色、字体等样式,实现“样式与结构分离”。效果对比:CSS前→CSS修饰后二、CSS基础语法:精准定位,精细操作口诀:选谁?干啥
区块链开发:DAPP、NFT、DAO、公链与钱包软件
电报号dapp119
区块链开发 区块链 智能合约 人工智能
在当今数字化时代,区块链技术以其去中心化、透明性、不可篡改等特性,正逐渐重塑各个行业的发展模式。其中,DAPP(去中心化应用)、NFT(非同质化代币)、DAO(去中心化自治组织)、公链以及钱包软件的开发成为了区块链领域的核心焦点,为未来的数字经济带来了前所未有的机遇与挑战。一、DAPP:去中心化应用的崛起DAPP是基于区块链技术开发的去中心化应用程序,与传统的中心化应用相比,具有显著的优势。首先,
区块链软件系统开发:从设计到实现的全面指南
电报号dapp119
区块链开发 区块链 去中心化 智能合约
区块链技术自从比特币诞生以来,迅速成为了改变金融、供应链、医疗、政府等多个领域的核心技术。作为去中心化、不可篡改、透明可信的分布式账本技术,区块链不仅为加密货币提供了基础,还推动了许多创新应用的发展。然而,开发一个区块链软件系统并非易事。它涉及的技术难题、架构设计、以及安全和性能优化等方面的挑战都需要开发者深入理解和实践。本文将详细阐述区块链软件系统开发的过程,包括从需求分析到系统设计,再到开发与
运维工程师的日常巡检内容
AustinCien
linux
服务器健康状态:检查服务器的硬件、操作系统和服务的运行状态,确保服务器正常工作并且没有异常。网络设备状态:检查网络交换机、路由器、防火墙等网络设备的连通性和运行状态,确保网络设备正常工作。存储设备空间:检查存储设备(如磁盘阵列、NAS等)的可用空间和使用率,及时处理存储空间不足的情况。数据库状态:检查数据库服务器的运行状态、连接数和查询性能,并进行必要的优化和维护。应用程序状态:检查应用程序服务器
k8s服务健康检查不通过一直重启
AustinCien
kubernetes 容器 云原生
健康检查不通过说明在默认的15分钟内平台没有拿到所有实例的健康页面先看报错提示,再看日志是否有程序类报错、数据库、中间件连接等的错误信息。如果无提示就从下面可能性找原因:原因一:由于应用的资源配额过低,导致应用启动慢,使启动时间超出健康检查时间解决:检查应用的CPU配额和内存配额,适当调大额度原因二:由于健康检查时间设置过短,使健康检查时间低于应用启动时间解决:检查健康检查的不健康阈值,适当调大阈
软件架构设计思维
AlbenXie
大数据 架构 系统架构
软件架构设计需要具备以下几种思维:一、全局思维理解业务全貌:在进行软件架构设计时,要深入了解软件所服务的业务领域,包括业务流程、业务规则、业务目标等。只有对业务有全面的认识,才能设计出符合业务需求的软件架构。考虑系统整体:不能只关注局部功能的实现,而要从整个系统的角度出发,考虑各个模块之间的关系、交互方式以及系统的可扩展性、可维护性、性能等方面。例如,在设计一个电商系统时,要考虑商品管理、订单管理
都在这,DeepSeek完整版学习手册【清华大学1-5弹】(无套路,免费下载)
2501_90658343
学习 AIGC 人工智能 AI写作 AI编程
DeepSeek课程链接:https://pan.quark.cn/s/517afdb4419c前段时间,清华大学发布了一份AI教学课程—《DeepSeek从入门到精通》,课程以浅显易懂的方式讲解了DeepSeek的相关知识,比如提示词的应用技巧、调教AI的秘籍等,课程发布当天就在网络上迅速走红,被誉为“清华第一版”。紧接着,清华大学又推出了第二弹课程—《DeepSeek如何赋能职场应用?》。很快
解决npm/yarn等包管理工具在vscode中使用出现系统禁止运行脚本的情况
AlgorithmAce
npm 前端 node.js
一.问题描述报错提示如下:系统禁止运行脚本。二.问题出现原因该问题大概率会出现在windows新系统上,PowerShell执行策略是一项安全功能,用于控制PowerShell加载配置文件和运行脚本的条件。此功能有助于防止恶意脚本的执行,这算是新系统对于恶意脚本的一种防护措施。三.如何解决实际上报错提示中给的链接详细解释了问题及解决办法,微软官方做了解释,链接直达感兴趣可以看看。这里对解决办法做下
深度、机器学习算法
yzx991013
机器学习 算法 人工智能
机器学习典型算法SVM(支持向量机):它通过寻找一个最优超平面来对数据进行分类。在二分类问题中,能找到一个平面(低维)或超平面(高维),使不同类别的数据点尽可能远地分布在超平面两侧。在小样本、非线性数据处理上有优势,常用于文本分类、图像识别等领域。决策树:以树形结构展示决策过程,从根节点开始,依据特征值逐步向下划分,直到叶子节点得出分类或回归结果。它易于理解和解释,可处理数值型和分类型数据,但容易
关于 Python 的 import,你了解多少?
Python_魔力猿
python 开发语言
了解大厂经验拥有和大厂相匹配的技术等一、前言写过Python的猿猿肯定对import不陌生。但Python在importmodule时会执行相关的代码,你知道吗?Pythonimport还有其他的什么特性呢?通过这一篇文章,彻底掌握Pythonimport二、Pythonimport详解2.1Pythonimport介绍在Python中,import是用于导入模块和模块中定义的变量、函数、类等内容
高并发的“大BOSS”之详解:异步化、并行化
weixin_34210740
测试 数据库 java
2019独角兽企业重金招聘Python工程师标准>>>高并发的大杀器:异步化同步和异步,阻塞和非阻塞同步和异步,阻塞和非阻塞,这几个词已经是老生常谈,但是还是有很多同学分不清楚,以为同步肯定就是阻塞,异步肯定就是非阻塞,其实他们并不是一回事。同步和异步关注的是结果消息的通信机制:同步:调用方需要主动等待结果的返回。异步:不需要主动等待结果的返回,而是通过其他手段,比如状态通知,回调函数等。阻塞和非
固态硬盘选购
weixin_34301307
运维 嵌入式 测试
固态硬盘本文转载自知乎用户如何选购固态硬盘,并加以改动背景·结构·选购·注意事项背景最近二三十年以来,CPU、内存性能已经增长上百倍上千倍,而存储数据的硬盘却慢的跟狗一样,5200转使用了十多年才好不容易爬到7200转。所以PC对新一代储存ssd的需求渴望可想而知。现在的SSD市场有多火?处理器巨头Intel、AMD插手;之前一直嘴硬的老牌机械硬盘寡头西数、希捷断臂转型;传统SSD厂商,三星、英睿
西工大SSD7课程:固态硬盘技术习题解答大全
金尼玛哈
本文还有配套的精品资源,点击获取简介:SSD7是关于固态硬盘技术的高级课程,覆盖了固态存储的基础理论、工作原理、设计与优化等方面。本资源集合了西安工业大学SSD7课程的所有习题解答,内容全面、格式规范,对于希望深入了解固态硬盘技术的学生和从业者非常有帮助。解答内容涵盖固态硬盘基础、NAND闪存类型、SSD控制器功能、读写操作、缓存与接口技术、性能指标、维护与优化等关键知识点,旨在帮助学习者掌握固态
c++多个字符数组连接 -baijiahao_C语言 -- 字符串详解
Peter Tam
c++多个字符数组连接 -baijiahao
字符串是一种非常重要的数据类型,但是C语言不存在显式的字符串类型,C语言中的字符串都以字符串常量的形式出现或存储在字符数组中。同时,C语言提供了一系列库函数来对操作字符串,这些库函数都包含在头文件string.h中。一、字符串常量和字符数组1.1、什么是字符串常量C语言虽然没有字符串类型,但是C语言提是存在字符串这个概念的,也就是字符串常量:以NUL字节结尾的0个或多个字符组成的序列。字符串常量是
Python内置函数object()详解
嘻嘻爱编码
Python从入门到放弃 python 开发语言
Python中的object()函数是一个内置函数,它返回一个新的无特征对象。object是所有类的基类,它提供了所有Python类实例的基本方法。函数定义object()函数不需要任何参数,并且返回一个新的object实例。object()基本用法创建一个新的object实例obj=object()print(obj)#输出类似于:检查object实例print(isinstance(obj,o
Ollama微调
软件不硬
LLM tool AIGC
Ollama是一款开源工具,其目标是简化大语言模型在本地环境的部署和使用。它支持多种流行的开源大语言模型,如Llama2、Qwen2.5等。在上一篇文章中我们部署Ollama,并使用简单命令管理Ollama。接下来我们学习Ollama的高级应用。通过Ollama的ModeFile文件进行微调。通过ModelFile微调1、创建名为Modelfile的空白文件。2、在空白文件内写配置信息。FROMq
Python import 语句详解及应用示例
永劫
python 语句 函数 python 开发语言 numpy
作者:永劫发布时间:2023-04-25关键字:Python,import,模块导入,子模块导入,函数导入一、导言在Python编程中,import语句是用于导入模块的关键字。通过导入模块,您可以使用模块内的函数、类和变量。本文详细介绍了Python中的import语句及其用法,包括模块导入、子模块导入、模块重命名以及模块内函数的导入。文章中的示例将帮助您更好地理解和掌握Pythonimport语
当我的同事先用了通义灵码DeepSeek-R1模型……
云原生
当你发现同事的代码生成速度比你快,注释比你多,甚至还能智能问答时,别慌,他可能只是比你先用了通义灵码的DeepSeek-R1模型。近日,通义灵码上线DeepSeek-R1模型选择功能,为开发者们提供更懂中文,更擅复杂场景的AI编码助手,安装只需30秒,在IDEA插件市场搜索“通义”,认准排名第一的插件——最新2.1.0版本已支持多个模型,具备实时续写、自然语言生成、智能问答等多项能力。我们选择阿里
java线程的无限循环和退出
3213213333332132
java
最近想写一个游戏,然后碰到有关线程的问题,网上查了好多资料都没满足。
突然想起了前段时间看的有关线程的视频,于是信手拈来写了一个线程的代码片段。
希望帮助刚学java线程的童鞋
package thread;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date
tomcat 容器
BlueSkator
tomcat Web servlet
Tomcat的组成部分 1、server
A Server element represents the entire Catalina servlet container. (Singleton) 2、service
service包括多个connector以及一个engine,其职责为处理由connector获得的客户请求。
3、connector
一个connector
php递归,静态变量,匿名函数使用
dcj3sjt126com
PHP 递归函数 匿名函数 静态变量 引用传参
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Current To-Do List</title>
</head>
<body>
属性颜色字体变化
周华华
JavaScript
function changSize(className){
var diva=byId("fot")
diva.className=className;
}
</script>
<style type="text/css">
.max{
background: #900;
color:#039;
将properties内容放置到map中
g21121
properties
代码比较简单:
private static Map<Object, Object> map;
private static Properties p;
static {
//读取properties文件
InputStream is = XXX.class.getClassLoader().getResourceAsStream("xxx.properti
[简单]拼接字符串
53873039oycg
字符串
工作中遇到需要从Map里面取值拼接字符串的情况,自己写了个,不是很好,欢迎提出更优雅的写法,代码如下:
import java.util.HashMap;
import java.uti
Struts2学习
云端月影
最近开始关注struts2的新特性,从这个版本开始,Struts开始使用convention-plugin代替codebehind-plugin来实现struts的零配置。
配置文件精简了,的确是简便了开发过程,但是,我们熟悉的配置突然disappear了,真是一下很不适应。跟着潮流走吧,看看该怎样来搞定convention-plugin。
使用Convention插件,你需要将其JAR文件放
Java新手入门的30个基本概念二
aijuans
java 新手 java 入门
基本概念: 1.OOP中唯一关系的是对象的接口是什么,就像计算机的销售商她不管电源内部结构是怎样的,他只关系能否给你提供电就行了,也就是只要知道can or not而不是how and why.所有的程序是由一定的属性和行为对象组成的,不同的对象的访问通过函数调用来完成,对象间所有的交流都是通过方法调用,通过对封装对象数据,很大限度上提高复用率。 2.OOP中最重要的思想是类,类是模板是蓝图,
jedis 简单使用
antlove
java redis cache command jedis
jedis.RedisOperationCollection.java
package jedis;
import org.apache.log4j.Logger;
import redis.clients.jedis.Jedis;
import java.util.List;
import java.util.Map;
import java.util.Set;
pub
PL/SQL的函数和包体的基础
百合不是茶
PL/SQL编程函数 包体显示包的具体数据 包
由于明天举要上课,所以刚刚将代码敲了一遍PL/SQL的函数和包体的实现(单例模式过几天好好的总结下再发出来);以便明天能更好的学习PL/SQL的循环,今天太累了,所以早点睡觉,明天继续PL/SQL总有一天我会将你永远的记载在心里,,,
函数;
函数:PL/SQL中的函数相当于java中的方法;函数有返回值
定义函数的
--输入姓名找到该姓名的年薪
create or re
Mockito(二)--实例篇
bijian1013
持续集成 mockito 单元测试
学习了基本知识后,就可以实战了,Mockito的实际使用还是比较麻烦的。因为在实际使用中,最常遇到的就是需要模拟第三方类库的行为。
比如现在有一个类FTPFileTransfer,实现了向FTP传输文件的功能。这个类中使用了a
精通Oracle10编程SQL(7)编写控制结构
bijian1013
oracle 数据库 plsql
/*
*编写控制结构
*/
--条件分支语句
--简单条件判断
DECLARE
v_sal NUMBER(6,2);
BEGIN
select sal into v_sal from emp
where lower(ename)=lower('&name');
if v_sal<2000 then
update emp set
【Log4j二】Log4j属性文件配置详解
bit1129
log4j
如下是一个log4j.properties的配置
log4j.rootCategory=INFO, stdout , R
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appe
java集合排序笔记
白糖_
java
public class CollectionDemo implements Serializable,Comparable<CollectionDemo>{
private static final long serialVersionUID = -2958090810811192128L;
private int id;
private String nam
java导致linux负载过高的定位方法
ronin47
定位java进程ID
可以使用top或ps -ef |grep java
![图片描述][1]
根据进程ID找到最消耗资源的java pid
比如第一步找到的进程ID为5431
执行
top -p 5431 -H
![图片描述][2]
打印java栈信息
$ jstack -l 5431 > 5431.log
在栈信息中定位具体问题
将消耗资源的Java PID转
给定能随机生成整数1到5的函数,写出能随机生成整数1到7的函数
bylijinnan
函数
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
public class RandNFromRand5 {
/**
题目:给定能随机生成整数1到5的函数,写出能随机生成整数1到7的函数。
解法1:
f(k) = (x0-1)*5^0+(x1-
PL/SQL Developer保存布局
Kai_Ge
近日由于项目需要,数据库从DB2迁移到ORCAL,因此数据库连接客户端选择了PL/SQL Developer。由于软件运用不熟悉,造成了很多麻烦,最主要的就是进入后,左边列表有很多选项,自己删除了一些选项卡,布局很满意了,下次进入后又恢复了以前的布局,很是苦恼。在众多PL/SQL Developer使用技巧中找到如下这段:
&n
[未来战士计划]超能查派[剧透,慎入]
comsci
计划
非常好看,超能查派,这部电影......为我们这些热爱人工智能的工程技术人员提供一些参考意见和思想........
虽然电影里面的人物形象不是非常的可爱....但是非常的贴近现实生活....
&nbs
Google Map API V2
dai_lm
google map
以后如果要开发包含google map的程序就更麻烦咯
http://www.cnblogs.com/mengdd/archive/2013/01/01/2841390.html
找到篇不错的文章,大家可以参考一下
http://blog.sina.com.cn/s/blog_c2839d410101jahv.html
1. 创建Android工程
由于v2的key需要G
java数据计算层的几种解决方法2
datamachine
java sql 集算器
2、SQL
SQL/SP/JDBC在这里属于一类,这是老牌的数据计算层,性能和灵活性是它的优势。但随着新情况的不断出现,单纯用SQL已经难以满足需求,比如: JAVA开发规模的扩大,数据量的剧增,复杂计算问题的涌现。虽然SQL得高分的指标不多,但都是权重最高的。
成熟度:5星。最成熟的。
Linux下Telnet的安装与运行
dcj3sjt126com
linux telnet
Linux下Telnet的安装与运行 linux默认是使用SSH服务的 而不安装telnet服务 如果要使用telnet 就必须先安装相应的软件包 即使安装了软件包 默认的设置telnet 服务也是不运行的 需要手工进行设置 如果是redhat9,则在第三张光盘中找到 telnet-server-0.17-25.i386.rpm
PHP中钩子函数的实现与认识
dcj3sjt126com
PHP
假如有这么一段程序:
function fun(){
fun1();
fun2();
}
首先程序执行完fun1()之后执行fun2()然后fun()结束。
但是,假如我们想对函数做一些变化。比如说,fun是一个解析函数,我们希望后期可以提供丰富的解析函数,而究竟用哪个函数解析,我们希望在配置文件中配置。这个时候就可以发挥钩子的力量了。
我们可以在fu
EOS中的WorkSpace密码修改
蕃薯耀
修改WorkSpace密码
EOS中BPS的WorkSpace密码修改
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
蕃薯耀 201
SpringMVC4零配置--SpringSecurity相关配置【SpringSecurityConfig】
hanqunfeng
SpringSecurity
SpringSecurity的配置相对来说有些复杂,如果是完整的bean配置,则需要配置大量的bean,所以xml配置时使用了命名空间来简化配置,同样,spring为我们提供了一个抽象类WebSecurityConfigurerAdapter和一个注解@EnableWebMvcSecurity,达到同样减少bean配置的目的,如下:
applicationContex
ie 9 kendo ui中ajax跨域的问题
jackyrong
AJAX跨域
这两天遇到个问题,kendo ui的datagrid,根据json去读取数据,然后前端通过kendo ui的datagrid去渲染,但很奇怪的是,在ie 10,ie 11,chrome,firefox等浏览器中,同样的程序,
浏览起来是没问题的,但把应用放到公网上的一台服务器,
却发现如下情况:
1) ie 9下,不能出现任何数据,但用IE 9浏览器浏览本机的应用,却没任何问题
不要让别人笑你不能成为程序员
lampcy
编程 程序员
在经历六个月的编程集训之后,我刚刚完成了我的第一次一对一的编码评估。但是事情并没有如我所想的那般顺利。
说实话,我感觉我的脑细胞像被轰炸过一样。
手慢慢地离开键盘,心里很压抑。不禁默默祈祷:一切都会进展顺利的,对吧?至少有些地方我的回答应该是没有遗漏的,是不是?
难道我选择编程真的是一个巨大的错误吗——我真的永远也成不了程序员吗?
我需要一点点安慰。在自我怀疑,不安全感和脆弱等等像龙卷风一
马皇后的贤德
nannan408
马皇后不怕朱元璋的坏脾气,并敢理直气壮地吹耳边风。众所周知,朱元璋不喜欢女人干政,他认为“后妃虽母仪天下,然不可使干政事”,因为“宠之太过,则骄恣犯分,上下失序”,因此还特地命人纂述《女诫》,以示警诫。但马皇后是个例外。
有一次,马皇后问朱元璋道:“如今天下老百姓安居乐业了吗?”朱元璋不高兴地回答:“这不是你应该问的。”马皇后振振有词地回敬道:“陛下是天下之父,
选择某个属性值最大的那条记录(不仅仅包含指定属性,而是想要什么属性都可以)
Rainbow702
sql group by 最大值 max 最大的那条记录
好久好久不写SQL了,技能退化严重啊!!!
直入主题:
比如我有一张表,file_info,
它有两个属性(但实际不只,我这里只是作说明用):
file_code, file_version
同一个code可能对应多个version
现在,我想针对每一个code,取得它相关的记录中,version 值 最大的那条记录,
SQL如下:
select
*
VBScript脚本语言
tntxia
VBScript
VBScript 是基于VB的脚本语言。主要用于Asp和Excel的编程。
VB家族语言简介
Visual Basic 6.0
源于BASIC语言。
由微软公司开发的包含协助开发环境的事
java中枚举类型的使用
xiao1zhao2
java enum 枚举 1.5新特性
枚举类型是j2se在1.5引入的新的类型,通过关键字enum来定义,常用来存储一些常量.
1.定义一个简单的枚举类型
public enum Sex {
MAN,
WOMAN
}
枚举类型本质是类,编译此段代码会生成.class文件.通过Sex.MAN来访问Sex中的成员,其返回值是Sex类型.
2.常用方法
静态的values()方