QT添加资源文件步骤
Qt与视频处理
Video Playing and Processing在这一次的教程中,我们将介绍如何利用Phonon框架来创建一个视频播放器。
这一次的例子和音频播放器的例子相近,用了phonon所提供的API 接口,实现了视频文件的播放。
这些在不同的系统中实现方式不同,Phonon的最重要特征之一是它可以跨平台使用,这得益于它所支持的众多后端平台。
在Linux环境下,它通常使用GStreamer库;在Mac OS X环境下,他使用QuickTime;在Windows下,它使用Direct X和DirectShow库。
它还可以使用其他的后端平台库,如VLC和MPlayer后端。
Qt的多媒体支持能够以相同的API运行于所有平台。
然而,多媒体的播放能力通常取决于解码器和第三方库,并且由于竞争的存在以及软件专利之间错综复杂的关系,通常不会安装它们,目前仍没有较好的方法来解决这个问题,所以声音和视频文件会存在不能跨平台播放的问题。
而未来,最好的解决办法是利用诸如Ogg等开源媒体格式。
因为这一次的例子我们在Windows下运行时,它使用Direct X和DirectShow库。
所以他只能播放.mpg的文件。
当我们修改phonon的后端平台库之后,如使用VLC和MPlayer后端。
该用例就可以播放其他格式的视频了。
接着我们开始做一个视频播放器的小程序吧。
1.首先建立一个工程,单击”File”->”New File or Project…”,在弹出的对话框中选择”Qt4 Gui Application(Qt Gui 应用)”,单击”OK”按钮,将该工程命名为videoplayertest,选择保存该文件的路径,单击”Next”按钮,完成该文件工程的建立。
2.接着我们用以下这一语句来包含Phonon里的类定义:#include <phonon/phonon>为了能和Phonon进行连接,我们在videoplayertest.pro文件里添加以下这一语句:QT += phonon添加以后,.pro文件代码如下:QT += core guiQT += phononTARGET = videoplayertestTEMPLATE = appSOURCES += main.cpp\widget.cppHEADERS += widget.h3.打开widget.h,添加代码如下,#ifndef WIDGET_H#define WIDGET_H#include <QWidget>#include <QPushButton>#include <QFileDialog>#include <phonon/phonon>#include <QLabel> #include <QLayout> #include <QAction> #include <QToolBar> #include <QIcon> #include <QTime> class Widget : public QWidget{Q_OBJECTpublic:explicit Widget(QWidget *parent = 0);~Widget();private:QToolBar *toolbar;QHBoxLayout *hlayout;QVBoxLayout *vlayout;QLabel *name;QLabel *totaltime;QAction *open;QAction *play;QAction *stop;QAction *volume;QAction *exit;Phonon::MediaObject *audio;Phonon::AudioOutput *audioOutput;Phonon::VolumeSlider *volumeSlider;Phonon::SeekSlider *seekSlider;QIcon *playicon;QIcon *openicon;QIcon *stopicon;QIcon *volumeicon;QIcon *pauseicon;QIcon *winicon;QIcon *exiticon;private slots:void openfile();void playorpause();void volumesetting();void audiostop();void settotaltime(qint64);};#endif // WIDGET_H4.打开widget.cpp,添加代码如下:#include "widget.h“Widget::Widget(QWidget *parent) : QWidget(parent) {QFont font("Arial",15,QFont::Bold);name = new QLabel(this);name->setAlignment(Qt::AlignHCenter);name->setFont(font);name->hide();QFont font1("Arial",10,QFont::Bold);totaltime= new QLabel(this);totaltime->setFont(font1);totaltime->setAlignment(Qt::AlignRight);totaltime->hide();openicon= new QIcon(":/images/music_folder.png");playicon= new QIcon(":/images/play.png");volumeicon = new QIcon(":/images/icon.png");stopicon = new QIcon(":/images/stop.png");pauseicon= new QIcon(":/images/pause.png");exiticon=new QIcon(":/images/exit.png");winicon = new QIcon(":/images/1.PNG");setWindowIcon(*winicon);/*构造函数首先对界面控件进行初始化,并用QIcon读入小图标的文件,上面的代码调用了资源文件中的icon.png,stop.png,pause.png,exit.png,1.PNG等多张图片。
qt教程(ppt)
为什么选择QT?
• • • • • 基于C++ 简易、面向对象 优良的跨平台特性 Qt架构健壮,性能强大 Qt使用起来简便高效 Qt是开源软件
QT编程环境
• <1>QT的工具 $QTDIR/bin • <2>QT的库 $QTDIR/lib
• <3>QT的头文件 $QTDIR/include
QT编程环境
例子三:输入用户年龄
<1> 功能:用户可以通过微调框和滑块来输 入年龄 <2> 创建一个新的文件夹,命名为age <3> 创建age.cpp,编辑代码 <4>编译运行
输入年龄程序效果图
代码分析
例子三代码分析: <1> 由三个窗口部件组成:QSpinBox QSlider QWidget <2> 通过方法setWindowTitle()函数来设置 显示在窗口标题栏上的文字。 <3>如何改变对象的大小和位置。 <4>初步掌握信号和槽
QT Creator下载
/downloads 下载
creator
举例一:使用creator实现hello world <1> File -> New <2> Qt4 Gui Application <3> 输入工程名和要保存到的文件夹路径 <4> 这时软件自动添加基本的头文件,因为这个程 序我们不需要其他的功能,所以直接点击Next。 <5> 我们将base class选为QDialog对话框类。然 后点击Next。 <6>点击Finish,完成工程的建立。
代码分析
例子一代码解析: <1> 对于每一个Qt类,都有一个与该类同名的头文 件,在这个头文件中包含了对这个类的定义。 <2> 创建了一个QApplication的对象,用来管理 整个应用程序所用到的资源。 <3> 创建了一个QLabel类的对象,也可以叫做窗 口部件。 <4> 创建窗口部件的时候,标签(QLabel)通常都是 隐藏的,这就允许我们先对其进行设置,然后再 显示他们。
QT中的QFile
Qt资源体系采用平台独立机制来存储应用程序执行时的二进制文件。
这种机制在应用程序需要一些确定的文件(图标、翻译文件等等)而且又不想冒丢失文件的风险时是有用的。
资源体系依赖于qmake, rcc(Qt's resource compiler), 和QFile的紧密协作。
Qt 3 的qembed工具和image collection机制被废除。
Resource Collection Files (.qrc)与应用程序关联的应用程序由.qrc文件来指定,它用XML记录硬盘上的文件和对应的随意指定的资源名称,应用程序通过资源名称来访问资源。
一个.qrc文件的例子:<!DOCTYPE RCC><RCC version="1.0"><qresource><file>images/copy.png</file><file>images/cut.png</file><file>images/new.png</file><file>images/open.png</file><file>images/paste.png</file><file>images/save.png</file></qresource></RCC>.qrc文件中列出的资源文件是程序的源码树的一部分。
指定的路径是.qrc文件所在目录的相对路径。
注意,列出的资源文件必须位于.qrc文件所在目录或者其子目录下。
资源数据也能被编译进二进制文件中,因此应用程序代码可以立即访问;也可以创建一个二进制资源,稍后在程序中登记了资源体系的代码中指定。
缺省时,程序可以用资源在源码树中的名称加一个:/前缀来访问它。
例如,在程序的源码树中是images/cut.png 的文件可以通过:/images/cut.png来访问。
qt添加资源文件的步骤 -回复
qt添加资源文件的步骤-回复如何添加资源文件到Qt项目中Qt是一个跨平台的C++应用程序开发框架,它提供了丰富的UI控件和功能模块,使开发者能够轻松地开发可移植的应用程序。
在Qt项目中,添加资源文件可以方便地管理和使用项目中使用的各种资源,如图像、字体、样式表等。
本文将介绍如何一步一步地将资源文件添加到Qt项目中。
第一步:打开Qt项目并创建资源文件首先,打开你的Qt项目。
可以使用Qt Creator来创建一个新的项目,也可以打开一个现有的项目。
接下来,右击项目文件夹,选择“新建文件或项目”选项。
在弹出的对话框中,选择“Qt”类别并选择“资源文件”作为文件类型。
然后,点击“选择”按钮选择你想要添加的资源文件的名称和路径,并点击“下一步”按钮。
第二步:编辑资源文件资源文件(以.qrc为后缀)是一个XML文件,用于描述项目中的资源结构和路径。
在这一步,你可以编辑资源文件以添加、修改或删除资源。
在Qt Creator的编辑器中,你可以通过点击“在此处单击添加文件”按钮来添加资源文件。
或者,你也可以手动在XML文件中添加文件或文件夹的路径。
你可以使用以下代码来添加一个图像资源:<file>images/logo.png</file>你也可以使用以下代码来添加一个文件夹资源:<qresource prefix="/stylesheets"><file>stylesheets/light.qss</file><file>stylesheets/dark.qss</file></qresource>你可以根据需要添加任意数量的资源,包括但不限于图像、字体、样式表、音频等。
第三步:使用资源文件一旦你完成了资源文件的编辑,你就可以在你的Qt项目中使用这些资源了。
在你的代码中,你可以使用以下语句来访问和使用资源文件中的资源:QImage logo(":/images/logo.png");QFont font(":/fonts/Arial.ttf");QString stylesheet = ":/stylesheets/light.qss";在这些语句中,冒号“:”后面的路径是资源文件中资源的路径。
第一个qt窗口项目mainwindow
ui->UNm_ledit->setFocus(); //鼠标回到用户名编辑框
1
}
2}
此时已经完成了登陆按钮的功能, 但是点击登陆之后, 怎么跳转到主窗口中去呢? 这里就需要在主窗口的文件中做如下处理,先回到 main.cpp 文件中。 首先在 main.cpp 中包含 dialog.h 头文件 #include “dialog.h” 然后如输入如下代码 ,代码中附有详细解释, 代码简单,所以不单独解释
#include <QMessageBox>
C++ Code
1 void Dialog::on_login_Btn_clicked()
2{
3
if(ui->UNm_ledit->text() == tr("qt") && ui->pwd_ledit->text() == tr("123"))
Qt中.pro文件命令介绍和写法
【命令介绍】第一种常用方式:#模块设置,一般设置为app(生成应用程序,默认),subdirs(生成makefile文件编译subdirs指定的子文件夹),lib(生成库文件)TEMPLATE = app#指定生成的应用程序放置的目录DESTDIR += ../bin#指定生成的应用程序名TARGET = pksystem#添加或减少CONFIG的配置模块,一般采用默认即可,但是除去debug_and_release模块不会生成debug和release文件夹#CONFIG += releaseCONFIG -= debug_and_release#指定uic命令将.ui文件转化成ui_*.h文件的存放的目录UI_DIR = ./temp#指定rcc命令将.qrc文件转换成qrc_*.h文件的存放目录RCC_DIR = ./temp#指定moc命令将含Q_OBJECT的头文件转换成标准.h文件的存放目录MOC_DIR = ./temp#指定目标文件的存放目录OBJECTS_DIR = ./temp#程序编译时依赖的相关路径DEPENDPATH += . forms include qrc sources#头文件包含路径INCLUDEPATH += .#qmake时产生的信息,$${a}读取变量a的字符串,$$(PATH)读取环境变量PATH #message($$(PATH))#源文件编码方式CODECFORSRC = GBK# Input#工程中包含的头文件HEADERS += include/painter.h#工程中包含的.ui设计文件FORMS += forms/painter.ui#工程中包含的源文件SOURCES += sources/main.cpp sources/painter.cpp#工程中包含的资源文件RESOURCES += qrc/painter.qrc第二种常用方式,用于子文件夹的编译:#设定模块为子文件夹编译方式TEMPLATE = subdirs#子文件夹目录,可用\换行SUBDIRS = src1 \src2【写法】在QT中,有一个工具qmake可以生成一个makefile文件,它是由.pro文件生成而来的,.pro文件的写法如下:1. 注释从“#”开始,到这一行结束。
Qt~pro文件介绍
QT配置文件.pro介绍1、注释从“#”开始,到这一行结束。
2、指定源文件SOURCES = *.cpp对于多源文件,可用空格分开,如:SOURCES = 1.cpp 2.cpp3.cpp或者每一个文件可以被列在一个分开的行里面,通过反斜线另起一行,就像这样: SOURCES = hello.cpp\main.cpp一个更冗长的方法是单独地列出每一个文件,就像这样:SOURCES+= hello.cppSOURCES +=main.cpp这种方法中使用“+=”比“=”更安全,因为它只是向已有的列表中添加新的文件,而不是替换整个列表。
3. 指定头文件HEADERS = hello.h或者HEADERS += hello.h列出源文件的任何一个方法对头文件也都适用。
4. 配置信息CONFIG变量指定了编译器所要使用的选项和所需要被连接的库。
配置变量中可以添加任何东西,但只有下面这些选项可以被qmake识别。
下面这些选项控制着使用哪些编译器标志:release - 应用程序将以release模式连编。
如果“debug”被指定,它将被忽略。
debug - 应用程序将以debug模式连编。
warn_on - 编译器会输出尽可能多的警告信息。
如果“warn_off”被指定,它将被忽略。
warn_off - 编译器会输出尽可能少的警告信息。
下面这些选项定义了所要连编的库/应用程序的类型:qt - 应用程序是一个Qt应用程序,并且Qt库将会被连接。
thread - 应用程序是一个多线程应用程序。
x11 - 应用程序是一个X11应用程序或库。
windows - 只用于“app”模板:应用程序是一个Windows下的窗口应用程序。
console - 只用于“app”模板:应用程序是一个Windows下的控制台应用程序。
dll - 只用于“lib”模板:库是一个共享库(dll)。
staticlib - 只用于“lib”模板:库是一个静态库。
Qt添加图标
Qt添加图标1 Qt添加.exe程序图标1.1 Qt Creator添加.exe程序图标在⽹上(https:///)⽣成⼀个ico图标⽂件,命名为:logo.ico,将 ico⽂件存放⾄应⽤程序的源代码⽬录。
1.1.1 ⽅法⼀如果使⽤qmake来⽣成makefile⽂件,只需要在.pro中添加:RC_ICONS = logo.ico然后,重新⽣成makefile⽂件和应⽤程序,对应的.exe可执⾏程序的图标就会转变为刚才添加的图标。
1.1.2 ⽅法⼆新建⼀个.rc⽂件,“新建⽂件”---“C++ source File”---命名为logo.rc(不能掉了rc后缀)。
打开logo.rc⽂件添加如下⼀⾏代码。
IDI_ICON1 ICON DISCARDABLE "logo.ico"最后在pro⽂件添加⼀⾏代码RESOURCES += \qss.qrc#RC_ICONS = logo.icoDISTFILES += \logo.rcRC_FILE += logo.rc保存项⽬重新编译,exe图标和执⾏时window图标都将发⽣变化。
1.2 Qt in VS添加.exe程序图标在⽹上(https:///)⽣成⼀个ico图标⽂件,命名为:temp.ico,将 ico⽂件存放⾄应⽤程序的源代码⽬录。
在⼯程根⽬录下,新建⼀个temp.rc⽂件,内容如下:IDI_ICON1 ICON DISCARDABLE "logo.ico"修改“⼯程名.vcxproj”⽂件,在:<?xml version="1.0" encoding="utf-8"?><Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="/developer/msbuild/2003">之后,添加<ItemGroup><ResourceCompile Include="temp.rc"/></ItemGroup>重新⽣成项⽬即可。
在Qt(C++)中与Python混合编程
在Qt(C++)中与Python混合编程⼀、PythonQt库在Qt(C++)中与Python混合编程,可以使⽤PythonQt库。
⽹站⾸页:下载页⾯:只提供了源码下载,需⾃⾏编译。
版本要求:其⽹站building页⾯上的要求:Qt 4.8.1以上,Python2.6以上实际测试中得出的版本要求:Qt5.4以上,可以编译得到动态链接库(.so⽂件);Python2.7.12,编译范例程序成功。
(备注:我的测试环境是操作系统 Ubuntu 16.04 64bit,PythonQt版本:3.2)⼆、编译与安装编译⽂档:这⾥以Linux(Ubuntu系)为例,介绍⼀下编译安装⽅法。
1. 安装Qt去Qt⽹站下载安装包,或者通过apt安装。
安装完毕后,在命令⾏中执⾏qmake -v,查看输出信息,确认Qt已安装好。
注意:如果使⽤apt或者synaptic安装Qt,那么需要⼿动安装Qt的⼀些模块,例如multimedia等。
以Qt5为例,其模块⼀般以libQt5为开头,可以⽤apt或synaptic搜索关键字安装。
如果缺少模块,则编译时会报错提⽰。
2. 安装Python⽤apt安装Python和Python-dev。
Linux⼀般预装Python。
sudo apt install python python-dev3. 编译将下载的源码解压。
进⼊解压⽬录,之后执⾏编译指令。
假设解压⽬录为PythonQtcd PythonQtqmakemake all编译可能需要花费⼏分钟,请耐⼼等待。
编译完成后,编译得到的库⽂件以及范例程序都在PythonQt/lib下。
此时运⾏范例程序可能失败,需要先安装刚编译好的库。
4. 安装所谓安装,是指让系统能够找到编译好的库⽂件。
实现的⽅式有多种,这⾥介绍通过链接的⽅式安装。
⾸先确认系统中的库⽂件默认⽬录是什么。
cd /etc/ld.so.conf.d/ls可能列出⼀些配置⽂件,⽂件名是对应的⽬录,⽐如x86_64-linux-gnu.conf。
Qt04使用Qt 设计师创建主窗口应用
实验4 使用Qt 设计师创建主窗口应用4.1. 创建主窗体使用Qt设计师来创建主窗口应用是非常方便的,其步骤与使用代码创建基本一样。
1.选择模板首先,创建一个窗体,选择“Main Window”模板,创建一个空的主窗体,如下图:2.创建资源在资源浏览器中,点击编辑资源,如下图所示:我们将要在程序中使用图标资源,因此在资源编辑对话框中,点击新建资源,首先创建资源文件,我们就创建一个名为resource.qrc的资源文件,然后在编辑区中,再添加前缀,我们以“\”作为资源的前缀,图标文件我们都放在images目录下,然后添加图标文件将该目录下的所有文件添加即可,如下图所示:完成之后,我们可以在资源浏览器中看到添加的各个图标资源,如下图所示:3.创建动作在动作编辑器中,点击新建动作,进行动作的创建,在此过程中,可以设置动作的文本(显示在菜单项上的文本),对象名称,工具提示(鼠标放在动作上时显示的提示信息),图标(也就是浏览资源管理器中的资源,选择适当的图标资源),快捷键(鼠标点击快捷键区域,然后按下希望设置的快捷键即可),如下图所示:我们创建了一个newAction动作,对应“文件”菜单下的“新建”菜单项。
通过同样的方式,我们将程序中用到的所有动作创建完成,如下图:4.将动作添加到工具栏和菜单上首先创建工具栏,在主窗口中右键单击即可在弹出菜单中选择“添加工具栏”来添加,如下图:要将动作添加到菜单和工具栏上,还需要创建菜单,这通过在主窗口中的“在这里输入”之处输入菜单的文本,并修改菜单的objectName即可,有了菜单和工具栏,就可以将动作添加到菜单和工具栏上了,这很简单,只要从动作编辑器中拖动动作放到相应的菜单和工具栏上即可,摆放动作的时候,可以根据需要插入分隔符,最终的结果如下图所示(注,菜单上的动作没有显示出来,但在对象查看器中可以看到已经添加到菜单上了):5.新建自定义槽函数为了配置信号和槽函数之间的连接,我们需要在Qt设计师中创建一些自定义的槽函数(当然也还需要在代码中声明和定义),点击Qt设计师工具栏上的“编辑信号/槽”工具按钮,切换到编辑信号/槽状态。
qt creator实战教程
qt creator实战教程c一、Qt Creator 的安装和hello world 程序的编写(原创)1.首先到Qt 的官方网站上下载Qt Creator,这里我们下载windows 版的。
下载地址:/downloads如下图我们下载:Download Qt SDK for Windows* (178Mb)下载完成后,直接安装即可,安装过程中按默认设置即可。
2.运行Qt Creator,首先弹出的是欢迎界面,这里可以打开其自带的各种演示程序。
3.我们用File->New 菜单来新建工程。
4.这里我们选择Qt4 Gui Application。
5.下面输入工程名和要保存到的文件夹路径。
我们这里的工程名为helloworld。
6.这时软件自动添加基本的头文件,因为这个程序我们不需要其他的功能,所以直接点击Next。
7.我们将base class 选为QDialog 对话框类。
然后点击Next。
8.点击Finish,完成工程的建立。
9.我们可以看见工程中的所有文件都出现在列表中了。
我们可以直接按下下面的绿色的run 按钮或者按下Ctrl+R 快捷键运行程序。
10.程序运行会出现空白的对话框,如下图。
11.我们双击文件列表的dialog.ui 文件,便出现了下面所示的图形界面编辑界面。
12.我们在右边的器件栏里找到Label 标签器件13.按着鼠标左键将其拖到设计窗口上,如下图。
14.我们双击它,并将其内容改为helloworld。
15.我们在右下角的属性栏里将字体大小由9 改为15。
16.我们拖动标签一角的蓝点,将全部文字显示出来。
17.再次按下运行按钮,便会出现helloworld。
到这里helloworld 程序便完成了。
Qt Creator 编译的程序,在其工程文件夹下会有一个debug文件夹,其中有程序的.exe 可执行文件。
但Qt Creator 默认是用动态链接的,就是可执行程序在运行时需要相应的.dll 文件。
QT教程参考
有一次因为在chakanbl::chakanbl(QWidget*parent):QDialog(parent),ui(new Ui::chakanbl)中写了两个ui->setupUi(this);导致按下按钮没反应,即按下按钮不会跳到相应槽函数1.获取Linedit内容并存入数据库namm=ui->name->text();usee=ui->username->text();pasw=ui->password->text();QSqlQuery query; //定义一个QSqlQuery 类型的变量query.prepare(tr("INSERT INTO login(username,password,name) VALUES(:usee,:pasw,:name)")); //使用点位符替代记录中的值query.bindValue(":usee",usee);query.bindValue(":pasw",pasw);query.bindValue(":namm",namm);query.exec();2.获取系统时间需要加头文件#include <QDateTime>QDateTime dateTime = QDateTime::currentDateTime(); //获取年月日int y=dateTime.date().year();int m=dateTime.date().month();int v=dateTime.date().day();QString strTime=dateTime.time().toString(); //获取秒分时int xiaoshi=dateTime.time().hour();int fen=dateTime.time().minute();int miao=dateTime.time().second();3.字符串合并QString str=QString("%1%2%3%4%5").arg(yy).arg(mm).arg(vv).arg(xiashi).arg(fenfen);//str为年月日时分组合字符串需加头文件#include<QString>yy=2014 mm=4 vv=10 xiashi=21 fenfen=19则str="20144102119"4.传送字符串到其它界面比如传递字符串usnm="iewhf"只需在当前界面创建QString usnm;在另一个界面创建extern QString usnm;就可以使用usnm5.Qt crearor中添加背景图片的问题Qt在对话框中添加背景图片的一种方法:右键点击窗体区域-->change styleSheets-->在弹出的edit Style Sheet对话框中选择Add resources中的backgroud-image -->在select resources中选择自己想要的资源图片-->确定但这做法有一个问题,就是窗体中的部件,如按钮和输入框等也全部添加了背景。
Qt的pro工程文件语法学习
Qt的.pro工程文件语法学习标签:proqmake语法2016-01-15 12:25 171人阅读评论(0) 收藏举报分类:Qt5(6)版权声明:本文为博主原创文章,未经博主允许不得转载。
我们编写Qt应用程序时,不管使用Qt Creator还是VS或者Eclipse,不管是Qt Widgets 还是Qt Quick,总会发现有.pro文件,我们称.pro文件为Qt的工程管理文件,它存在的目的是列举工程中包含的源文件。
类似于makefile,一个工程中可以包含一个或多个.pro文件。
因此对于使用Qt的开发人员来说,熟悉.pro工程文件的语法,懂得阅读和修改.pro文件,将有利于对项目工程的文件组织和管理。
qmake、.pro文件、makefile文件的关系简单来说就是:qmake工具使用了与平台无关的.pro文件生成与平台相关的makefile文件。
所以虽然本文标题为.pro文件语法学习,实际上应该是qmake的语法学习,但是因为IDE把qmake隐藏起来了,我们接触地更多的是.pro文件,因此还是使用这样的标题。
================================TARGET变量& TEMPLATE变量& CONFIG变量:首先我们需要知道工程文件主要分为三种:app(单独的应用程序)、lib(静态或动态库)和subdirs(递归编译)。
工程文件的类型可以使用TEMPLATE变量来指定。
TARGET是用来定义应用程序的名字的,而程序的扩展名则由TEMPLATE来定义。
例如:TARGET = hello,TEMPLATE = app,则在Linux下会生成hello(无后缀的ELF可执行文件),对应的在Windows下会生成hello.exe。
TEMPLATE和CONFIG共同定义了目标类型,以下是几种常见情况:∙TEMPLATE = app,生成标准程序(注意如果没有TEMPLATE这一项,那么默认工程就是app)。
QT_Pro文件编写说明
}
LANGUAGE
LANGUAGE = C++
exists
!exists
如果一个文件不存在,停止qmake
!exists( main.cpp ) {
error( "No main.cpp file found")
}
QT
加入库模块
QT += xml
LIBS
dll -只用于“lib”模板:库是一个共享库(dll)。
staticlib -只用于“lib”模板:库是一个静态库。
plugin -只用于“lib”模板:库是一个插件,这将会使dll选项生效。
TARGET
指定目标文件名
如果不设置该项目,目标名会被自动设置为跟项目文件一样的名称
TARGET = filename
CODECFORSRC
源文件编码方式
CODECFORSRC = GBK
FORMS
工程中包含的.ui设计文件
FORMS += forms/painter.ui
RESOURCES
工程中包含的资源文件
RESOURCES += qrc/painter.qrc
win32{…}
unix{…}
平台相关性处理
win32 {
INTERFACES
添加界面文件(ui)
INTERFACES = filename.ui
TEMPLATE
模块设置
app(生成应用程序,默认)
subdirs(生成makefile文件编译subdirs指定的子文件夹)
lib(生成库文件)
TEMPLATE = app
qt在actaction前加选中标识
qt在actaction前加选中标识在Qt中,我们经常需要在Action前面添加一个选中标识,以提示用户当前选中的是哪个Action。
为了实现这个功能,我们可以通过使用QSS(Qt Style Sheets)来自定义Action的样式。
首先,我们需要新建一个Qt项目。
在Qt Creator中,选择File -> New File or Project,然后选择Qt Widgets Application模板,填写项目名称和路径,并点击Next。
在项目设置页面,我们可以选择使用C++开发语言,然后点击Finish完成项目的创建。
接下来,我们需要打开mainwindow.ui界面设计器,将一个QToolBar添加到窗口中。
在QToolBar中,我们可以添加一个QAction。
双击QAction,通过设置文本和图标来配置Action的显示。
在mainwindow.cpp文件中,我们会看到一个createActions函数,该函数用于创建Action。
我们可以在这个函数中为每个Action添加一个唯一的objectName,以便在QSS中识别和设置样式。
```cppvoid MainWindow::createActions(){QAction *newAction = new QAction(QIcon(":/icons/new.png"), tr("New"), this);newAction->setObjectName("newAction");QAction *openAction = newQAction(QIcon(":/icons/open.png"), tr("Open"), this);openAction->setObjectName("openAction");// 其他Action的创建...QAction *exitAction = new QAction(QIcon(":/icons/exit.png"), tr("Exit"), this);exitAction->setObjectName("exitAction");// 其他Action的连接...// 将Action添加到QToolBar中...}```接下来,我们需要在mainwindow.cpp文件中添加一些代码来加载QSS文件和设置Action的样式。
Qt Designer快速入门
几行代码轻松做上位机界面Qt Designer快速入门小教程By Exilefox 2012年3月28日做嵌入式的各位想必或多或少都听说过Qt,各种优点不细数了,简单的说这就是个做界面的IDE。
我发现很多Qt的教程都是用代码来编写界面程序,有没有图形化的方法呢!答案就是Qt Designer打个比方,用代码写界面就像是你用记事本一行行的敲HTML代码,用Qt Designer 写界面就很类似用FrontPage或者DreamWeaver,拖些控件,调整一下位置、属性,补些css 效果,一个轻松的页面就出来了此文意在引导初学者使用Qt Designer快速的入门编写界面,不关心底层的c++实现,总共只用敲几行代码新建工程开始,如图选择,然后一路next。
我就不多说了工程建立好后来看看工程的结构点击ui文件就可以切换到设计窗口,我们的ui设计主要就是在这里完成的,让我们看看结构在左边的是控件栏,里面的控件(如我们将用到的按钮、框架等)可以直接拖拽到中间的窗口编辑区。
各位有兴趣可以自己把他们一一拖出来,然后按shift+alt+R预览,看看是做什么功能的,我就不一一详述了(其实有些我也没用过,呵呵)。
因为我们再之前建立工程时候默认的是Mainwindow类型,所以这个窗口一开始就自带了顶部菜单,顶部图标栏,底部状态栏等,各位想要干净点的可以在创建时试试其他类型。
右上的显示的是从属结构,右下显示的是某个部件的属性。
底部的是信号与槽编辑窗口,信号与槽的编辑方式有4种:拖拽、在编辑窗口添加,右键“转到槽”,在C++代码中用connect函数,在此只演示右键“转到槽”熟悉了场地再描述一下我们要做的这个界面左侧3个按钮,点击就分别跳到右侧对应三个页面,每个页面有一幅图、一段文字。
这只是个简单演示,你可以想象一下用这类型的模板可以做功能很丰富的交互界面了,比如通信录,第一页换成添加联系人,输入各种信息,第二页换成联系人列表,ok,大家自由发挥。
qt+creator系列教程(上)
因为 return a.exec();一句表示只要主窗口界面不退出,那么程 序就会一直执行。所以只有用第一种方法,将该语句也放到 if 语句中,而在 else 语句中用 else return 0; ,这样如果 enterBtn 没有被按下,那么程序就会结 束执行了。
到这里,我们就实现了一个界面结束执行,然后弹出另一个 界面的程序。下面我们在主窗口上加一个按钮,按下该按钮,弹出一个对话框, 但这个对话框关闭,不会使主窗口关闭。
2.然后新建一个 Qt Designer Form Class 类,类名为 loginDlg,选用 Dialog without Buttons,将其加入上面的工程中。文件列表如下:
3.在 logindlg.ui 中设计下面的界面:行输入框为 Line Edit。其中用户名后面 的输入框在属性中设置其 object Name 为 usrLineEdit,密码后面的输入框为 pwdLineEdit,登录按钮为 loginBtn,退出按钮为 exitBtn。
二、Qt Creator 编写多窗口程序(原创)
实现功能: 程序开始出现一个对话框,按下按钮后便能进入主窗口,如果直
接关闭这个对话框,便不能进入主窗口,整个程序也将退出。当进入主窗口后, 我们按下按钮,会弹出一个对话框,无论如何关闭这个对话框,都会回到主窗口。 实现原理:
Qt在CAE软件开发中的应用
DOI:10.19551/ki.issn1672-9129.2021.03.046Qt在CAE软件开发中的应用李孟晗(重庆交通大学㊀400000)摘要:理论研究㊁实验研究和数值模拟是当今科学研究的3种主要手段,其中,数值模拟以其适用性强㊁应用领域广㊁成本低㊁周期短等优点,在未知领域探索㊁物理本质认识等方面展现出巨大优势[1]㊂CAE软件可以模拟试件的各项性能,代替传统的实验,能够极大缩短工期,提高经济效益㊂目前,国内大型通用CAE软件几乎没有,完全依靠国外的软件,类似ANSYS, ABAQUS等㊂本文介绍了Qt在软件界面开发的优势,为有限元软件的开发者提供一种便捷的界面开发方法㊂关键词:有限元软件;Qt;数值模拟;界面开发中图分类号:TP391.9㊀㊀㊀文献标识码:A㊀㊀㊀文章编号:1672-9129(2021)03-0045-01㊀㊀1㊀Qt介绍1.1Qt主要功能㊂Qt是由Qt Company开发的跨平台C ++图形用户界面应用程序开发框架,它提供给应用程序开发者建立艺术级的图形用户界面所需的所有功能,既可以开发GUI程序,也可用于开发非GUI程序[2]㊂QT的便捷之处在于,它支持所有主流开发平台,因此它能够在跨平台运行而不用修改代码㊂面向对象的框架使得QT的模块化程度很高,易于使用㊂QT还包含250多个C++类,除了GUI开发所需的控件㊁窗口等常用的类,还有字符串㊁文件夹等类㊂QT的帮助文档在开发过程中可以起到非常巨大的作用㊂QT是开源的,可以在官网上下载源码包㊂如果是使用Visual Studio的开发者,Qt软件安装过程中可直接集成到VS,再下载一个扩展包,安装好后即可使用㊂1.2Qt Designer㊂Qt Designer是基于QT开发的一款交互式可视化GUI设计开源软件,使用它可以很好的对界面的布局进行调整,即使是不熟悉C++和Qt的人,也可以很快上手使用㊂设计完成后,它会将界面保存为.ui后缀的文件,可以在头文件和资源文件中通过命名空间调用㊂常用的许多控件,都可以在Qt Designer中直接定义,修改对象名,对控件的各项参数进行修改㊂包括信号和槽也可以直接定义,但仅限于官方提供的自带的几种类型,自定义的信号和槽必须在代码中实现,然后通过connect函数链接起来㊂2㊀CAE软件的界面设计有限元分析过程分为前处理和后处理㊂建立一个List,代码如下:ui.tabWidget->addTab(ui.treeWidget,QString("建模"));在前处理模块中,对结构进行设置㊂在后处理模块,可以输出结构的应力应变,查看单元自由度,输出总刚矩阵等㊂按照本文的方法建立左侧项目栏,可以很方便的对结构进行管理,如果有新功能开发,也比较容易在此方法创立的栏目中进行增删㊂树状结构的组织方式也十分清晰,一目了然㊂在单元相关和材料截面的子窗口,可以建立各自的单元库和材料库㊂在Qt中,Qt Resource Editor是用来管理媒体资源文件的编辑器,储存为后缀.qrc的文件㊂将需要的文件添加到qrc资源文件中,就可以直接在代码中修改控件的显示方式,此方式同样适用于其他控件,代码如下:QIcon addpoint(":/a");ui.pushButton->setIcon(a);并且本文结合Qt中QComboBox类和QStackedWidget 类,开发出类似ABAQUS的建模方式,对每一个有限元分析步骤,可以点击切换到该分析步骤中的所有功能,实现功能的可视化,使得程序更易于使用㊂在Qt中,QComboBox控件中的每一行是根据传入的in-dex来进行定位,而对于QStackedWidget控件中的每一个页面,也是通过索引来定位,获取控件的每一次点击事件中索引的更新,将更新后的index作为另一个控件的索引传入,可以实现点击切换的功能,代码如下:ui.stackedWidget->setCurrentIndex(0); connect(boBox,static_cast<void(QComboBox::∗)(int)>(&QComboBox::activated),[=](int index){ui.stackedWidget->setCurrentIndex(index); });本文在QTabWidget中嵌入了三个窗口,分别表示生成㊁调试㊁查找,在计算过程中可以显示计算结果,按照节点号查找各个节点的应力应变㊂在最上方的工具栏里,开发者可以按照自己的意愿,添加不同功能的按键㊂对于节点㊁单元㊁材料等子窗口,可以用connect函数链接信号和槽,对QTreeWidget里的item进行判断,触发clicked事件,调用QWidget类里的show函数,即可打开子窗口㊂代码入下:connect(ui.treeWidget,&QTreeWidget::itemClicked, [=](QTreeWidgetItem∗item){if(item==pQuestion){dQuestion_Type->show();}};子窗口的设计可以使用Qt Designer,设计过程中要注意布局㊂在Qt中,如果不对控件加LayOut类布局的话,会导致整个界面顺序变乱,因此对于所有的控件都需要加上水平布局或者垂直布局㊂3㊀结论综上所述,将来的大多数工程问题都可以通过CAE软件分析来解决,而国内的工业软件还亟待发展,大多数都是使用国外的软件,自主开发CAE软件势在必行㊂本文总结了在开发过程中遇到的一些问题,介绍了Qt在有限元开发中的作用,给CAE软件的界面开发提供了一种模板,还有一些特殊功能的实现方法,供CAE领域的开发者参考㊂参考文献:[1]冯志强,刘建涛,彭磊,周洋靖,宁坡,汪波.自主CAE平台及计算力学软件研发新进展[J].西南交通大学学报,2016,(03):519-524.[2]项伟.基于Linux Qt4下自定义对话框的设计与实现[J].计算机时代,2017,(09):27-29+32.㊃54㊃。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
我们编写的gui可能需要一些额外的资源(比如贴图用的图片),可用资源文件统一管理。
以下以图片为例。
用qt creator 打开工程,为工程新建资源文件:
命名为“项目名.prc”,(此处为“clock.qrc”,名字可另起,后缀名不可改)。
系统自动切换到资源编辑界面:
如果没有自动切换到上述界面,双击clock.qrc即可。
选择添加—添加前缀,前缀名默认为“/new/prefix1”,改为在前缀一栏输入前缀名“/image”(可以另起,但是“/“”不能变)。
选中“/image”(如果只建立了image一个资源文件则自动选中),选择添加—添加文件,然后选中rose.png(或其他图片),效果:
添加资源文件后要保存,不然之后不能使用。
在上述界面中选中资源文件rose.png,可以为其起别名rose,方便使用。
如下图:
添加(更改)别名后同样保存一次。
如果要把该资源文件作为window icon,切换到ui编辑器,选择要添加icon 的窗口,找到下图荧光加亮的项目:
点击上图中红色圈住的下拉框,选择”添加资源”,弹出界面:
双击红色圈住部分,选择rose然后确定,如下示:
此时可以看到:
重新编译运行程序,察看效果:
可能遇到的问题:
1. 运行程序icon还是默认样式,而非所设置的图标。
可以尝试生成release 版本的可执行文件而非debug版本的。
2.编译失败,提示程序所依赖的***(资源名)不存在。
将资源(如上述的rose.png)拷贝到工程文件(.pro文件)所在目录。