您的位置:首页 > 编程语言 > Qt开发

QT安装使用及Demo示例

2009-05-12 15:53 811 查看
QT安装使用及Demo示例

1 安装下载
下载:
操作系统:fedora 10
QT最新版本:4.5.1(LGPL)
下载地址:http://www.qtsoftware.com/downloads/sdk-linux-x11-32bit-cpp



下载文件:qt-sdk-linux-x86-opensource-2009.02.bin
安装:
进入下载目录,在终端中输入如下命令。
chmod u+x qt-sdk-linux-x86-opensource-2009.02.bin
./qt-sdk-linux-x86-opensource-2009.02.bin
进入安装界面:



2 配置Qt Creator
Qt Creator界面



配置Qt路径
进入Tools — Options菜单,选择Qt安装路径,Qt安装路径一般在Qt Creator的安装路径下面(有时候是自己配好的,此步骤可略过)。



3 Demo演示
Demo
在一副图片上画直线。



新建工程
选择Qt4 Console Application。



必须选中QtCore Module和QtGui Module两项。



全部代码,见最后。

4 曾经遇到的主要问题
4.1 不能用root用户登陆
fedora默认不能使用root用户登陆系统之中。
解决方法:更改"/etc/pam.d/gdm"配置文件。
在终端中输入命令:
su
vi /etc/pam.d/gdm
用"#"符号注释掉“auth required pam_succeed_if.so user != root quiet”
所用vi命令:
命令"i"在光标前插入字符
命令":w"保存,命令":q"退出
4.2 安装时硬盘空间不足
挂载一个新硬盘
先将虚拟机Power Off,在Virtual Machine Setting对话框里点击左下角的“Add”,选择“Hard Disk”,之后选择“Create a new virtual disk”,分配容量,其他默认配置。
启动虚拟机系统,用root登陆,在命令行用fdisk -l查看是否识别了新硬盘,如果添加的是IDE硬盘,就应该看到hdb,如果是SCSI硬盘,看到的就应该是sdb,发现是sdb。
使用fdisk /dev/sdb命令,在出现的选项中选择“w”,即将分区表写入硬盘并退出,这时再用fdisk -l查看。
用mkfs命令将其格式化,mkfs ext3 /dev/sdb
用mount命令将其挂载,mount –t ext3 /dev/sdb /vtronwork (/vtronwork为我所挂载的目录)
4.3 通过ftp在fedora和windows之间共享文件
使用Serv-U配置服务器。
在fedora中通过"ftp"命令登陆服务器、"mget"命令下载QT所需文件、"!"命令退出ftp。
ftp 10.1.13.34 登陆服务器。
输入用户名:(例如:ljj)
输入密码:(例如:lijingjing)
mget * 下载全部文件
4.4 打包压缩文件
打包 tar -cvf 打包后的文件名 要打包的目录/文件名
例如:tar -cvf VtronGraphic.tar VtronGraphic
压缩 gzip 要压缩的包名
例如:gzip VtronGraphic.tar
解压解包 tar 压缩包名
例如:tar -xzvf VtronGraphic.tar.gz
4.5 vmware设置
新建好虚拟机后,要设置好光盘镜像的位置(或者用物理光驱),然后启动电源(power on)



附Demo代码:
#include <QApplication>
#include <QWidget>
#include <QPainter>
#include <QPoint>
#include <QMouseEvent>
#include <vector>
#define MAXPOINT 100

using namespace std;

typedef struct
{
QPoint BeginPoint;
QPoint EndPoint;
}Line;

class PainterWidget : public QWidget

{
protected:
void paintEvent(QPaintEvent * event);
void mousePressEvent(QMouseEvent * event );
void mouseReleaseEvent(QMouseEvent * event );
Line currentLine;
vector<Line> vLine;
};

void PainterWidget::mousePressEvent(QMouseEvent *event)

{
QPoint Point(event->x(), event->y());
currentLine.BeginPoint = Point;
}

void PainterWidget::mouseReleaseEvent(QMouseEvent *event)

{
QPoint nPoint(event->x(), event->y());
currentLine.EndPoint = nPoint;
vLine.push_back(currentLine);
repaint();
}

void PainterWidget::paintEvent(QPaintEvent *event)

{
QPainter painter(this);
painter.drawPixmap(50, 50, 700, 500, QPixmap("cheese.jpg"));
painter.setPen(Qt::black);
for(vector<Line>::iterator iter = vLine.begin(); iter != vLine.end(); iter++)
{
painter.drawLine(iter->BeginPoint, iter->EndPoint);
}
}

int main(int argc, char *argv[])
{
QApplication app(argc, argv);
PainterWidget pWidget;
pWidget.setWindowTitle("QPainter");
pWidget.resize(800, 600);
pWidget.show();
return app.exec();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: