恋恋风辰的个人博客


  • Home

  • Archives

  • Categories

  • Tags

  • Search

Qt MVC结构之QItemDelegate介绍

Posted on 2022-12-21 | In Qt

QItemDelegate

当我们想重新实现一个代理时,可以子类化QItemDelegate。实现item编辑时特定的效果,比如在item编辑时我们设置一个QSpinBox返回。
创建一个QApplication项目,然后我们新增一个类,类名叫做spinboxdelegate。

Read more »

Qt MVC结构之QItemSelectionModel模型介绍

Posted on 2022-12-20 | In Qt

QItemSelectionModel

Qt的MVC结构支持多个View共享同一个model,包括该model的选中状态等。我们可以通过设置QItemSelectionModel,来更改View的选中效果和显示效果。我们创建一个Qt Application项目,在MainWindow的头文件中添加一个QTbaleView*类型的成员 _table_view。然后在构造函数中为这个_table_view设置model

Read more »

Qt MVC结构之Model模型介绍

Posted on 2022-12-06 | In Qt

MVC简介

MVC 就是Model-View-Control模式的简称,包括模型层(Model), 视图层(View), 控制层(Controller).
Model主要负责管理数据,View主要用来显示数据,Controller主要用来操作数据,控制View联动。
Qt也采用了这个模式,模型层用Model,视图层用View,控制层改名叫了代理Delegate。

QFileSystemModel

我们可以举个简单的例子,用QFileSystemModel来实现文件夹内容的展示,QFileSystemModel是Qt给我们提供的处理本地文件系统的文件和目录。

Read more »

Qt 定时器事件

Posted on 2022-12-04 | In Qt

定时器

Qt中提供了两种方式实现定时器,第一种是通过startTimer的方式启动定时器,该函数返回定时器的id,然后我们需要为实现定时器的类重写timerEvent。我们先介绍这一种,创建Qt Application项目,项目默认的类名为Widget,继承自QWidget。

Read more »

Qt 鼠标事件

Posted on 2022-11-30 | In Qt

鼠标事件

鼠标事件包括鼠标左键点击,右键点击,双击,滚动滚轮等。我们先创建一个QApplication项目,类名字为Widget,基类选择QWidget。在widget.ui里添加一个QTextEdit, 依次实现这些功能。

Read more »

Qt 按键事件

Posted on 2022-11-29 | In Qt

按键事件

按键事件是Qt提供的特有的事件体系,其头文件为QKeyEvent,这一篇我们通过一个demo演示按键事件,首先我们创建一个QApplication项目,创建类名为Widget,继承自QWidget,然后在ui里添加一个button。重写Widget的keyPressEvent函数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
void Widget::keyPressEvent(QKeyEvent *event){
//判断是ctrl+M
if(event->modifiers() == Qt::ControlModifier){
if(event->key() == Qt::Key_M && windowState() != Qt::WindowFullScreen){
setWindowState(Qt::WindowFullScreen);
return;
}
return;
}

//如果按下的是ESC
if(event->key() == Qt::Key_Escape && windowState() == Qt::WindowFullScreen){
setWindowState(Qt::WindowNoState);
return;
}
}
Read more »

QT 事件系统

Posted on 2022-11-28 | In Qt

事件系统

Qt事件系统是非常重要事件传递机制,所有消息传递流程都离不开这个机制,这里主要从重写类的事件响应函数,事件过滤器以及重写event函数三种方式做介绍。

重写事件函数

这种方式最为直接,我们先创建项目,选择QApplication应用,类名选择Widget,基类选择QWidget
接下来在项目中添加一个C++类命名为MyEdit项目生成后,我们为MyEdit类添加声明和实现

Read more »

QT 拖拽事件

Posted on 2022-11-28 | In Qt

简介

拖拽事件是我们在设计软件时常用的事件,比如我们把要上传的文件拖拽到指定区域实现自动上传,或者拖动到指定文件夹等。
这里主要介绍如何实现拖动事件,包括事件的进入dragEnterEvent, 事件的放弃dropEvent等。我们要实现一个拖动demo,
将文件拖动到主窗口区域,然后在主窗口的textEdit控件中显示文件的内容。

主窗口构造

创建项目名字为dragevent,然后选择创建QApplication项目,我们的类名叫做MainWindow,基类选择QMainWindow。
我们需要在主窗口的ui文件中添加QTextEdit控件,点击Forms下的mainwindow.ui,将QTextEdit拖动到主窗口界面上。

Read more »

MarkDown在线编辑器

Posted on 2022-11-10 | In 问题汇总

项目简介

要求实现一个在线markdown编辑器,支持markdown文件的在线编辑,修改,重新加载,转化为html格式等。

Pandao MarkDown编辑器

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

Read more »

python创建虚拟环境

Posted on 2022-10-13 | In 问题汇总

简介

实际开发中,我们为了防止python安装的包污染用户环境,比如你是root用户,利用pip安装后的包会放在root的python安装录中,很可能会影响root用户的其他操作。我们用root用户使用pip安装软件包后,linux环境会报警告”Running pip as the ‘root’ user can result in broken permissions and conflicting behaviour”. 解决的方法很简答,安装虚拟环境即可。

安装虚拟环境

  1. 更新pip工具
    1
    2
    3
    python3 -m pip install --user --upgrade pip

    python3 -m pip --version
    Read more »
<1…131415…37>

370 posts
17 categories
21 tags
RSS
GitHub ZhiHu
© 2025 恋恋风辰 本站总访问量次 | 本站访客数人
Powered by Hexo
|
Theme — NexT.Muse v5.1.3