Is this you? As a journalist, you can create a free Muck Rack account to customize your profile, list your contact preferences, and upload a portfolio of your best work.
Claim your profile
Articles by setCentral Widget
OpenCV + Qt 图像加载失败?警惕工作目录的陷阱!
OpenCV + Qt 图像加载失败?警惕工作目录的陷阱! 关键词:opencv-4.11.0、Qt、文件路径、工作目录、图像加载 在安装好opencv后,测试遇到如下情况 [ WARN:0@0.056] global loadsave.cpp:268 findDecoder imread_(‘wwudi.jpg’): can’t open/read file: check file path/integrity OpenCV: terminate handler is called! The last OpenCV error is: OpenCV(4.11.0) Error: Assertion failed (size.width>0 && size.height>0) in imshow, file G:\opencv\opencv\sources\modules\highgui\src\window.cpp, line 973 Mat image=imread(“E:\Fighting.jpg”,1); Mat...
[Qt] VII. Multi-threads Signals and Slots
"Multitasking is a part of my everyday life." Monica Denise Brown I could feel your brain's absolute pain of binge-eating those information last article.
[Qt] V. Widgets: QPushButton and Buttons
"Push me, push me, push me hard" Some random Japanese anime Someone who strikes for excellence in a field that he loves So far, you've gotten something called labels (as in the form of QLabel), and you eagerly want them to obey to your instruction and interact with the user of your tiny, little GUI: You clicked the mouse (or tapped the track-pad, whatever) like a lunatic; "Quit! - The window, now," you demanded.
[Qt] III. Hello, World!
So you have been forced to sit in front of your computer, looking at the screen for one hour or two, to install the behemoth Qt. Then, you really wanted to try out the best IDE in the universe - Qt Creator, but you were intimidated by the (slightly?) overly posh user interface: You did not know what to do. That's normal, as it is the first time that you got to know Qt. Let me introduce how to create your first Qt application.
layout
#include <QApplication> #include <QMainWindow> #include <QListView> #include <QStandardItemModel> #include <QVBoxLayout> #include <QLabel> #include <QTransform> #include <QPainter> class VerticalLabel : public QLabel { public: VerticalLabel(const QString &text, QWidget *parent = nullptr) : QLabel(text, parent) { setAlignment(Qt::AlignCenter); } protected: void paintEvent(QPaintEvent *event) override { QPainter painter(this); QTransform transform; transform.rotate(-90); // 旋转90度...
tabview signal
#include <QApplication> #include <QMainWindow> #include <QTableView> #include <QStandardItemModel> #include <QDebug> #include <QHeaderView> #include <QPushButton> #include <QVBoxLayout> #include <QAction> #include <QMenuBar> #include <QToolBar> class MyTableView : public QTableView { Q_OBJECT public: MyTableView(QWidget *parent = nullptr) : QTableView(parent) { // 创建模型并设置数据 model = new QStandardItemModel(5, 3, this); // 5 行 3 列 for (int row = 0; row < 5; ++row) { for (int col = 0; col < 3;...
treeview
#include <QApplication> #include <QMainWindow> #include <QTreeView> #include <QStandardItemModel> #include <QDebug> #include <QHeaderView> #include <QPushButton> #include <QVBoxLayout> #include <QToolBar> #include <QMenuBar> #include <QAction> class MyTreeView : public QTreeView { Q_OBJECT public: MyTreeView(QWidget *parent = nullptr) : QTreeView(parent) { // 创建模型并设置数据 model = new QStandardItemModel(5, 3, this); // 5 行 3 列 setModel(model); // 填充数据 for (int row = 0; row < 5; ++row) { for (int...
current index
#include <QApplication> #include <QComboBox> #include <QMainWindow> #include <QVBoxLayout> #include <QPushButton> #include <QMessageBox> class MainWindow : public QMainWindow { Q_OBJECT public: MainWindow(QWidget *parent = nullptr); private slots: void showCurrentIndex(); private: QComboBox *comboBox; }; MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) { QWidget *centralWidget = new QWidget(this); QVBoxLayout *layout = new QVBoxLayout(centralWidget); comboBox = new...
expandall collapseall
#include <QApplication> #include <QMainWindow> #include <QTreeView> #include <QStandardItemModel> #include <QDebug> #include <QPushButton> #include <QVBoxLayout> #include <QToolBar> #include <QMenuBar> #include <QAction> class MyTreeView : public QTreeView { Q_OBJECT public: MyTreeView(QWidget *parent = nullptr) : QTreeView(parent) { // 创建树形数据模型 model = new QStandardItemModel(this); setModel(model); // 填充数据 QStandardItem *rootItem = model->invisibleRootItem(); // 根节点 for (int row = 0; row <...
【QT开发】错误消息对话框QErrorMessage类详解及实战应用-CSDN博客
QErrorMessage 是 Qt 提供的一个功能强大且易用的错误消息对话框类,通过本篇文章的学习,你应该对 QErrorMessage 有了全面的理解,能够在自己的项目中正确使用它。QErrorMessage 在用户界面中帮助你更好地展示和管理错误消息,实现非模态和去重的错误提示,有助于创建用户友好和高效的应用程序错误消息提示系统。 🧑 博主简介:现任阿里巴巴嵌入式技术专家,15年工作经验,深耕嵌入式+人工智能领域,精通嵌入式领域开发、技术管理、简历招聘面试。CSDN优质创作者,提供产品测评、学习辅导、简历面试辅导、毕设辅导、项目开发、C/C++/Java/Python/Linux/AI等方面的服务,如有需要请站内私信或者联系任意文章底部的的VX名片(ID:gylzbk) 💬 博主粉丝群介绍:① 群内初中生、高中生、本科生、研究生、博士生遍布,可互相学习,交流困惑。② 热榜top10的常客也在群里,也有数不清的万粉大佬,可以交流写作技巧,上榜经验,涨粉秘籍。③ 群内也有职场精英,大厂大佬,可交流技术、面试、找工作的经验。④...
【Qt】浅析QAction的事件触发机制 - triggered和toggled
QAction 我们可以把对按钮的一次点击、对下拉菜单的一次选择抽象理解成对QAction的一次操作。使用QAction时,我们不需要关心绘制出来的UI是button还是menu还是啥。 它有一个我很喜欢的功能。就是,QAction能够配合QActionGroup使用,类似于元素与集合的关系,用来实现互斥选择的效果。就像这样: 开发中,我会偷懒把QAction对象命名为act。下文的示例代码也如此。 我是真不会翻译这俩。但我可以类比。 大家可以把QAction想象成一把枪。 你点一次按钮,就是扣动一下扳机,就是trigger()一下,接着自动触发信号triggered。 如果这是一把高科技赛博枪,你只需要扣动一次,它就可以一直打击,你再扣动一次,它就停止打击。那么,扣第一次触发信号toggled(true),扣第二次触发信号toggled(false)。 细心的你可能会留意到,信号triggered的定义是这样的: 它有一个bool类型的参数。但无论我们怎么点,参数checked一直是false(最后打印0)。 QToolButton* btn1 = new...
QT C++实践|超详细数据库的连接和增删改查操作|附源码
0:前言 🪧 什么情况需要数据库?
【Qt开源库】之Advanced-Docking-System使用_FreeLikeTheWind的技术博客_51CTO博客
1.前言 顶层浮动窗口在很多软件中都有应用,比如ps。 使用浮动窗口灵活、方便、操作性较强、每个从主窗体拖拽出的窗体都可以看做一个单独的窗体,可分屏操作。 Qt也有自带的顶层浮动窗口,如QDockWidget,可设置窗口特性、窗口浮动等。 使用如下: QTextBrowser* pTB = new QTextBrowser(this); QDockWidget* pDW_navigation = new QDockWidget("导航区"); pDW_navigation->setAllowedAreas(Qt::LeftDockWidgetArea); QDockWidget* pDW_attri = new QDockWidget("属性区"); QDockWidget* pDW_hint = new QDockWidget("消息区"); addDockWidget(Qt::LeftDockWidgetArea, pDW_navigation); addDockWidget(Qt::LeftDockWidgetArea, pDW_attri);...
QT基础 QChart绘制折线-CSDN博客
目录 1.简单折线 //![1] //! 折现段坐标 QLineSeries *series = new QLineSeries(); //![1] //![2] //! 添加点 series->append(0, 6); series->append(2, 4); series->append(3, 8); series->append(7, 4); series->append(10, 5); *series << QPointF(11, 1) << QPointF(13, 3) << QPointF(17, 6) << QPointF(18, 3) << QPointF(20, 2); //![2] //![3] QChart *chart = new QChart(); chart->legend()->hide(); chart->addSeries(series); //根据已添加到图表中的系列为图表创建轴。以前添加到图表中的任何轴都将被删除 chart->createDefaultAxes(); chart->setTitle("Simple line chart...
QT记事本+登陆界面的简单实现_他人恐惧我贪婪的博客-CSDN博客
#ifndef JSB_H #define JSB_H #include <QMainWindow> #include <QMenuBar> #include <QToolBar> #include <QStatusBar> #include <QTextEdit> #include <QLabel> #include <QDebug> #include <QDateTime> #include <QDesktopServices> #include <QUrl> #include "ipv.h" #include <QFileDialog> #include <QColorDialog> #include <QFontDialog> #include <QTextStream> #include <QMessageBox> #include <QCloseEvent> #include <QDebug> class JSB : public QMainWindow { Q_OBJECT public: JSB(QWidget *parent = nullptr);...
ArcGis地图_pzs0221的博客-CSDN博客
官网:https://developers.arcgis.com/qt/ 官网:官网指导 官网:Add graphics to a map view Arcgis runtime sdk for Qt 开发记录(系列文章) m_mapView = new MapGraphicsView(this); m_map = new Map(Basemap::lightGrayCanvas(this), this); m_mapView->setMap(m_map); pMainLayout->addWidget(m_mapView); setCentralWidget(pMainWidget); m_mapView->setAttributionTextVisible(false); m_mapView = new MapGraphicsView(this); TileCache *titlecahe=new TileCache(("C:/Users/dujia/Desktop/aaa.tpk"),this); ArcGISTiledLayer *titleLayer=new...
QT基础教程之五对话框QDialog_步、步、为营的博客-CSDN博客
基本概念 对话框是 GUI 程序中不可或缺的组成部分。很多不能或者不适合放入主窗口的功能组件都必须放在对话框中设置。对话框通常会是一个顶层窗口,出现在程序最上层,用于实现短期任务或者简洁的用户交互。 Qt 中使用QDialog类实现对话框。就像主窗口一样,我们通常会设计一个类继承QDialog。QDialog(及其子类,以及所有Qt::Dialog类型的类)的对于其 parent 指针都有额外的解释:如果 parent 为 NULL,则该对话框会作为一个顶层窗口,否则则作为其父组件的子对话框(此时,其默认出现的位置是 parent 的中心)。顶层窗口与非顶层窗口的区别在于,顶层窗口在任务栏会有自己的位置,而非顶层窗口则会共享其父组件的位置。 对话框分为模态对话框和非模态对话框。 模态对话框,就是会阻塞同一应用程序中其它窗口的输入。 模态对话框很常见,比如“打开文件”功能。你可以尝试一下记事本的打开文件,当打开文件对话框出现时,我们是不能对除此对话框之外的窗口部分进行操作的。 与此相反的是非模态对话框,例如查找对话框,我们可以在显示着查找对话框的同时,继续对记事本的内容进行编辑。...
QT基础教程之四QMainWindow_专注于.NET领域的技术博客_51CTO博客
QT基础教程之四QMainWindow QMainWindow是一个为用户提供主窗口程序的类,包含一个菜单栏(menu bar)、多个工具栏(tool bars)、多个锚接部件(dock widgets)、一个状态栏(status bar)及一个中心部件(central widget),是许多应用程序的基础,如文本编辑器,图片编辑器等。 一个主窗口最多只有一个菜单栏。位于主窗口顶部、主窗口标题栏下面。 创建菜单栏,通过QMainWindow类的menubar()函数获取主窗口菜单栏指针 QMenuBar * menuBar() const l创建菜单,调用QMenu的成员函数addMenu来添加菜单 QAction* addMenu(QMenu * menu) QMenu* addMenu(const QString & title) QMenu* addMenu(const QIcon & icon, const QString & title) l创建菜单项,调用QMenu的成员函数addAction来添加菜单项 QAction* activeAction() const...
Qgis二次开发-QgsMapTool地图交互工具详解_Mr.codeee的博客-CSDN博客
QgsMapTool地图工具是用于操作地图画布的用户交互式工具。例如,地图平移和缩放功能被实现为地图工具。 QgsMapTool是抽象基类,以下是类的继承关系: QgsMapToolEdit:用于编辑矢量几何图形的映射工具的基类 QgsMapToolEmitPoint:一个地图工具,当单击地图时,它只是发出一个点。 将一个槽连接到它的canvasClicked()信号将允许您为传入点实现自定义行为。 QgsMapToolExtent:地图画布上绘制矩形发出一个范围。 QgsMapToolIdentify :用于识别图层特征的映射工具。 QgsMapToolPan:用于平移地图的地图工具。 QgsMapToolZoom :用于放大/缩小地图的地图工具。 virtual void canvasDoubleClickEvent (QgsMapMouseEvent *e) 重写鼠标双击事件 virtual void canvasMoveEvent (QgsMapMouseEvent *e) 重写鼠标移动事件 virtual void canvasPressEvent...
【Qt 一个简易画板的实现(Graphics View)】
Qt专栏 Qt 一个简易画板的实现(Graphics View) Qt 学习之路(32): 一个简易画板的实现(Graphics View) 这一次将介绍如何使用 Graphics View 来实现前面所说的画板。前面说了很多有关 Graphics View的好话,但是没有具体的实例很难说究竟好在哪里。现在我们就把前面的内容使用 Graphics View 重新实现一下,大家可以对比一下看有什么区别。 同前面相似的内容就不再叙述了,我们从上次代码的基础上进行修改,以便符合我们的需要。首先来看MainWindow 的代码: #include <QGraphicsScene> #include <QGraphicsView> QGraphicsView *view = new QGraphicsView(paintWidget, this); setCentralWidget(view); #include "mainwindow.h" #include <QGraphicsScene> #include <QGraphicsView>...
Qt实现拖拽功能(支持拖放文件、拖放操作)_qlistwidget拖拽_林夕07的博客-CSDN博客
拖放是在一个应用程序内或者多个应用程序之间传递信息的一种直观的现代操作方式。除了为剪贴板提供支持外,通常它还提供数据移动和复制的功能。 拖放操作包括两个截然不同的动作:拖动和放下。Qt窗口部件可以作为拖动点(darg site)、放下点(drop site)或者同时作为拖动点和放下点。 我们经常将文本文件推拽到notepate++等类型文本编辑器软件中。那么如何让Qt程序也能够支持这种操作呢? 我们需要在主窗口重新实现了来自父类的dragEnterEvent()和 dropEvent()函数。 protected: virtual void dragEnterEvent(QDragEnterEvent* event) override; virtual void dropEvent(QDropEvent* event) override; 在构造函数中,创建了一个QTextEdit并且把它设置为中央窗口部件。默认情况下,QTextEdit可以接受来自其他应用程序文本的拖动,并且如果用户在它上面放下一个文件,它将会把这个文件的内容填充到QTextEdit部件中。...
【简单】使用ChatGPT和QT从零开始构建一个计算器应用_AI学识园的博客-CSDN博客
在这篇博文中,我将向大家展示如何使用ChatGPT和Qt来构建一个完整的计算器应用。我们将从零开始,逐步引导您完成整个项目,包括需求分析、软件设计、代码编写等环节。该项目代码全部由GPT编写,10分钟完成。 本项目旨在使用ChatGPT和Qt技术构建一个功能完备的计算器应用。用户可以执行基本的算术运算,如加、减、乘、除,并且能够在界面上直观地展示输入的数字、运算符以及计算结果。 在这个项目中,我们将使用以下技术和工具: ChatGPT:作为我们的智能辅助,提供项目开发的指导和解答。 Qt 6.2:作为GUI开发框架,用于创建计算器应用的用户界面和交互逻辑。 1. 需求分析 我们的计算器应用需要具备以下功能: 输入数字 执行加、减、乘、除等算术运算 清除输入 在界面上显示输入的数字、运算符和计算结果 2.
chatgpt基于Qt实现的To-Do List小项目(内附源码),码农将何去何从....
OpenAI前一段发布聊天机器人模型ChatGPT,迅速出圈全网。chatgpt的出现,让LLMs走进了普通人的视野。同时,也让传统的AI助手变成了原始人。chatgpt向我们展示了LLM目前的天花板。而且这个天花板还相当高。 在突发奇想下,我决定用chatgpt写一个小项目,并且让他写一篇关于该项目的文章。 该项目以及博文全部是chatgpt写的,步骤详细,简单易懂 好的,下面是一篇介绍使用 Qt 框架创建 To-Do List 应用程序的 CSDN 博客文章: 文章标题:使用 Qt 框架创建 To-Do List 应用程序 To-Do List 是一种非常常见的任务管理工具,可以帮助用户记录和追踪待办事项。在本篇博客中,我们将介绍如何使用 Qt 框架创建一个简单的 To-Do List 应用程序,该程序可以让用户添加、编辑和删除任务,并且可以将任务状态标记为已完成或未完成。 1.创建 Qt 应用程序 首先,我们需要使用 Qt Creator 创建一个新的 Qt 应用程序。打开 Qt Creator,选择 File -> New File or Project,然后选择 Qt...
QT中QThread的各个方法,UI线程关系,事件关系详解(3)_qt ui线程_luckyone906的博客-CSDN博客
回顾Qt之线程(QThread),里面讲解了如何使用线程,但还有很多人留言没有看明白,那么今天我们来一起瞅瞅关于QThread管理线程的那些事儿。。。 一、线程管理 1、线程启动 void start(Priority priority = InheritPriority) 调用后会执行run()函数,但在run()函数执行前会发射信号started(),操作系统将根据优先级参数调度线程。如果线程已经在运行,那么这个函数什么也不做。优先级参数的效果取决于操作系统的调度策略。特别是那些不支持线程优先级的系统优先级将会被忽略(例如在Linux中,更多细节请参考sched_setscheduler(2) - Linux man page)。 2、线程执行 int exec() 进入事件循环并等待直到调用exit(),返回值是通过调用exit()来获得,如果调用成功则范围0。 virtual void run();...
Cloudcompare 界面解读与界面修改
Cloudcompare功能强大,界面让人看着眼花缭乱,但是我们往往只需要部分功能,故尝试对界面进行简化和修改。 0. 读取全局配置 首先读取在上次运行过程中的一些配置,比如界面的样式等等 { QSettings settings; settings.beginGroup(ccPS::GlobalShift()); ...... 1. 启动画面 跳过一些不常用代码,直接看splash screen部分 QScopedPointer<QSplashScreen> splash(nullptr); QTimer splashTimer; ... QPixmap pixmap(QString::fromUtf8(":/CC/images/imLogoV2Qt.png")); splash.reset(new QSplashScreen(pixmap, Qt::WindowStaysOnTopHint)); splash->show(); QApplication::processEvents(); 2.
Qt常用操作函数_qt函数手册_弈枫的博客-CSDN博客
罗列自己用到的一些Qt操作函数 1、设置最小/最大窗口大小 setMinimumSize(300, 300); setMaximumSize(300, 300); 2、设置控件基于当前窗口的位置x y和控件大小 w h ui->treeWidget->setGeometry(20,20,250,250); 3、窗口类型设置枚举 QWidget * widget = new QWidget(); Qt::WindowFlags flags = Qt::Dialog; widget->setWindowFlags(flags); widget->show(); 属性值说明 Qt::Widget 0x00000000 QWidget构造函数的默认值,如果新窗口没有父窗口部件,则它是一个独立窗口,否则就是一个子窗口部件 Qt::Window 0x00000001 无论是否有父窗口部件,新窗口都是一个窗口,有边框有标题栏 Qt::Dialog 0x00000002丨Window 新窗口部件是一个对话框,是QDialog构造函数的默认值 Qt::Sheet 0x00000004丨Windo...
对话框QDialog_qdialog设置标题_風清掦的博客-CSDN博客
对话框是 GUI 程序中不可或缺的组成部分。很多不能或者不适合放入主窗口的功能组件都必须放在对话框中设置。对话框通常会是一个顶层窗口,出现在程序最上层,用于实现短期任务或者简洁的用户交互。 Qt 中使用QDialog类实现对话框。就像主窗口一样,通常会设计一个类继承QDialog。QDialog(及其子类,以及所有Qt::Dialog类型的类)对于其 parent 指针都有额外的解释:如果 parent 为 NULL,则该对话框会作为一个顶层窗口,否则则作为其父组件的子对话框(此时,其默认出现的位置是 parent 的中心)。 顶层窗口与非顶层窗口的区别在于,顶层窗口在任务栏会有自己的位置,而非顶层窗口则会共享其父组件的位置。 对话框分为模态对话框和非模态对话框。模态对话框,会阻塞同一应用程序中其它窗口的输入,此时不可以对除此对话框之外的其他窗口进行操作。非模态对话框,与此相反。例如记事本的查找对话框,可以在显示查找对话框的同时,继续对其他窗口进行操作。 标准对话框是 Qt...
C++界面开发框架Qt 6.x入门指南 - 拥有程序主窗口
Qt技术交流群:166830288 欢迎一起进群讨论 点击获取Qt组件下载 Qt Widget 是桌面环境中典型的用户界面元素,这些小部件很好地集成到底层平台,在 Windows、Linux 和 macOS 上提供原生外观。 这些小部件成熟且具有丰富的用户界面元素,适用于大多数传统用户界面。 与 Qt Quick 相比,这些小部件用于创建大型桌面应用程序,不太适合创建具有流畅界面的以触摸为中心的应用程序。 应用程序主窗口 Main Window Classes概述 这些类提供了典型的现代主应用程序窗口所需的一切,例如主窗口本身、菜单和工具栏、状态栏等。 QDockWidget:可以停靠在 QMainWindow 内或作为顶级窗口浮动在桌面上的小部件 QMainWindow:主应用程序窗口 QMdiArea:显示 MDI 窗口的区域 QMdiSubWindow:QMdiArea 的子窗口类 QMenu:用于菜单栏、上下文菜单和其他弹出菜单的菜单小部件 QMenuBar:水平菜单栏 QSizeGrip:调整顶级窗口大小的调整句柄 QStatusBar:适合呈现状态信息的水平条...
Qt(十三)QChart绘制折线图_SongpingWang的博客-CSDN博客
一、简单绘图 Qt Charts基于Qt的Graphics View架构,其核心组件是QChartView 和 QChart QChartView是显示图标的视图,基类为QGraphicsView QChart的基类是QGraphicsltem 类的继承关系: 创建项目:.pro文件中添加:QT += charts 代码如下:其他文件未修改,修改代码只在mainwindow.cpp文件中进行。 mainwindow.cpp #include "mainwindow.h" #include "ui_mainwindow.h" #include <QChartView> #include <QLineSeries> #include <QValueAxis> #include <QtMath> QT_CHARTS_USE_NAMESPACE MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) , ui(new Ui::MainWindow) { ui->setupUi(this);...
Show More
loading
Actions
Is this you?
As a journalist, you can create a free Muck Rack account to customize your profile, list your contact preferences, and upload a portfolio of your best work.Get in touch with setCentral
Contact setCentral, search articles and posts on X, monitor coverage, and track replies from one place.
Learn more about Muck Rack