搜档网
当前位置:搜档网 › QT中如何设置窗体的背景图片

QT中如何设置窗体的背景图片

QT中如何设置窗体的背景图片
QT中如何设置窗体的背景图片

QT中如何设置窗体的背景图片2013-08-24 09:27:38

分类:嵌入式

一、设置方法有两种,如下:

1、利用style sheet给窗体设置背景

使用stylesheet设置背景图片还是有一些要注意的,如果是在mainwindow和dialog 中,直接右键change style sheet在add resource中选择background-image或者

border-image,选择资源文件中的图片就行了(前者是按像素显示图片,后者可根据窗体大小来自动缩放图片,通常使用后者,前者如果界面与图片大小不一样,则背景的显示可能就不是整张图片了),如下图:

注意:

a、但在widget中就不行,你会发现,用同样的方法,背景并没有发生改变,而仅仅是它的子窗体背景图片发生了改变。

那么在widget中要如何做呢,我们在widget中放置一个frame,然后对frame通过stylesheet设置背景,后面窗体里所有的部件都放在这个frame里。

b、我们知道,子窗体会继承父窗体的属性,也就是说,父窗体的背景,在子窗体中也会有,那如何让子窗体不继承父窗体的背景呢,同样的,还是在Edit Style Sheet里,需要输入如下代码:(这样就可以解决窗体中的按键、QLable等控件与主窗体的一样。)

#desktop {

border-image: url(:/images/desktop.jpg);

}

#desktop * {

border-image:url();

}

desktop是你的窗体名。

2、不过也可以通过如下代码来实现:

QWidget *widget = new QWidget();

widget->setAutoFillBackground(true);

QPalette palette;

QPixmap pixmap(":/Resources/Penguins.jpg");

palette.setBrush(QPalette::Window, QBrush(pixmap));

widget->setPalette(palette);

widget->show();

一般我喜欢使用前面去设计,在ui中进行,方便简单。

netcdf4.1.3安装后环境变量设置以跟Qt下使用静态动态库方法新

netcdf4.1.3安装后环境变量设置以及Qt下使用静态动态库方法一.netcdf4.1.3安装后环境变量设置 1.下载netcdf安装包,from: https://www.sodocs.net/doc/0b10885065.html,/downloads/netcdf/index.jsp 我下载的是版本4.1.3 2.解压tar -zxvf netcdf-4.1. 3.tar.gz 3. 在解压后的netcdf- 4.1.3所在目录执行: ./configure --disable-dap --disable-netcdf-4 --prefix=/usr/local/netcdf 注意:上面红色的两个选项是他人很多次实验后证明必须的(参考资料1)。--disable-dap的原因是缺少一个‘curl’的lib,--disable-netcdf-4是报错中提出的解决办法,尽管我个人暂时没有搞清楚为什么。不写这两个,在configure的时候就会报错,导致后面make失败。 4. make 5. make install,提示安装成功的同时,还会提醒make check,下一步进行。 6. make check 安装完成后,/usr/local/netcdf/文件夹下存在4个文件,分别为bin,include,lib和share

安装完成后,注意环境变量的设置 打开终端输入sudo ~/.bashrc 在最后添加 export PATH=/home/swh/NSForWoss/DESERT_all_in_one_1.0.0/netcdf/bin:/$P ATH export LD_LIBRARY_PATH=/home/swh/NSForWoss/DESERT_all_in_one_1.0 .0/netcdf/lib:/$ LD_LIBRARY_PATH export DYLD_LIBRARY_PATH=/home/swh/NSForWoss/DESERT_all_in_one _1.0.0/netcdf/lib:/$ DYLD_LIBRARY_PATH

QT习题

QT习题 一、名词解释 1、虚函数: 2、回调函数: 3、内联函数: 4、信号与插槽: 5、私有函数: 6、构造函数: 7、公有函数: 8、内联函数: 9、信号与插槽: 10、析构函数: 二、判断题 1、在QT中Qwidget不可以作为应用程序的窗口()。 2、在创建窗口部件的时候,窗口部件通常不会显示出来()。 3、布局管理器不是一个窗口部件() 4、FindDialog(QWidget *parent = 0);父参数为NULL,说明有父控件。() 5、show()显示的对话框是模式对话框。用exec()显示的对话框是无模式对话框。 () 6、布局管理器派生自QObject。() 7、Q_OBJECT是一个宏定义,如果类里面用到了signal或者slots,就必须要声 明这个宏。() 8、FindDialog(QWidget *parent = 0);父参数为NULL,说明没有父控件。() 9、槽可以是虚函数,可以是公有的,保护的,也可是私有的。() 10、show()显示的对话框是无模式对话框。用exec()显示的对话框是模式对话 框。() 三、简答题 1、简述一下信号与插槽机制。 2、简述布局管理器的功能,列举3个布局管理器。 3、简述使用Qt设计师,在创建对话框时主要包含哪几个基本步骤? 4、GUI程序通常会使用很多图片,请简述3种提供图片的方式。 5、列举几种Qt中会产生绘制事件的情况。 6、Update()与repaint()之间的区别? 7、对窗体上的控件进行布局管理一般有哪几种方式,简述一下其缺点。 8、简述事件和信号的特点和区别。 9、简述主函数中创建QApplication对象功能。 10、简述使用Qt设计师,在创建对话框时总是包含哪几个基本步骤?

Qt显式调用dll

Qt显式调用C++写的dll 这些天在做一个工程,要用到Qt,所以特别研究了一下Qt显式调用链接库的问题。隐式调用就不那么想用了,个人感觉隐式调用既浪费内存,造成程序启动速度极慢,又容易造成链接错误(本人在ogre中深受链接错误之苦),所以只用了显式调用。以前只试过在MFC 中显式调用dll,在Qt上还没试过。其实细细研究一下,相对于MFC的调用来说,Qt的调用也是大同小异的。在这里分享一下。 首先用VS写一个dll先(名字为QtDllTest)。写dll最大的问题就是解决导出函数重命名问题。其中解决方法是多种多样的。本人只用自己最常用一种——用模块定义文件.def。 第一步,写一个dll,简单写一个测试加法函数的: int add(int a,int b) { return a+b; } 之后添加一个模块定义文件QtDllTest.def: LIBRARY "QtDllTest" EXPORTS add 之后顺利生成dll. 现在可以利用dll函数导出工具DLL Export Viewer查看刚才生成的dll中的导出函数:

发现,导出函数名字没有乱码,说明导出函数正常。现在,就以这个dll为例来试着用Qt调用。 新建一个名为QtDllTestDemo的Qt Application: 默认,下一步 继续下一步:

Finish就行了。反正一切默认就行。 在ui界面中加入一个pushButton(ObjectName:CalButton,Text:Calculate),一个Label 控件(Text:Result),一个lineEdit控件(ObjectName:Result),主要是在点击按钮后调用dll并计算把计算结果显示在文本框中,如下图所示: 为了顺利使用dll,我们要在qtdlltestdemo.cpp开始包含这个东西:#include 下面给pushButton添加click响应事件: void QtDllTestDemo::on_CalButton_clicked() {

怎么把qwt添加到qt中使用

标题:如何在QT中运行QWT 作者:胡振凯 日期:2014/8/16 修改ver.1 2014/8/23 运行环境win8.1专业版。 目的:QT中的GUI库不全,使用QWT库可以编程更容易。 从使用QT,到添加QWT库步骤: 1.Download Qt 5.3.1 for Windows 32-bit (MinGW 4.8.2, OpenGL, 735 MB) (Info) , 并安装到D:\Qt中(默认为C盘,但我不喜欢什么都放C里)。 ●下载过VS2013版本,运行nmake时出现错误,找不到stddef.h文 件。 2.修改环境变量的系统变量的path ●打开控制面板,系统,高级设置,环境变量,path ●添加D:\Qt\Qt5.3.1\5.3\mingw482_32\bin,(包含qmake.exe) ●添加D:\Qt\Qt5.3.1\Tools\mingw482_32\bin (包含mingw32- make.exe) 3.Google搜索qwt,进入官网,下载并解压qwt-6.1.0。(下载到哪都无所 谓)。 4.修改qwtconfig.pri文件。修改安装后路径。(我要把qwt安装到d:\Qwt- 6.1.0中,默认是c盘。) ●win32 {QWT_INSTALL_PREFIX = d:/Qwt-$$QWT_VERSION} 5.启动qt命令行程序(类似win dos的那个东东),compile & install qwt文 件。Qwt下载下来的都是源代码,要做成lib和dll文件,就需要编译和安装(拷贝)两个步骤。 ●进入qwt-6.1.0路径,输入命令qmake。在路径下生成makefile文件。 ●输入命令mingw32-make,编译所有cpp文件。 ●输入命令mingw32-make install,按照qwtconfig.pri的文件设置,输 出到安装(拷贝)目录d:/Qwt-6.1.0。 6.设置环境变量的系统变量,添加path,D:\Qwt-6.1.0\lib。很多人把编译好 的文件拷贝到qt库文件夹下。其实,只要设置系统变量的path,编译程序就会查找这个文件夹了,所以不用拷贝来拷贝去的。

Qt Creator 窗体控件自适应窗口大小布局

