QItemDelegate
当我们想重新实现一个代理时,可以子类化QItemDelegate。实现item编辑时特定的效果,比如在item编辑时我们设置一个QSpinBox返回。
创建一个QApplication项目,然后我们新增一个类,类名叫做spinboxdelegate。
按键事件是Qt提供的特有的事件体系,其头文件为QKeyEvent,这一篇我们通过一个demo演示按键事件,首先我们创建一个QApplication项目,创建类名为Widget,继承自QWidget,然后在ui里添加一个button。重写Widget的keyPressEvent函数
1 | void Widget::keyPressEvent(QKeyEvent *event){ |
拖拽事件是我们在设计软件时常用的事件,比如我们把要上传的文件拖拽到指定区域实现自动上传,或者拖动到指定文件夹等。
这里主要介绍如何实现拖动事件,包括事件的进入dragEnterEvent, 事件的放弃dropEvent等。我们要实现一个拖动demo,
将文件拖动到主窗口区域,然后在主窗口的textEdit控件中显示文件的内容。
创建项目名字为dragevent,然后选择创建QApplication项目,我们的类名叫做MainWindow,基类选择QMainWindow。
我们需要在主窗口的ui文件中添加QTextEdit控件,点击Forms下的mainwindow.ui,将QTextEdit拖动到主窗口界面上。
要求实现一个在线markdown编辑器,支持markdown文件的在线编辑,修改,重新加载,转化为html格式等。
Pandao MarkDown是基于BootStrap和jquery实现的MarkDown编辑器,已经支持MarkDown在线编辑功能,我们要做的是做一个demo把Pando MarkDown的功能调用起来,形成一整套的发布,编辑,修改等流程。
Pandao MarkDown 的官网https://pandao.github.io/editor.md/
Pandao MarkDown 的项目地址https://github.com/pandao/editor.md
实际开发中,我们为了防止python安装的包污染用户环境,比如你是root用户,利用pip安装后的包会放在root的python安装录中,很可能会影响root用户的其他操作。我们用root用户使用pip安装软件包后,linux环境会报警告”Running pip as the ‘root’ user can result in broken permissions and conflicting behaviour”. 解决的方法很简答,安装虚拟环境即可。
1 | python3 -m pip install --user --upgrade pip |