相关文章推荐
八块腹肌的柑橘  ·  Dark elf ...·  4 月前    · 
调皮的硬盘  ·  又要降价?Model ...·  1 年前    · 
奔放的黄瓜  ·  上汽集团官网·  1 年前    · 

辨析Qt(开发包/库文件)与Qt Creator(IDE,即集成开发环境)

Qt如上定义是图形用户界面应用程序开发框架,可简单理解为开发包或库文件;而Qt Creator相当于集成的编译器,用于将源代码编译成可执行程序。

Qt、Qt Creator的下载和安装

以Qt5.8.0版本为例:

(1) 官网下载qt-opensource-windows-x86-5.8.0.exe(应用程序)并运行——(opensource表示开源版本,windows-x86表示Windows平台,5.8.0是当前版本号);

(2) 登录(Login)与注册(Sign-up)环节可直接跳过(skip),不影响程序的安装;

(3) 安装文件夹——安装路径的设置(注意:安装路径不能有中文);

(4) 选择组件(保持默认选择);

(5) Launch Qt Creator(启动Qt Creator);

Qt程序 · 设计

新建Qt程序的两种方式

01

|使用纯代码方式编码;

02

|使用.ui文件(进入设计模式)

_
_

Qt程序文件类型主要包括:

01

|.pro文件:项目文件,包含项目相关信息;

02

|.cpp文件(源文件)

03

|.h文件(头文件)

04

|.ui(界面文件)

05

|.qrc(资源文件)

_
_
_

Qt Creator提供三个窗口基类:

01

|QMainWindow: 主窗口类

02

|QDialog: 各种对话框的基类

①模态对话框:在其没有被关闭之前,用户不能与同一个应用程序的其他窗口进行交互,直到该对话框关闭;

②非模态对话框:当被打开时,用户既可选择和该对话框进行交互,也可选择同应用程序的其他窗口交互

03

|QWidget: 基础窗口部件类,所有的窗口部件都继承自QWidget

_
_
_
_

Qt相关机制

信号与槽机制

信号与槽机制内涵

信号与槽用于两个对象之间的通信,信号与槽机制是Qt的核心特征,也是Qt不同于其他开发框架的最突出的特征,即当改变了一个部件时,其他部件能了解到该变化并执行相应槽函数代码。

信号与槽函数的声明

声明信号:关键字signals;声明槽函数:关键字slots

不同窗口的响应

同一窗口无需显式发射信号,不同窗口可用关键字emit显式发射信号从而实现(触发一窗口类的控件,而在另一窗口类中做出相应的响应)的效果。

信号与槽关联

——注意:一个信号可与多个槽函数关联

方式一:connec()关联

connect(发射信号的对象,信号,接受信号的对象,槽函数)

如:connect(btn,SIGNAL(clicked(bool)),this,SLOT(adding()))

方式二:在设计方式关联

进入设计模式→点击设计器上方的“编辑信号/槽”图标或者按下快捷键F4,从而进入部件的信号与槽的编辑模式→在控件上按住鼠标左键,然后拖动到窗口界面,再松开鼠标左键→弹出配置连接对话框,并选中下面的“显示从QWidget继承的信号和槽”选项→左边信号栏选定信号,右边槽函数栏选定相应槽函数。

方式三:自动关联

设计模式中右击控件选择“转到槽”就实现了关联,并可在相应的.cpp文件中进行槽函数的编码。自动关联就是将关联函数整合到槽命名中,由字符on、发射信号的部件对象名和信号名组成,如on_pushButton_clicked();

事件由应用程序内部(如QTimer定时器事件)或者外部(如鼠标事件和键盘事件)产生,被封装成一个个对象组成队列,再通过QApplication::exec()进入事件循环处理。

——Qt程序是事件驱动的,事件的发生和处理是程序运行的主线。

_
_
_
_

SQLite数据库的应用

(1)数据库(Database)概念:存放数据的仓库,可供多个用户共享并具有一定的安全性。

(2)数据定义语言(DDL,Data Definition Language)、数据操纵语言(DML、Data Manipulation Language)、数据查询语言(DQL、Data Query Language)

(3)Qt提供进程内轻量级数据库SQLite,不需要配置,不需要安装,也不需要管理员(且编程接口简单易用)→下载运行数据库可视化工具SQLiteStudio