Qt Creator 窗体控件自适应窗口大小布局 常见的软件窗口大小改变(最大化、手动改变时)需要窗口的部件能够自适应布局,而在Qt的应用程序界面设计中,对于像我一样的初学者如何实现窗口自适应调整还是要绕点弯路的。网上百度了很多,多数说的很含糊,还有很多是用程序实现的,既然已经有Qt Creator那么高集成度的工具了,我还是倾向于直接在Qt Creator中通过可视化配置的方式完成,一是所见即所得,而是效率要高不少。 Qt中如果想实现窗体内空间随着窗体大小调整,必须使用布局管理,常用的布局管理有QHBoxLayout、QVBoxLayout、QGridLayout,空的地方使用spacer 控件进行填充,因此首先将窗体空间使用布局管理典型应用如下图所示。 我这里使用QGridLayout,按住Ctrl多选需要布局的窗体控件,右键-布局-栅格化局,根据需要进行调整。 要想是控件根据窗体进行调整,最为重要的一点就是设置窗口部件的大小策略,各控件均有这一项设置,如下图所示。

这部分具体的参数解释摘录如下: 结合控件的SizePolicy属性,来控制布局管理中的控件的尺寸自适应方式。 控件的sizePolicy说明控件在布局管理中的缩放方式。Qt提供的控件都有一个合理的缺省sizePolicy,但是这个缺省值有时不能适合所有的布局,开发人员经常需要改变窗体上的某些控件的sizePolicy。一个QSizePolicy的所有变量对水平方向和垂直方向都适用。下面列举了一些最长用的值: A. Fixed:控件不能放大或者缩小,控件的大小就是它的sizeHint。 B. Minimum:控件的sizeHint为控件的最小尺寸。控件不能小于这个sizeHint,但是可以 放大。 C. Maximum:控件的sizeHint为控件的最大尺寸,控件不能放大,但是可以缩小到它的最小 的允许尺寸。

图片处理的基本方法

图片处理的基本方法

《图片处理的基本方法》第1课时 —《利用ACDSee处理图片》教学设计1.教学内容分析 上一节内容讲了获取图片的方法,但获取的图片不一定能符合我们的要求,这就需要对图片进行处理。作为《图片的处理》的第1课时,选取了比较简单的图片处理软件ACDSee,ACDSee不仅有浏览图片的功能,还可以对图片进行简单的处理。本节主要让学生了解常见的图片处理软件,掌握利用ACDSee软件对图片进行色彩的调整、裁剪和旋转。 2.学习者分析 图片是学生最喜爱和最容易感知理解的信息之一,学生对图片处理的兴趣比较大,在生活中喜欢处理自己的照片,如QQ空间的个性相册,但对图片的处理都是通过模板的形式。学生对感兴趣的东西的学习积极性比较高且乐于探索,而ACDSee是一款比较简单的软件,比较适合学生自主探究。根据学生的年龄和特点,教学内容不易过深,重点是要让学生在学习中体验学习的乐趣。学生对图片的处理有探究的欲望,同时学生具备了一定的自学能力,能够通过互帮互学和自主探究较好地完成学习任务。 3.教学目标 (1)知识与技能: ①了解常见的图片处理软件及各个软件的主要功能。 ②了解什么是亮度、对比度和饱和度 ③能利用ACDSee调节图片的色彩 ④能利用ACDSee对图片进行裁剪 ⑤能利用ACDSee对图片进行旋转与翻转 (2)过程与方法:在教师的引导下,学生通过自主探究,利用ACDSee软件完成老师布置的处理图片的任务,在完成任务的过程中掌握ACDSee软件处理图片的基本方法。 (3)情感态度与价值观:体验图片处理的快乐和成就感。 4.教学重难点 重点:利用ACDSee对图片的进行曝光、旋转、裁剪等处理。

用Qt生成dll类库及调用方法

用Qt生成dll类库及调用方法 (2010-08-16 11:01:01) 转载▼ 标签: 教育 .NET2005: 空白工程新建DLL后,将DLL和LIB文件放入需要调用的“指定目录” 项目-》属性->连接器-》常规-》附加库目录->添加“指定目录” 项目-》属性->连接器-》输入-》附加依赖项->添加“LIB文件” 添加头文件到项目中,则DLL可用! VC6.0: 使一个项目编译生成DLL库而不生成可执行文件: 删除main()方法; 将.pro项目文件中的TEMPLATE = app改为TEMPLATE = lib。 然后编译,此时生成的就是.a和.dll的文件。 在另一个项目中调用此DLL: 在项目文件中添加LIB。如添加此行:LIBS += "D:\workspace\MRP_Common\debug\common.dll" (common.dll既是上面生成的DLL);复制dll中类或方法的头文件到该项目中,并在要调用common.dll中类或方法的文件上面include; make,在debug目录中生成可执行文件,然后将dll复制到debug中,运行。 例子: ########################### 生成DLL的工程: ####################### 修改pro文件: TEMPLATE=lib ########################### .h文件 ####################### #ifndef DLLTEST_H #define DLLTEST_H #ifdef Q_WS_WIN #define MY_EXPORT __declspec(dllexport)

SCI论文图片处理与组图技巧

