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.cd(path);
//该方法返回QDir所关联的目录的实际绝对路径,如果为符号链接的话,返回符号链接所指向的路径,在不支持符号链接的系统上或关联目录非符号链接,则该方法返回内容,(主要为了跨平台linux)
}
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点击绑定play()函数,点击发声音;
void JingleAction::setJingleFile(const QString &jingleFile)
{}
void JingleAction::play()
{
if (!s_mute && !m_jingleFile.isEmpty())
QSound::play(m_jingleFile);
}