Linux下的Qt入门

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/bjtuwayne/article/details/72972038

Linux下的Qt入门

一、下载Qt安装包。

上Qt官网看到Linux的安装包只有Linux 64Bit 的,可悲的实验室Linux系统装的是32bit 的。于是辗转到“Qt开源社区”(www.qter.org),在“历史版本下载”中找到了qt-everywhere-opensource-src-4.8.7.tar.gz这个文件。顾名思义应该是在任何平台都可以使用的开源库。至于版本好像没有看到5以上的。

二、Linux下的安装。

将下载下来的安装包最好放在Linux的用户文件目录下(/home/yourname),这样方便操作。然后解压缩:

tar xvfz qt-everywhere-opensource-src-4.8.7.tar.gz

解压缩完成之后在打开该目录,看到有个configure的可执行文件。运行这个文件。

./configure

Which editon? c/o  选择 o,也即开源;

Yes 接受许可;

到此即生成了makefile文件。编译一下:

gmake;

这里我遇到了gmake报错:Basic Xlib functionalitytest failed!

缺少Xlib相关支持。在之前挂载的cdrom安装盘中找到了需要的三个库: libX11-devel、libXext-devel、libXtst-devel以及libXt-devel。可以直接双击.rpm文进行安装。

重新gmake,这个过程时间比较久,最少半小时。

最后运行gmake install进行安装。

三、设置环境变量

类似于Windows下设置环境变量一样。编辑/etc/profile,在最后面添加:

export  QTDIR = /usr/local/Trolltech/Qt-4.8.7

export  PATH = $QTDIR/bin:$PATH

export  MANPATH = $QTDIR/man:$MANPATH

export  LD_LIBRARY_PATH = $QTDIR/lib:$LD_LIBRARY_PATH

重启生效。

输入qmake –v查看下版本信息;

Which qmake 验证下环境变量是否设置正确。

四、Hello工程

新建一个Qt_Helloworld文件夹,在该文件夹下面新建一个文档,命名为main.cpp,输入以下:

#include"MainWindow.h"

#include<QApplication>

#include <QtGui>

int main(int argc, char*argv[])

{

    QApplication a(argc, argv);

   QTextCodec::setCodecForTr(QTextCodec::codecForLocale());

   QTextCodec::setCodecForCStrings(QTextCodec::codecForLocale());

    MainWindow w;

    w.show();

    return a.exec();

}

再新建一个MainWindow.h和一个MainWindow.cpp文件,分别:

#ifndef MAINWINDOW_H

#define MAINWINDOW_H

#include <QtGui>

#include"ui_mainwindow.h"

namespace Ui {

class MainWindow;

}

class MainWindow : publicQMainWindow

{

    Q_OBJECT

public:

    explicit MainWindow(QWidget *parent = 0);

    ~MainWindow();

private:

    Ui::MainWindow *ui;

private:

    QPushButton *m_button;

    QPushButton *m_button2;

    QLineEdit *m_lineedit;

private slots:    //********************

    void myslot();

    void myslot2();

};

#endif // MAINWINDOW_H

#include"MainWindow.h"

MainWindow::MainWindow(QWidget*parent) :

    QMainWindow(parent),

    ui(new Ui::MainWindow)

{

    ui->setupUi(this);

    m_button = new QPushButton(this);

   m_button->setText("你好,Qt!");

    m_button->setGeometry(100,300,150,50);

    m_button2 = new QPushButton(this);

   m_button2->setText("你好,Linux!");

    m_button2->setGeometry(100,100,150,50);

    m_lineedit = new QLineEdit(this);

    m_lineedit->setGeometry(400,200,250,50);

    connect(m_button,SIGNAL(clicked()),this,SLOT(myslot()));

   connect(m_button2,SIGNAL(clicked()),this,SLOT(myslot2()));

}

void MainWindow::myslot()

{

   m_lineedit->setText("你好,Qt!");

}

void MainWindow::myslot2()

{

   m_lineedit->setText("你好,Linux!");

}

MainWindow::~MainWindow()

{

    delete ui;

}

添加一个Qt的界面资源.ui文件。在终端上运行designer,即打开了Qt Designer工具,新建一个MainWindow。存储为mainwindow.ui文件。

这里我不添加控件,而是通过代码动态编程实现的。实现了点击两个按钮分别在EDIT中显示对应的内容。具体见代码。

有了这些文件之后,在该目录下启动终端。

运行qmake –project;生成了一个Qt project;

运行qmake;生成了makefile文件;

运行make;生成了可执行文件。

运行该可执行文件./Qt_Helloworld;看到以下结果:

五、中文支持

在安装完Qt后,启动Designer或者Creator时会发现界面上的汉字无法显示或者显示乱码。这需要添加中文支持。

打开Qt安装包目录,找到configure的目录,重新configure下:

./configure –fontconfig

如果configure出错了,提示fontconfig未通过,则去到./config.tests/x11/fontconfig目录,执行make;

如果这时make出错了,提示缺少freetype开发库,则先安装freetype、freetype –devel两个库文件,安装方式可同上面安装Xlib的方法。

可能还缺少ft2build.h,则安装fonconfig –devel;

如果缺少ftheader.h 则输入  ln –s /usr/include/fteetype2/freetype//usr/include/freetype ;

然后重新gmake,重新gmake install。这时就可以了。

自己开发的程序运行后,如果遇到中文乱码,请在代码中添加两行代码:

QTextCodec::setCodecForTr(QTextCodec::codecForLocale());

QTextCodec::setCodecForCStrings(QTextCodec::codecForLocale());

猜你喜欢

转载自blog.csdn.net/bjtuwayne/article/details/72972038
今日推荐