SCI论文图片处理与组图技巧 SCI文章投稿最重要的莫过于图片的处理。一般杂志对图片要求:图片最低分辨率300DPI,部分杂志要求不低于600DPI,点线图及柱状图部分杂志要求达800DPI甚至1200DPI。杂志要求的分辨率是指原始图片的分辨率,经过Photoshop处理后修改图片的分辨率以达到杂志的要求通常是不可取的。以下介绍组图过程中的一些个人经验。 一、图片处理 图片大致包括以下2种: 1、拍照的图片(一般是彩图,分辨率不低于300DPI):包括显微镜下拍照、扫描仪及摄像机等所拍照片,这一部分照片就是你的第一手资料,所以拍过后可能会无法再重复,因此一定要在最刚开始时就拍成高清的(设置成高分辨率),也就是保证了原始图片的高分辨率,接下来处理图片就会比较方便,免得因为图片质量不行而重复实验。另外,必要的话,把每张图片拍成TIF和JPG两种格式(以防部分杂志特殊要求)。 2、由数据生成的图(一般是黑白和点线图,分辨率不低于600DPI):主要包括各种点线图、柱状图、饼图和各种统计图等。在此推荐一款专业作图软件sigmaplot,该软件能满足由数据生成的任何图,且原始图片最高分辨率达到1200DPI,具体操作步骤可以参考软件说明或自己摸索(该作图软件的导入的数据通常是原始数据的均数和标准差,除非原始数据没有重复)。插一句尽量不要用EXCEL作图,因为原始图片分辨率达不到这么高的要求。由数据生成的图的图片是可重复修改的,因此一定要保存好原始数据,一旦发现图片有任何问题随时可以再修改。 另外再介绍一款截图软件,你还可以下载一个ACDsee截图软件,该截图软件截图后是不改变图片的分辨率的(很好用),而其他截图软件一般会改变图片分辨率。截图软件应用比较广泛,再次不再赘述。 二、组图技巧:图片组合紧扣文章思路 1、组图工具:PPT、photoshop 2、组图原则:意义、层次、美观、紧凑 3、组图后处理:PPT →PDF→TIF格式图片 组图工具个人习惯用PPT组图,图片要以插入的形式到PPT中而不要以复制的形式,能很好保证原始图片的分辨率,通过PPT将文件另存为(office 2007以后版本才有此功能)PDF 文件(PDF文件是不存在分辨率,整个过程也没有改变原始图片的分辨率),然后将PDF 文件导出(专业版的PDF阅读器才有此功能)为TI F或JPG图片格式,你还可以设置你的整个Figure的图片分辨率要求。

Qt 创建List, 添加删除Item

#ifndef LISTWINDOW_H_ #define LISTWINDOW_H_ #include class QPushButton; class QListWidget; class QWidget; class ListWindow : public QDialog { Q_OBJECT public: ListWindow(QWidget *parent = 0); virtual ~ListWindow(); public slots: void moveLeft(); void moveRight(); private: QPushButton *moveLeftButton; QPushButton *moveRightButton; QListWidget *leftList; QListWidget *rightList; }; #endif/**//*LISTWINDOW_H_*/ #include"ListWindow.h" #include #include #include #include #include #include #include #include ListWindow::ListWindow(QWidget *parent) : QDialog(parent) { QGridLayout *gridLayout = new QGridLayout(); gridLayout->addWidget(leftList = new QListWidget(), 0, 0, 3, 1); gridLayout->addWidget(moveLeftButton = new QPushButton("<<"), 0, 1, 1, 1); gridLayout->addWidget(moveRightButton = new QPushButton(">>"), 1, 1, 1, 1); gridLayout->addWidget(rightList = new QListWidget(), 0, 2, 3, 1); QObject::connect(moveLeftButton, SIGNAL(clicked()), this, SLOT(moveLeft())); QObject::connect(moveRightButton, SIGNAL(clicked()), this, SLOT(moveRight())); QStringList items; items << "One" << "Two" << "Three" << "Four" << "Five" << "Sechs" << "Sieben" << "One" << "Two" << "Three" << "Four" << "Five" << "Sechs" << "Sieben"; leftList->addItems(items); this->setLayout(gridLayout); }

Qt里添加OpenCV库

Qt里添加OpenCV库 0、新建一个控制台工程 唯一需要注意的是选择编译器,这一定要和你的opencv下载的编译版本一致!我下载的opencv是msvc2015编译的64位所以这里一定要选择相同的! 1、新建的工程点右键,选择添加库,如下图:

2、选择外部库 3、找到Opencv解压目录下的opencv\build\x64\vc15\lib\opencv_world401.lib 添加include 路径opencv\build\include,具体操作看下图: 特别需要注意的是:需要把opencv\build\x64\vc15\lib\bin目录添加到环境变量里Path里

4.点击确定后,工程文件*.pro里会添加如下内容: win32:CONFIG(release,debug|release):LIBS+= -LD:/opencv/build/x64/vc15/lib/-lopencv_world401 else:win32:CONFIG(debug,debug|release):LIBS+= -LD:/opencv/build/x64/vc15/lib/-lopencv_world401d else:unix:LIBS+=-LD:/opencv/build/x64/vc15/lib/-lopencv_world401 INCLUDEPATH+=D:/opencv/build/include DEPENDPATH+=D:/opencv/build/include 5.保存工程,执行qmake,更新工程make文件。这一步很重要,新手往往忘记这一步导致不能使用!!

学习Photoshop中的照片处理技巧

学习Photoshop中的照片处理技巧 照片名称:调出照片柔和的蓝黄色-简单方法, 1、打开原图素材,按Ctrl + J把背景图层复制一层,点通道面板,选择蓝色通道,图像 > 应用图像,图层为背景,混合为正片叠底,不透明度50%,反相打钩, 2、回到图层面板,创建曲线调整图层,蓝通道:44,182,红通道:89,108 3、新建一个图层,填充黑色,图层混合模式为正片叠底,不透明度为60%,选择椭圆选框工具选区中间部分,按Ctrl + Alt + D 羽化,数值为70,然后按两下Delete键删除,再打上文字,完成最终效果。 照片名称:调出照片漂亮的红黄色,

1、打开原图素材,Ctrl + J把背景图层复制一层,按Ctrl + Shift + U去色,执行:滤镜 > 模糊 > 高斯模糊,数值4,图层混合模式为滤色,图层不透明度改为27%。 2、新建一个图层,按Ctrl + Alt + Shift + E盖印图层,图层混合模式为颜色。 3、创建渐变映射调整图层,紫色-橘色,Alt+Ctrl + G加上剪贴蒙版。 4、创建亮度/对比度调整图层,-5,-21 5、创建智能锐化调整图层,设置为默认值,数量46,半径0.8,高斯模糊, 6、创建色阶调整图层,8,1.00,255 7、创建可选颜色调整图层,红色:+17,-8,+16,0,黄色:-54,0,+10,+18,白色:-5,0,0,0,

照片名称:打造美女冷艳张扬蓝色调, 1、在做图之前,可以先对图进行:图像-调整-自动色阶,自动对比度,自动颜色的调节, 2、打开原图,复制背景图层, 3、新建色相饱和度调整层,红:-80,黄:-80,蓝:+32 4、色彩平衡:-20,+20,+50 5、曲线调整,数值:38,36 6、色相饱和度,蓝色:-45

QT5编写和调用DLL动态库的终极实践

QT5编写和调用DLL动态库的终极实践如今,使用QT编程的人越来越多,但由于缺乏相关的中文文档,使得大家在学习的过程中偶有碰壁,网上的大多也有疏漏税,即使照着做也未必能成功。今天给大家讲讲QT5.02编写和调用DLL动态库的编程实践,按照以下方法可以确保你对DLL编写和调用少走变路。步聚一: 编写所需的DLL文件,如下图创建C++库文件工程。类型选择此处选的是动态库。工程名dll,生成的类名为Dll。

如下图,在dll.h 头文件中加入函数SHOW。 在dll.cp中编写该函数的实现。此处我让函数打开一个窗口并在应用程序输出中输出“OK”字符。顺便讲一下在DLL编写时如何加入容积资源文件。依次点击“文件”菜单选择“新建文件或项目”然后如图选择“QT设计师界面类”

生成的文件及类名如下图: #include"dll.h"

#include"qdebug.h" #include"dialog.h" Dll::Dll() { } void Dll::show(){ Dialog*wi=new Dialog(); wi->show(); qDebug()<<"ok"; } 到这里,DLL文件的编写结束。最后一步就是构建该程。在该程名字上点鼠标右键,再选择构建。 接下来编写测试工程,类型为QT GUI应用。工程名字为PO,

在po.pro文件中加入LIBS+=..\dll.DLL,完整代码如下: #------------------------------------------------- # #Project created by QtCreator2013-08-06T10:19:12 #LIBS+="D:\c\po\dll.dll" #------------------------------------------------- QT+=core gui greaterThan(QT_MAJOR_VERSION,4):QT+=widgets TARGET=po TEMPLATE=app LIBS+=..\dll.DLL SOURCES+=main.cpp\ mainwindow.cpp HEADERS+=mainwindow.h\ dll.h\ dll_global.h FORMS+=mainwindow.ui 在mainwindo.ui加一个按纽,并添加单击槽函数。完整代码如下: #include"mainwindow.h"

QT界面开发

1Qt4界面开发 1.1Q t历史 Qt是一个用于桌面系统和嵌入式开发的跨平台应用程序框架。它包括一个直观的API 和一个丰富的类库,以及用于GUI开发和国际化的集成工具,另外它支持Java?和C++开发。Qt让企业无须重新编写源代码,便可以构建运行在不同桌面操作系统和嵌入式设备上的软件应用程序。 Qt框架最早可公开获取是在1995年5月。最初是由Haavard Nord(TrollTech公司的首席执行官)和Eirik Chambe-Eng(TrollTech公司的董事会主席)。Haavard和Eirik 最早在特隆赫姆的挪威技术学院相遇,在那里他们双双获得了计算机科学硕士学位。 早在1991年,Haavard 就开始写一些最终成为Qt的类,并和 Eirik合力设计。在接下来的一年,Eirik提出了“信号和槽”的思想,一个现在已经被一些其他套装工具包含简单但功能强大的GUI编程范式。Haavard 接受了这一思想并手工生成了这一思想的代码实现。到1993年,Haavard和Eirik已经完成了Qt的第一个图形内核的开发并能用它来实现一些他们所需的物件。在这一年的年末,Haavard建议他们一起去经商,创建一个“世上最好的C++ GUI框架”。 字母“Q”被选为类的前缀是因为这个字母在Haavard的Emacs字体中看起来很漂亮。受到Xt(the X toolkit)的启发,字母“t”被追加来表示“toolkit”。公司在1994年5月4日成立,起初被命名为“Quasar Technologies”,之后被改名为“Troll Tech”,今天则被称为奇趣科技(Trolltech)。 1995年5月20日,Qt 0.90被上传到https://www.sodocs.net/doc/0b10885065.html,。六天后,这一发布在comp.os.linux.announce被宣布。这是Qt的第一个公共发行版。Qt可以被用在Windows 和Unix开发中,在两个系统中提供相同的API。Qt从一开始就可以在两种许可协议下获取:一个是商业开发中需要的商业许可协议,一个用于开源开发的自由软件版。 1996年3月,欧洲航天局成为Qt的第一个客户,一下买了十个Qt商业许可。Qt 0.97在同年的5月底发布,1996年9月24日,Qt 1.0发布。到了同年年底,Qt到达了版本1.1;拥有8个客户,每一个都在不同的国家,他们购买了18个商业许可。 Qt 1.2 在1997年4月发布。Matthias Ettrich利用Qt构建KDE的决定帮助Qt成为Linux C++ GUI 开发的实际标准,1997年9月Qt 1.3发布。 1998年9月,Qt 1的最后一个主要发行版1.40发布。Qt 2.0于1999年7月发布。Qt 2有了一个新的开源许可协议,发布许可协议(QPL),遵守开源的定义。1999年8月,Qt赢得了LinuxWorld的“最佳开发库/工具”大奖。 2000年奇趣科技发布了Qtopia核心(后来成为Qt/Embedded)。它被设计用来运行在嵌入式Linux设备上并提供了自己的窗口系统作为X11的一个轻量级代替。现在Qt/X11和Qtopia核心都可以通过GNU通用许可(GPL)获取。到2000年年底,奇趣科技成立了Trolltech Inc.(USA)并且发布了Qtopia的第一个版本,一个移动电话和PDAs应用程序平台。Qtopia赢得了2001和2002年LinuxWorld的“最佳嵌入式 Linux 解决方案”大奖,

QT问题集锦-从学习Qt遇到地各种问题

第一篇初级问题 1 用Qt4.8.5打不开冯工柏菲软件 问题描述:运行环境为Qt4.8.5 + QtCreator3.0.0+VS2010专业版 + Debuging Tools for Windows(x86),用Creator无法打开项目文件,截图如下: 弹出错误:Cannot read E:/PROJECT/Zhou-0410/testToolbar.pro: Unexpected UTF-8 BOM 原因分析:未知 解决方法: 1 安装VS2010SP1,未解决 2 安装VS-Add,未解决 3 使用Creator2.6解决 2 编译失败,系统找不到指定路径 问题描述:见下图

原因分析: 1)可能:添加VS编译器环境变量,在PATH中添加VS 中NMAKE路径 2)确定:Creator或编译器无法识别&符号,即路径原文件名为R&T中含有非法字符,无法准确识别路径 3)默认的环境变量已经有了NMAKE路径 解决方法:把路径中非法字符删除即可 3 编译出现乱码,Parse Error 原因分析:未知,应该是非法字符导致。 4 无法解析的外部符号 原因分析:声明的函数,未实现,或在未实现它的情况下调用了它 解决方法:实现后再调用 5 中文乱码 问题描述:见图

解决方法:转换成utf8格式 6 控件背景图片添加 问题描述:按照相对路径添加背景图片不显示解决方法: 1)相对路径起始点为构建目录,如图

2)添加资源文件,把背景图片放到资源文件中,再通过控件属性,指定资源文件中的背景图片即可。 7 昨天能启动运行成功,今天说异常结束,运行不了 原因分析:可能是昨天在windows、system32里面添加了qtcore.dll等文件导致 解决方法:删除之后就可以运行了,但具体删除哪个,待定 8 通过控件,查找操作函数? 9 修改控件名称时,弹出外部链接错误 解决方法:修改名称后,通常有以下步骤 1)在头文件中删除对应槽; 2)修改槽动作名称或重新生成槽动作,把之前代码拷贝到新槽动作中。 10 Qt数据类型转换 1)int 转 QString int a=10;