(4)SQLiteStudio的使用:

①添加数据库

②设置数据库名称和路径(或直接选择数据库文件)后,测试连接,连接完成后点击OK即可。

③“结构”中显示数据框架(其中Primary Key为主关键字),“数据”中显示具体数据,如下:

(5)Qt操作数据库

①  修改项目配置文件

——在项目的.pro文件中加入QT += sql语句

②  加入头文件

#include

#include

③  连接数据库:

如:QSqlDatabase  db = QSqlDatabase::addDatabase("QSQLITE");

④  设置数据库名称:

如:db.setDatabaseName("info");

⑤  打开数据库:

如:db.open();

⑥  QSqlQuery类用于执行SQL语句:

如:QSqlQuery query;

query.exec("create table users(name text primary key,password int,phoneNumber int)");//创建表格

(6) 简单的SQL语法:

①  创建表格

格式:create table 表名(内容 类型)

②  向表中插入信息

格式:insert table 表名 values(表中的内容)

③  从表中删除信息

格式:delete from 表名 where 列名 = 条件

④  查询表中的内容

格式:select 列名 from 表名 where 列名 = 条件

查询所有的信息:select * from 表名

⑤  修改表中的数据

格式:update 表名 set 列名 = 新内容 where列名 = 条件

⑥  删除表格

格式:drop table 表名

生成应用程序(.exe) · 发布集合

打开Qt工程,以Release方式编译运行项目

进入build-***-Release工程目录,拷贝***.exe文件

新建一文件夹,复制***.exe文件

打开Qt for Desktop

进入新建文件夹所在目录,执行windeployqt (主文件名.exe)命令,如

然后在新建文件夹中就可以看到windeployqt工具自动复制的插件文件夹和dll文件、qm文件。这时候得到的就是完整的应用程序(.exe)发布集合。

当你感到悲哀痛苦时,最好是去学些什么东西。学习会使你永远立于不败之地。

Qt基础知识学习QtC++SQLite★★★★★ Qt · 简介Qt是由Qt Company开发的面向对象的跨平台C++图形用户界面应用程序开发框架。前期 · 准备01辨析Qt(开发包/库文件)与Qt Creator(IDE,即集成开发环境)Qt如上定义是图形用户界面应用程序开发框架,可简单理解为开发包或库文件;而Qt Creator相当于集成的编译器,用于将源代码编译成可执行程序。0... void MainWindow::on_ checkBox _stateChanged(int arg1) bool status = ui-> checkBox ->isChecked(); if(status == true) ui->... Q CheckBox 继承自QAbstractButton,它提供了一个带文本标签的复选框。 Q CheckBox (复选框)和QRadioButton(单选框)都是选项按钮。这是因为它们都可以在开( 选中 )或者关(未 选中 )之间切换。区别是对用户选择的限制:单选框定义了“多选一”的选择,而复选框提供的是“多选多”的选择。 尽管在技术上...
Qt 中, checkbox 控件是一种常用的选择框,用户可以通过勾选或取消勾选的方式来选择或取消选择一个选项。当用户改变 checkbox 的状态时,会触发相应的 事件 ,我们可以利用这些 事件 来实现特定的功能。 首先,当 checkbox 选中 时,触发的 事件 是stateChanged(int state)。其中state表示 checkbox 的状态,如果被 选中 ,则state为 Qt ::Checked;如果未被 选中 ,则state为 Qt ::Unchecked。我们可以在该 事件 中编写相应的代码,比如更新GUI界面信息,改变某个变量的值等等。 其次,当 checkbox 被取消 选中 时,同样也会触发stateChanged(int state) 事件 。此时state的值为 Qt ::Unchecked。我们可以根据这个 事件 来执行相应的操作,比如清空某个文本框的内容,将某个变量置为默认值等等。 除了stateChanged 事件 外, checkbox 还可以触发其他的 事件 ,比如clicked() 事件 ,表示单击了 checkbox ,或者toggled(bool checked) 事件 ,表示 checkbox 的状态被切换。我们可以根据实际需要选择相应的 事件 来实现我们想要的功能。 总之, Qt 中的 checkbox 提供了许多 事件 来响应用户的选择操作,我们可以根据这些 事件 来实现特定的行为。熟练掌握这些 事件 的使用,将能够大大提高我们的 Qt 开发效率。