自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(62)
  • 资源 (1)
  • 收藏
  • 关注

原创 实现页面1与页面2的来回切换,其中页面1是主页面

双页面切换

2022-03-24 12:03:40 994

原创 C++中产生随机数

C++中产生随机数rand()产生的是假随机数字,每次执行时是相同的。若要不同,以不同的值来初始化它.初始化的函数就是 srand()。main (){ int i,j; // 设置种子 srand( (unsigned)time( NULL ) );/* 生成 10 个随机数 */for( i = 0; i < 10; i++ ) { // 生成实际的随机数 j= rand(); cout <<"随机数: " << j << e

2022-02-23 19:38:21 492

原创 常见的数学函数 C++ #include <cmath>

常见的数学函数 C++ #include 1. double pow(double x, double y); // 返回x的y次方2. double hypot(double a, double b); // 返回根号a方加b方。3. double sqrt(double x); // 返回x平方根4. int abs(int x); // 返回整数x的绝对值。5. double fabs(double x); // 返回浮点数的绝对值。6. double floor(

2022-02-23 19:21:57 825

原创 C++学习(2)Lambda函数与表达式

C++学习(2)Lambda函数与表达式lambda表达式使用方便、代码简洁、定义和使用在同一个地方,而且不需要取名字就可以使用,它本身就是一个匿名的函数。[capture](parameters)->return-type{body} // 分为四段:[]()->{}第一段:[] // 沒有定义任何变量。使用未定义变量会引发错误。[x, &y] // x以传值方式传入(默认),y以引用方式传入。[&] // 任何被使用到的外部变量都隐式地以引

2022-02-18 17:42:38 432

原创 在visual Studio中安装QT插件

在visual Studio中使用QT分为四步:一.安装visual studio。安装时选择C++桌面开发。下载地址网上有很多,我下载的2022版本的。二.安装QT在官网选择window下的适合vs的qt版本。安装时,安装选项,我除了关于android的没安装,别的都安装了。qt我安装的是2017版的。三.安装qt-vsaddin_msvc2022有博客推荐直接在vs的扩展中-联机,选择Qt tools进行安装,但是我按照这个方法安装时,总是在中途断掉,提示Web有问题。后来我直接从

2022-02-17 17:05:43 7171

原创 C++ 学习(1) 数据类型

C++ 学习(1) 数据类型1.新增一个宽字符类型:wchar_ttypedef short int wchar_t枚举类型enum color{red, green, blue};color c;c = blue;换行符 \#define的用法#define LENGTH 105.const 作用前缀声明指定类型的常量。const int BOOK = 10;注意将常量定义为大写字母形式,是一个很好的编程实践。修改符类型eg: short unsign

2022-02-17 13:41:03 346

原创 qt之 弹出打开文件对话框QFileDialog

qt之 弹出打开文件对话框QString fileName = QFileDialog::getOpenFileName(this);if (!fileName.isEmpty()) { ui->textEdit->setVisible(this);}

2021-11-17 17:23:45 981

原创 qt之 在文本编辑器中打开打印对话框

qt之 在文本编辑器中打开打印对话框QAction* actPrint;actPrint = menu->addAction(tr("print"));connect(actPrint, SIGNAL(triggered()), this, SLOT(doPrint()));void MainWindow::doPrint(){ QTextDocument * document = ui->textEdit->document(); QPrinter print

2021-11-17 16:12:49 333

原创 qt 之信号和槽自动关联

qt 之信号和槽自动关联除了能够在程序中手动关联信号和槽之外,Qt的元对象提供了信号和槽的自动关联。对于Qt窗口部件已经提供的信号,如果能够按下面的规则命名槽函数,那么Qt就能够自动关联:void on_<窗口部件名><信号名>(<信号参数>); 如:on_VideoDevTable_customContextMenuRequested(const QPoint &pos) // 右击on_browsePushBtn_clicked(); // 点击按钮

2021-11-12 10:58:07 434

原创 如果多个信号指向同一个槽函数,想知道是触发的是哪个信号。

信号与槽 之 如果多个信号指向同一个槽函数如果多个信号指向同一个槽函数,想知道是触发的是哪个信号。contect(colorPushBtn, SIGNAL(clicked()), this, SLOT(doPushBtn()));contect(errorPushBtn, SIGNAL(clicked()), this, SLOT(doPushBtn()));// colorPushBtn 和colorPushBtn是不同的按钮。想知道是哪个按钮,QPushButton *btn = qobje

2021-11-10 17:08:57 375

原创 Qt 内嵌对话框

Qt 内嵌对话框除了QMessageBox消息框外,Qt提供的内建对话框还有:1. 颜色对话框QColorDialog;2. 错误消息框QErrorDialog;3. 文件对话框QFileDialog;4. 字体对话框QFontDialog;5. 输入对话框QInputDialog6. 页设置对话框QPageSetupDialog,配置与页相关的打印机选项。7. 进度对话框QProgressDialog;8. 打印对话框QPrinntDialog,配置打印机。...

2021-11-10 16:52:30 447

原创 qt之模态和非模态对话框

qt之模态和非模态对话框 模态对话框是阻塞式的 非模态对话框是非阻塞式的。必须通过new操作在堆中创建非模态对话框。qt中,QDialog::exec()以模态方式显式对话框,而QDialog::show()默认以非模态方式显示对话框...

2021-11-09 16:23:39 89

原创 qt之数据库连接删除

qt之数据库连接删除QSqlQuery类,提供了直接执行任意SQL语句并处理返回结果的方法。QSqlDatabase:可以提供默认连接供Qt其他的SQL类使用。第一次.据库的连接 用到QSqlDatabase 以及其类中的:: database和 addDatabase,QString g_sThreadId;QSqlDatabase db = QSqlDatabase::database(g_sThreadId);if (! db.isValid()) {// 参数1为驱动名,参数2名连

2021-11-04 17:25:26 1929

原创 qt之数据库连接

qt之数据库连接QSqlDatabase:可以提供默认连接供Qt其他的SQL类使用。QSqlQuery类,提供了直接执行任意SQL语句并处理返回结果的方法。数据库的连接 用到QSqlDatabase 以及其类中的:: database和 addDatabase,QString g_sThreadId;QSqlDatabase db = QSqlDatabase::database(g_sThreadId);if (! db.isValid()) {// 参数1为驱动名,参数2名连接名与dat

2021-11-04 16:56:03 491

原创 qt之文件的读取-QFile

qt之文件的读取-QFile#define FILE_DBCONFIG “config.ini”QString sDriver = QString::null;QString sDBName = QString::null;QString sUserName = QString::null;QString sPassword = QString::null;QString sServerName = QString::null;QFile file(FILE_DBCONFIG);if (

2021-11-04 16:50:32 322

原创 getInstance()方法的作用

getInstance()方法的作用getInstance()指实例化,与new类似,但是于new又有很大的区别 //实例化 public static DBConnect instance; public static DBConnect getInstance(){ if (instance == null) { instance = new DBconnect(); } return instance; }getInstance在单例模式(保证一个类仅有一个实

2021-11-04 16:27:39 5349

原创 qt中常见的类

qt: qt中常见的类:1. QApplication: 应用程序类,创建一个QApplication对象并将用户在控制台输入的参数传递给该应用程序对象。对于非GUI的qt应用程序,可以使用不依赖QtGui库的QCoreApplication2. QTextCodec:该类定义了显示文本...

2021-11-01 14:09:04 301

原创 qt: pro工程文件

qt: pro工程文件1.变量TEMPLATE: app 应用程序,lib生成库2.变量TARGET:定义了可执行文件的名字3.变量DESTDIR: 定义了存放可执行文件的目录4. 变量CONFIG:定义了编译选项,即debug表示建立的目标代码是调试版本warn_on要求编译器在编译应用程序时打开告警开关5.变量OBJECTS_DIR:描述了编译/连接应用程序过程中产生的中间文件存放的位置 ,即编译器生成的中间文件hello.o放置在工程文件所在的目录。...

2021-11-01 11:23:24 75

原创 纯虚函数的用法

纯虚函数虚函数后面加 = 0virtual void ViewAcct() const = 0; // 纯虚函数

2021-10-28 17:27:23 216

原创 C++ 静态联编 VS 动态联编

C++ 静态联编 VS 动态联编在编译过程中进行联编被称为静态联编。在运行过程中进行联编被称为动态联编,包含虚函数的需要进行动态联编,编译器需要在程序运行时选择正确的虚方法的代码。...

2021-10-27 11:21:11 74

原创 C++ 多态公有继承

C++ 多态公有继承即希望同一个方法在派生类和基类中的行为是不同的。换句话来说,方法的行为应取决于调用该方法的对象。这种较复杂的行为称为多态–具有多种形态,即同一个方法的行为随上下文而异。有两种重要的机制可用于实现多态公有继承:1. 在派生类中重新定义基类的方法。2. 使用虚方法。以下中基类为Brass, 派生类为:BrassPlusclass Brass { public: virtual void withdraw(double amt); virtual void ViewAc

2021-10-26 12:00:27 98

原创 C++成员初始化列表语法

C++成员初始化列表语法1.如TableTennisPlayer类有三个私有的成员变量class TableTennisPlayer {private:string firstname;string lastname;string hasTable;}在其构造函数中可以利用成员初始化列表进行初始化TableTennisPlayer::TableTennisPlayer(const string &fn, const string &ln, bool ht):firstnam

2021-10-26 10:33:36 397

原创 QList的用法

QList的用法QList<VideoWidget *> videoWidget_list;VideoWidget *videoWidget = videoWidget_list.at(i)

2021-08-25 17:26:02 513

原创 QMap的用法

QMap的用法QMap中可以定义value为结构体等。QMap<int,DHVideoDeviceOper*> m_mapDHVideoDeviceOper;QMap<int,CGroup>* m_pMapGroup;QMap<int,DHVideoDeviceOper*>* pMapDHVideoDeviceOper如果下文中需要用到某个类,可以直接声明类,如下文:class DHVideoDeviceOper;class BackWidget;clas

2021-08-25 17:25:07 527

原创 C++中经常有set和get函数,那么他们有什么作用呢

C++中经常有set和get函数set和get函数的作用:由于成员变量我们一般设置为私有,在类外部不能直接访问,所以我们需要设计公有的set()函数和get()函数来访问它;set()函数是指修改私有成员变量的值的那类函数;get()函数是指输出,打印,读取私有成员变量的值的那类函数;所以一般set()函数和get()函数是对应的;这体现了面向对象编程中的封装性:这里set()函数和get()函数就相当于是对外界提供的一个接口,外界只有通过这种接口才能访问到内部的值。附上例代码:#inclu

2021-08-25 17:20:21 5514 1

原创 C++中利用const_cast和static_cast进行强转

C++中利用const_cast和static_cast进行强转都是static_cast或const_cast后加<要强转的类型>,例如:return static_cast<void*>(const_cast< DHVideoDeviceOper*>(this));

2021-08-25 16:41:39 121

原创 命名空间的使用

命名空间的使用命名空间的定义namespace nsl {int a;int b;}命名空间的声明1.using后面的命名空间成员名必须是由命名空间限定的名字。例如:using nsl:: Student; // 通过该方法只能一次声明一个命名空间中的成员,声明其后的Student是命名空间nsl中的Student。2.using namespace nsl; // 通过该方法可以一次声明一个命名空间中的全部成员。只有在命名空间数据很少,以及确保这些命名空间中没有同名成员时才用usin

2021-08-25 16:26:29 216

原创 QComboBox的用法

QComboBox的用法QComboBox的作用是添加一个下拉框

2021-08-25 13:55:13 247

原创 如何设置使其弹出右键菜单

弹出右键菜单ui->PowerDevTable->setContextMenuPolicy(Qt::CustomContextMenu);

2021-08-20 15:25:49 118

原创 QGroupBox的用法

QGroupBox的用法QGroupBox是一个容器,里面可以有QRadioButton, QVBoxLayout等,一般先利用QVBoxLayout进行布局。group = new QGroupBox("Exclusive Radio Buttons", this);group->move(10,10);radio1 = new QRadioButton("radio1");radio2 = new QRadioButton("radio2");radio3 = new QRadioB

2021-08-18 16:26:42 1603

原创 文本打印和光标定位 42

文本打印和光标定位 42QPlainTextEdit通过QTextDocument对象存储文本数据QPlainTextEdit本身只负责界面形态的显示QTextDocument用于存储数据信息可能通过光标的字符位置信息计算坐标QTextDocument是表示文本以及文本属性的数据类1.设置文本的属性:排版,字体,标题,等2. 获取文本参数:行数,文本宽度,文本信息,等3. 实现标准操作:撤销,重做,查找,打印,等打印功能的实现步骤1. 连接QAction打印对象的信号到槽函数2. 在槽

2021-07-14 11:11:13 113

原创 Qt的文件操作

Qt的文件操作void write(QString f){ QFile file(f); if( file.open(QIODevice::WriteOnly | QIODevice::Text) ) { file.write("D.T.Software\n"); file.write("Delphi Tang\n"); file.close(); }}void read(QString f){ QFil

2021-07-05 09:25:02 62

原创 2021-07-02

文件编辑组件-2 QPlainTextEdit mainEditor;bool MainWindow::initMainEditor(){ bool ret = true; mainEditor.setParent(this); setCentralWidget(&mainEditor); // 设置中心窗口为mainedi return ret;}

2021-07-02 11:56:31 39

原创 文件编辑组件

文件编辑组件QLineEdit:单行文本编辑组件QPlainTextEdit:多行普通编辑组件QTextEdit:多选富文本编辑组件:适合于word这种复杂的。Qt中常用文本编辑组件的内置功能1.右键弹出式菜单2.快捷键功能:复制,粘贴,剪切等。MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), lineEdit(this), plainEdit(this), textEdit(this){ resize(

2021-07-02 09:55:23 186

原创 状态栏的创建 (29)

状态栏的创建 (29)状态栏的左边区域用于输出实时消息右边用于设置永久消息addWidget 在状态栏左半部分添加组件addPermanentWidget在状态栏右半部分添加组件statusBar(); // 为qt的成员函数,用于创建statusBarbool MainWindow::initStatusBar(){ bool ret = true; QStatusBar* sb = statusBar(); QLabel* label = new QLabel("D

2021-07-01 15:41:17 76

原创 在QTableWidget中获得点击的行号

在QTableWidget中获得点击的行号对于右键点击事件,这里用到的是Qt::CustomContextMenu方法,本例通过右点QTableWidget,显示下拉菜单,//customContextMenuRequested(QPoint)信号是QWidget中唯一右键菜单点击的信号,该信号发出的条件是:widget的ContextMenuPolicy必须是Qt::CustomContextMenu,此时右键点击就会发出此信号。ui->tableWidget->setContextM

2021-07-01 14:18:06 2304

原创 窗口2 -> 工具栏(28-1)

窗口2 -> 工具栏(28-1)Qt中通过QToolBar进行工具栏的创建QToolBar的关键成员函数void setFloatable(bool floatable);void setMovable(bool movable);void setIconSize(const QSize& iconSize);MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent){ QToolBar* tb = a

2021-06-29 17:37:54 39

原创 窗口1 -> 应用程序的主窗口(27)

窗口1 -> 应用程序的主窗口(27)主窗口是应用程序启动后显示的第一个窗口QMainWindow中封装了菜单栏,工具栏,中心组件,停靠组件,状态栏等组件菜单点击后会有很多选项。整个程序由一个主窗口和多个对话框组成。Menu BarToolbarsDock WidgetsCentral Widget菜单栏(QMenuBar)下拉菜单组(QMenu)菜单项(QAction)MainWindow::MainWindow(){}MainWindow* MainWindow

2021-06-29 16:50:03 202

原创 QT帮助文档的使用方法

QT帮助文档的使用方法有时看过qt的帮助文档后仍然不确定怎么用,现在总结下借助帮助的编写代码帮助1:setShortcut (const QKeySequence & shortcut)action->setShortcut(QKeySequence(key)); // int key

2021-06-29 16:21:23 503

原创 构造函数的用法

MainWindow();MainWindow(const MainWindow&); // 拷贝构造函数MainWindow& operator= (const MainWindow&); // 赋值构造函数

2021-06-29 15:18:24 76

QT 通过鼠标拖动实现框选.md

QT通过拖动鼠标 实现框选

2021-05-29

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除