Qt自定义窗口部件

【原创】Qt自定义窗口部件 QtDesigner自定义窗口部件有两种方法:改进法(promotion)和插件法(plugin)改进法 1、改进法之前,要先写好子类化QSpinBox后的HexspinBox.h和HexspinBox.cpp文件。把这两个文件拷贝到想要的项目中。 HexspinBox.h HexspinBox.cpp

2、在需要开发的项目中的窗口中, 1、用Qt Designer创建一个新的窗体main.ui,把控件箱里的QSpinBox添加到窗体中。 2、右击微调框,选择“Promote to ”上下文菜单。 3、在弹出的对话框中,类名处填写“HexSpinBox”,头文件填写“hexspinbox.h” 好了。在ui生成的包含有QSpinBox的控件文件中,ui的源代码里面多了一段 HSpinBox QSpinBox

hspinbox.h
包含文件变为"hexspinbox.h"。在Qt Designer中,QSpinBox表示的控件为HexSpinBox,并且可以设置所有的QSpinBox的属性。

可以在VS2008中编译一下main.ui文件,从ui_main.h源代码中可以知道,引入的控件是: 升级法的缺点是不能在Qt Designer中设置自定义控件自己的特有属性,也不能够绘制自己。这些问题可以用插件法解决。 插件法 1.VS中创建Qt4 Design Plugin 工程,名称叫custom 自动建立如下几个文件: 自定义控件:custom.h,custom.cpp 插件:customplugin.h,customplugin.cpp 源代码如下:

20种PS处理照片技巧

20种PS处理照片技巧 一、一种简单的数码照片后期润饰 1、打开图片,执行色像/饱和度(-40)降低饱和度 2、新建一图层,将图层模式改为柔光,用画笔工具将需要润饰的部分画几下,这里可以利用色板方便的提取颜色。 3、图片色彩过渡不够柔和,再执行一下滤 镜下面的高斯模糊(+85)。 二、简单处理照片爆光不足 1、打开图片,复制背景层,对背景层的模式改为滤色。 2、对背景层 的色阶进行调整。 三、30秒搞定PLMM艺术照 1、打开图片,复制背景层两次。 2、对复制背景层一进行高斯模糊(半径4~6),将复制背景层二的模式改为强光。 3、新建一图层,填充图案(预先作好并定义的半灰半白的横条纹图案),设置混合模式为正 片叠底。 四、图象错位效果 1、打开图片,新建一图层,选择视图→标尺,选择移动工具,分别从上方和下方拖曳出两条蓝色标线(9格)。 2、利用矩形选取工具,填充方格(1,9暗灰、5,7黑、3亮灰),以psd格式储存,然后关闭文件。 3、执行滤镜→扭曲→置换,选择刚才储存的psd文件。备注:“置换滤镜”是利用置换图的颜色值使选区发生位移:白色(色调值=0)

是最大负位移,即将要处理图象相应的象素向左和向上移动;黑色(色调值=255)是最大正位移,即把图象中相应的象素向右和向下移动; 灰色(色调值=128)不产生位移。 五、照片底纹效果 1、打开图片,执行选择→全选,然后编辑→复制,建一新通道,编辑→粘贴将拷贝图象贴入新建通道中。 2、执行图象→调整→反像,回到RGB通道,编辑→清除,删除原图象。 3、执行选择→载入选区,调用新通道,执行编辑→填充(所需颜色)。 六、雾化效果 1、打开图片,新建图层一,设前景色/背景色(黑色/白色),执行滤镜→渲染→云彩,将图层添加图层蒙版。 2、重复执行滤镜→渲染→云彩,图象→调整→亮度/对比度(80,0,图层一模式改为滤色)。 七、人物插画效果 1、打开图片,复制背景层,执行图象→调整→通道混合器(灰色,+30,+60,+10,单色),执行滤镜→风格化→查找边缘,用色阶去掉杂点。 2、将混合模式设为“叠加”,填充不透明度打到50%。 3、背景层上加一个色阶调整图层,调整输出色阶(0,+155)。 4、执行图象→调整→可选颜色,对色彩进行微调(红色,0,+100,+100,-75;黄色,0, -40,+100,-40)。 八、利用颜色叠加给旧照片添加光色效果

VS使用QT5.2.1动态库的方法

使用QT创建项目需更改VS2013配置,操作步骤如下: 1、打开VS2013,点击菜单栏中“QT5”->选择“Qt Option”,弹出如下窗口: 2、添加QT静态库文件路径,并选择对应版本。 2、单击“QT5”->选择“Qt Project ”,弹出如下窗口,选择Version为静态库版本。

3、右键QT项目,选择“属性” 弹出如下窗口: 如图上红框所示,配置该选项。 4、右键QT项目,选择“属性”,弹出如下窗口:

