QT高级编程学习笔记(1)

1.关于EXE路径的操作。

QString applicationPathOf(const QString &path)
{

QDir dir(QApplication::applicationDirPath());

       //exe如果在debug或者release中,dirName()是dir最末端文件夹名称QString类型,cdUp()相当于cd..  cd()相当于cd;

if (dir.dirName().toLower() =="debug" ||
    dir.dirName().toLower() == "release")
dir.cdUp();   //返回上一级
if (!path.isEmpty())

dir.cd(path);

        //该方法返回QDir所关联的目录的实际绝对路径,如果为符号链接的话,返回符号链接所指向的路径,在不支持符号链接的系统上或关联目录非符号链接,则该方法返回内容,(主要为了跨平台linux)

return dir.canonicalPath()

}

2.如何继承QAction类:

class JingleAction : public QAction
{
    Q_OBJECT

//explicit防止重载的构造函数之间隐式的转换,通过默认初始化列表来实现QAction基本功能实现,在构造函数内实现扩展的内容。
public:
    explicit JingleAction(QObject *parent) : QAction(parent) {}
    explicit JingleAction(const QString &text, QObject *parent)
        : QAction(text, parent) {}
    explicit JingleAction(const QIcon &icon, const QString &text,
                          QObject *parent)
        : QAction(icon, text, parent) {}
    explicit JingleAction(const QString &jingleFile,
                          const QString &text, QObject *parent);
    explicit JingleAction(const QString &jingleFile,
            const QIcon &icon, const QString &text, QObject *parent);


    QString jingleFile() const { return m_jingleFile; }
    void setJingleFile(const QString &jingleFile);


    static void setMute(bool mute) { s_mute = mute; }


private slots:
    void play();


private:
    static bool s_mute;


    QString m_jingleFile;

};

//重写的构造函数。

JingleAction::JingleAction(const QString &jingleFile,

        const QIcon &icon, const QString &text, QObject *parent)
    : QAction(icon, text, parent)
{
    setJingleFile(jingleFile);   //设置声音文件

}

//实现QAction点击绑定play()函数,点击发声音;

void JingleAction::setJingleFile(const QString &jingleFile)

{
    if (!m_jingleFile.isEmpty())
        disconnect(this, SIGNAL(triggered(bool)), this, SLOT(play()));
    m_jingleFile = jingleFile;
    if (!m_jingleFile.isEmpty())
        connect(this, SIGNAL(triggered(bool)), this, SLOT(play()));

}


void JingleAction::play()
{
    if (!s_mute && !m_jingleFile.isEmpty())
        QSound::play(m_jingleFile);
}


第1章 混合桌面/internet应用程序 1.1 internet相关窗口部件 1.2 webkit的使用 第2章 声音和视频 2.1 qsound和qmovie的使用 2.2 phonon多媒体框架 第3章 模型/视图表格模型 3.1 qt的模型/视图架构 3.2 用于表格的qstandarditemmodel 3.3 创建自定义表格模型 第4章 模型/视图树模型 4.1 用于树qstandarditemmodel的用法 4.2 创建自定义树模型 第5章 模型/视图委托 5.1 与数据类型相关的编辑器 5.2 与数据类型相关的委托 5.3 与模型相关的委托 第6章 模型/视图中的视图 6.1 qabstractitemview子类 .6.2 与模型相关的可视化视图 第7章 用qtconcurrent实现线程处理 7.1 在线程中执行函数 7.2 线程中的过滤和映射 第8章 用qthread实现线程处理 8.1 独立项的处理 8.2 共享项的处理 第9章 创建富文本编辑器 9.1 qtextdocument简介 9.2 创建自定义的文本编辑器 9.3 一个单行的富文本编辑器 9.4 编辑多行的富文本 第10章 创建富文本文档 10.1 高质量地输出qtextdocument文件 10.2 创建qtextdocument 10.3 输出和打印文档 10.4 绘制页面 第11章 创建图形/视图窗口 11.1 图形/视图架构 11.2 图形/视图窗口部件和布局 11.3 图形项简介 第12章 创建图形/视图场景 12.1 场景、项和动作 12.2 增强qgraphicsview的功能 12.3 创建可停靠的工具箱窗口部件 12.4 创建自定义图形项 第13章 动画和状态机框架 13.1 动画框架简介 13.2 状态机框架简介 13.3 动画和状态机的结合 结束语 精选书目
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值