如图红框所示配置信息,【附加依赖项】配置为: PocoFoundationd.lib;AfcFrameworkd.lib;DevBased.lib;imm32.lib;winmm.lib;Ws2_32.lib;open gl32.lib;qwindowsd.lib;Qt5PlatformSupportd.lib;wsock32.lib;qtmaind.lib;Qt5Cored.lib;Qt5Gu id.lib;Qt5Widgetsd.lib;%(AdditionalDependencies) 5、右键QT项目,选择“属性”,弹出如下窗口: 如图红框所示配置信息,【附加库目录】配置为: $(QTDIR)\plugins\platforms;$(QTDIR)\lib;%(AdditionalLibraryDirectories)

6、QT项目启动cpp中加入如下: 如图红框代码: #include #include"Poco/Foundation.h" #ifdef POCO_OS_FAMILY_WINDOWS Q_IMPORT_PLUGIN( QWindowsIntegrationPlugin ); #endif

Qt界面如何布局

关于Qt界面中对于相关控件进行布局管理 在用Qt进行用户界面应用程序的编程时,建议通过编写相关代码来生成和维护Qt控件,而不要用Qt Designer。这时对相应的Qt控件进行布局管理显得尤为重要。 常见的三种布局方式: 网格布局:QGridLayout 水平布局:QHBoxLayout 垂直布局:QVBoxLayout 步骤: 1)以单个的Qt控件为单位,先进行子块布局,分别对各个子块进行布局。 2)以步骤1)中的子块为单位,进行全局布局。 例如:我们要完成如下样式的Qt界面,整个Qt界面有ABCDEFXYZ共计9个Qt控件。 方法1: 1)用“网格布局”对ABCDEF(子块1)进行布局 QGridLayout *leftLay=new QGridLayout; 用“垂直布局”对XYZ(子块2)进行布局 QVBoxLayout *rightLay=new QVBoxLayout; 2)用“水平布局”对子块1(ABCDEF)、子块2(XYZ)进行全局布局 QHBoxLayout *mainLay=new QHBoxLayout; mainLay->addLayout(leftLay); mainLay->addLayout(rightLay); 方法2: 1)用“水平布局”对AB(子块1)进行布局 用“水平布局”对CD(子块2)进行布局 2)用“垂直布局”对子块1(AB)、子块2(CD)、E、F进行布局,形成子块3(ABCDEF)。3)用“垂直布局”对XYZ(子块4)进行布局 4)用“水平布局”对子块3(ABCDEF)、子块4(XYZ)进行全部布局

方法1: QGridLayout *leftLay=new QGridLayout; leftLay->addWidget(hostLabel,0,0); leftLay->addWidget(hostLineEdit,0,1); leftLay->addWidget(portLabel,1,0); leftLay->addWidget(portLineEdit,1,1); leftLay->addWidget(myCheckBox,2,0,1,2); leftLay->addWidget(myListWidget,3,0,1,2); leftLay->addWidget(msgLabel,4,0,1,2); QVBoxLayout *rightLay=new QVBoxLayout; rightLay->addWidget(logButton); rightLay->addWidget(sendButton); rightLay->addWidget(linkButton); QHBoxLayout *mainLay=new QHBoxLayout; mainLay->addLayout(leftLay); mainLay->addLayout(rightLay); setLayout(mainLay);

Qt加载dll

QT加载第三方库 一、(动态)显示加载(只需要.dll,不需要.lib/.h) A)将.dll放到编译目录下,例如: build-TestLoadDll-Desktop_Qt_5_5_0_MinGW_32bit-Debug B)包含头文件. #include C)在Windows下程序显示调用dll的步骤分为三步(三个函数):LoadLibrary()、GetProcAdress()、FreeLibrary() 第一步:QLibrary mylib("Trf32.dll"); //声明所用到的dll文件 第二步:判断dll是否加载成功if(mylib.load()) 第三步:mylib.resolve("DC_init_comm") //援引DC_init_comm()函数 第四步:卸载库mylib.unload(); void MainWindow::on_pushButton_clicked() //开启设备 { typedef long(*Fun)(const char*,unsigned long); QLibrary mylib("Trf32.dll");//声明所用到的dll文件 long result; if(mylib.load())//判断是否正确加载 { QMessageBox::information(NULL,"OK","DLL load is OK!"); Fun open=(Fun)mylib.resolve("DC_init_comm");//援引DC_init_comm()函数 if(open) //是否成功连接上DC_init_comm()函数 { //QMessageBox::information(NULL,"OK","Link to Function is OK!"); result=open("COM1",115200); //函数指针调用dll中的DC_init_comm()函数 QMessageBox::information(NULL,"OK",QString::number(result,10)); //如果返回数小于0则通讯失败这里返回-1 mylib.unload();//卸载库 } else QMessageBox::information(NULL,"NO","Linke to Function is not OK!!!!"); } else QMessageBox::information(NULL,"NO","DLL is not loaded!"); } Generalreader.dll

相关主题